东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 3351|回复: 0

[课堂笔记] 运行MMdetection框架报错:CUDA error: invalid device function 段错误...

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
发表于 2020-10-13 14:49:41 | 显示全部楼层 |阅读模式

运行MMdetection框架报错:CUDA error: invalid device function 段错误 (核心已转储)

运行脚本:出现的
python3 train.py ../configs/retinanet/retinanet_r50_fpn_voc.py


CUDA Runtime 10.2
CuDNN 7.6.5

安装pytorch的方法:
conda install pytorch torchvision cudatoolkit=10.2 -c pytorch

conda list看看:
cudatoolkit               10.2.89              hfd86
pytorch                   1.6.0           py3.6_cuda10.2.89_cudnn7.6.5_0    pytorch


而系统中安装的是:cuda=10.0  cudnn=7.6.0
jiang@jiang-Ubuntu:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130

jiang@jiang-Ubuntu:~$ cat /usr/include/x86_64-linux-gnu/cudnn_v*.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 0


原本这样是没有问题的,因为conda已经隔离了环境  但是 由于MMdetection框架需要编译cuda源码 用到的cuda版本不一致了


所以:只能先用conda卸载 pytorch torchvision cudatoolkit

再安装(cuda降低为10.1了):
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch

pytorch                   1.6.0           py3.6_cuda10.1.243_cudnn7.6.3_0    pytorch
cudatoolkit               10.1.243             h6bb024c_0    defaults

pytorch的版本还是1.6没变

或者在其他conda环境中来编译一下 再使用也行?


发现编译cuda用脚本:python3 setup.py develop
实际上还是用了系统的cuda(环境变量设置了)的版本:10.0 如下:
Using envvar MAX_JOBS (4) as the number of workers...
[1/34] /usr/local/cuda-10.0/bin/nvcc -DMMCV_WITH_CUDA

而运行时的CUDA Runtime 10.1 或 10.2 是conda环境里的 这样不一致了
关键:编译时和运行时的cuda版本必须要一致!

可以直接用别人编译好的那个so文件即可 试试? 也不行
_ext.cpython-36m-x86_64-linux-gnu.so

原因在这:
如果有一些特殊要求,比如需要用到CUDA编译库文件,那conda给安装的不完整CUDA就不够用了

conda环境里安装的cuda是不完整的,而系统里之前安装的才是完整功能的

环境变量的设置:

# dfy add 2020-08-18
export CUDA_HOME=/usr/local/cuda-10.0
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin{PATH}

最终只能:升级系统cuda的版本了 与pytorch中要求的一致

多版本cuda共存:https://bluesmilery.github.io/blogs/a687003b/  比较麻烦

我干脆换到windows系统里去玩:
http://www.ai111.vip/thread-1100-1-1.html








cuda编译so.png
cuda编译版本.png
cuda_home不同cuda_runtime.png
cuda10.1编译成功.png
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-3-28 18:11 , Processed in 0.192817 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表