场景再现:搭建了一台基于NVIDIA GeForce 1080Ti的算法服务器,使用的cuda11.1的docker镜像,显卡驱动:NVIDIA-Linux-x86_64-455.38.run,容器起来后,运行程序时出现题目中的错误:
第一反应是,是不是cuda和驱动该版本太高了?因为这套环境原本是在GeForce RTX 3080机器上运行的。所以在第一时间把显卡驱动降到了NVIDIA-Linux-x86_64-440.44.run,cuda版本降到了10.2,并且重新编译了应用程序,但是这个问题仍然存在。
网上查解决方法,有人说要将cuda版本到8,这个显然代价大了些,因为要重新配置docker镜像,耗时太长。
然后看到有人说是算力问题,网上查到了算力表,1080的算力是6.1,比3080低,所以需要看一下程序依赖的深度学习库是否配置问题。
本程序依赖的是darknet,找到darknet源码的Makefile,如下:
需要修改ARCH配置与本机显卡型号匹配,于是,试着注掉75的一行,重新编译darknet,果然解决了问题。
附显卡算力表: