这个错误和GPU的算力有关系 CUDA error: no kernel image is available for execution on the device

这个错误折腾了好几天,最后发现是GPU算原因

GPU算力图如下

环境:本地GPU是P40,部署到阿里云P100
python部署是在本地编译后部署到阿里云服务器上

开始解决了Nvidia内核版本,CUDA版本,和python组建的cuda和torch的软件的版本

经过多次修改后环境版本如下:

GPU Type: Tesla P40
Nvidia Driver Version: 535.161.08
CUDA Version: 12.2
CUDNN Version: 8500
Operating System + Version: Ubuntu 22.04
Python Version: 3.9.19

torch==2.0.1
torchaudio==2.0.2
torchvision==0.15.2

环境版本没有问题了,后来在网上看到说算力的问题

如上图所示本地P40的算力是6.1,云上P100的算力是6.0 算力降低了

经过多次尝试后,云上版本更改为V1007.0的算力

注意:本地的P40和云上V100的GPU不是一个系列的版本没有问题;但是注意镜像内不要安装GPU驱动,使用实体主机的驱动版本(这一段一定要注意,我踩了个大坑)

终于成功了,又前进了一步。。。,路途还遥远,继续前行

### 解决Jetson NX上CUDA错误no kernel image available for execution on device 当遇到`RuntimeError: CUDA error: no kernel image is available for execution on the device`这一错误时,通常意味着当前设备无法执行特定的CUDA内核。这可能是由于硬件架构不匹配、驱动程序版本不对或是CUDA工具包与PyTorch之间的兼容性问题所引起的[^1]。 对于Jetson NX平台而言,确保安装了适合该平台的操作系统CUDA环境至关重要。NVIDIA官方提供了针对Jetson系列优化过的Linux发行版L4T (Linux for Tegra),建议使用此操作系统来减少潜在的兼容性风险[^4]。 #### 验证并更新CUDAcuDNN版本 确认已正确配置适用于Jetson NX的CUDA版本,并且cuDNN库也已经适配好。可以通过以下命令检查现有安装情况: ```bash nvcc --version cat /usr/local/cuda/version.txt apt list --installed | grep cudnn ``` 如果发现版本不符,则应按照[NVIDIA开发者博客](https://developer.nvidia.com/blog/)中的指导进行适当调整。 #### 设置正确的PyTorch构建选项 为了使PyTorch能够在Jetson平台上顺利运行,可能需要手动编译带有特定标志的源码,以适应ARM架构下的计需求。可以尝试通过预编译二进制文件或遵循社区贡献者分享的方法来进行部署[^2]。 另外,在导入任何依赖之前,请先验证Python环境中是否存在必要的扩展模块: ```python import torch print(torch.cuda.is_available()) print(torch.backends.cudnn.enabled) ``` 上述代码片段可以帮助判断当前设置是否能够识别到可用的GPU资源以及CUDNN加速功能是否开启。 #### 调试技巧 启用同步模式有助于更精确地定位实际发生错误的位置。可以在启动应用程序前设置如下环境变量: ```bash export CUDA_LAUNCH_BLOCKING=1 ``` 这样做之后再重现问题,可以获得更加详细的调用栈信息用于进一步分析。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值