服务迁移之后,查看新服务器上cuda 已经装好了(运维的同学帮忙安装的),可能不太熟悉没装好,启动服务报错:
ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory
执行命令ll /usr/local,查看该路径下的cuda,发现cuda并未安装且软链接。如果有的话是如下这样(这是安装成功后的):
但是nvidia-smi却显示cuda 11.2,此时决定自己重装cuda 10.0。
到官网->下载->cuda toolkit->下载->最下方cuda早期版本档案中下载 cuda 10.0的run文件,进行安装。但是报错:
unable to locate the kernel source。
这时候介绍一个很好用的工具,dkms。
DKMS全称是DynamicKernel ModuleSupport,它可以帮我们维护内核外的驱动程序,在内核版本变动之后可以自动重新生成新的模块。我的理解就是某驱动对应的系统版本是A,而你系统版本是B,这个时候出现了驱动安装不成功的问题,而你又想要安装这个驱动,这个时候就可以利用dkms工具。
centos系统安装dkms:
(1)安装dkms时提示“没有可用软件包”,安装EPEL(Extra Packages for Enterprise Linux)
sudo yum install -y epel-release
(2)安装kernel-headers, kernel-devel,dkms
sudo yum install -y kernel-headers kernel-devel dkms
ubuntu系统安装dkms:
sudo apt-get install dkms
之后再次进行cuda 安装,成功!