RuntimeError: CUDA error: invalid device function【mmdetection错误】

在使用mmdetection进行训练时遇到`RuntimeError: CUDA error: invalid device function`的问题。官方issue指出可能是mmcv版本不兼容。解决方案是更新到与环境匹配的mmcv版本。环境配置包括Ubuntu 16.04、Anaconda3、Python 3.7.7、CUDA 10.0、cuDNN 7.6.4.3、Pytorch 1.6.0。安装mmdetection和mmcv可参照官方教程,特别是mmcv应使用特定命令安装。

问题:在使用mmdetection做训练的时候,出现错误

RuntimeError: CUDA error: invalid device function

在官网的issue中看到是mmcv的版本不匹配问题,重新安装匹配的mmcv版本即可。
官网安装链接

环境版本
ubuntu16.04+Anaconda3+python3.7.7+cuda10.0+cuDNN7.6.4.3
pytorch1.6.0+python3.7

mmdetection的安装按照官网教程走即可,mmcv的安装用下面这句:

pip install mmcv-full==latest+torch1.6.0+cu101 -f https
### YoloV5 运行时遇到的 CUDA 错误解决方案 当遇到 `RuntimeError: CUDA error: invalid device function` 或者类似的 `invalid device ordinal` 的错误提示时,这通常意味着 GPU 设备配置不正确或者是使用的 CUDA 函数对于当前设备不合适。 #### 1. 验证环境设置 确保只有一块GPU被识别并可用。可以通过设置环境变量来指定可见的GPU设备: ```bash export CUDA_VISIBLE_DEVICES=0 ``` 这条命令会使得只有编号为0的GPU对程序可见[^4]。 #### 2. 检查CUDA版本兼容性 确认安装的PyTorch版本与NVIDIA驱动以及CUDA工具包之间的匹配情况。不同版本之间可能存在兼容性问题,查阅官方文档获取支持矩阵有助于找到合适的组合[^1]。 #### 3. 调试模式启用 为了更精确地定位引发异常的具体操作,在启动脚本前可以开启同步执行模式以便更好地追踪到实际发生错误的位置: ```bash export CUDA_LAUNCH_BLOCKING=1 ``` 此方法可以让每一个CUDA调用都等待完成后再继续下一个,从而帮助开发者更容易发现具体哪个部分出现了问题[^3]。 #### 4. 修改模型加载方式 如果上述措施未能解决问题,则尝试调整模型初始化过程中的参数设定,比如更改预训练权重文件路径或是改变输入图像尺寸等,有时这些细微的变化也会影响到能否成功部署至GPU上运行[^2]。 通过以上几个方面的排查应该能够有效减少乃至彻底消除此类CUDA相关的运行期报错现象。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值