CUDA安装之问题
最近打算在darknet开源项目的基础上做一些关于图像处理的工作,尝试着自己安装cuda,其安装过程比较简单,安装网上的教程安装即可。但由于本人的笔记配置较低,出现了一些意外的麻烦,现列举在此,以方便将来查看。
问题一:CUDA driver version is insufficient for CUDA runtime version
按照字面意思理解,这个问题的原因是目前计算机上显卡驱动程序的版本好不满足CUDA运行的需要。也就是说,不同版本的CUDA对显卡驱动的版本是有要求的,在CUDA的官网上有详细的要求,下摘录下来,如图1所示。
我是在win7_64位机器上安装的9.2版本CUDA(9.2.148),从上图可以看到,需要的显卡驱动程序的版本号为>=398.26。那么,我自己的显卡驱动程序版本为多少呢?
在【英伟达(NVIDIA)控制面板】——【系统信息】——【细节】中,我查到我的显卡驱动程序版本为391.24,如图2所示。
对照上面介绍的CUDA对显卡驱动程序的要求,我目前最多只能装9.0版本的CUDA。
当然,对于一般人的机器通常有两个选择,一是根据自己显卡驱动程序的版本来选择合适的CUDA版本(和我一样);另一选择就是根据CUDA的版本号更新自己的显卡驱动程序,但有的比较久的显卡并没有高版本的显卡驱动程序,这也是我为何选择安装低版本CUDA的原因。
问题二:no kernel image is available for execution on device
以为重新安装了低版本的CUDA所有问题都解决了,没想到在运行程序的时候还是出现了新问题,如图3所示,no kernel image is available for execution on device。
“没有内核映像可用于设备上的执行”,这个翻译可能有问题,我自己也不是很懂。这是因为,高版本的CUDA对显卡的运算能力(compute capability)有要求,可以通过CUDA-Z查看机器的compute capability。我的是2.1,显卡太老了,运算能力很低,如图4所示。
不同版本的CUDA对显卡的“compute capability”有一定的要求,如图5所示。这种情况,我只能选在更低版本的CUDA试试看了。
问题三:CUDA ERROR: invalid device function
重新安装CUDA8.0和visual studio 2015(因为CUDA8.0不支持visual studio 2017),编译项目darknet没有问题,但是运行的时候出现错误(CUDA ERROR: invalid device function),如图6所示。
这是因为生成程序时,CUDA的device计算能力选择不正确,按照下图所示进行修改即可。