You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
场景:运行nvidia-smi命令的时候,报错:NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
# 如果下面这条命令显示的是`nvidia-current-418.87.00`,那还需要将其软连接到`/usr/src/nvidia-418.87.00`
ls /usr/src | grep nvidia
ysl2
changed the title
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
cuda和cudnn相关问题
Aug 25, 2024
手动在家目录下面安装cuda和cudnn
以下方法,考虑到Tensorflow对版本依赖性更强,更易出问题,下面的例子的第一步中是按照Tensorflow来进行的,后面的步骤Pytorch和Tensorflow通用。选择的cuda版本是10.2,对应的cudnn版本是v8.7.0。
确定要安装的cuda和cudnn版本。pytorch可能可以省略这一步(因为pytorch出问题比较少,基本上按照官网命令就可以,所以没有针对pytorch查过具体的cuda和cudnn版本)。假设需要跑tensotflow代码,应该先从官网找到版本匹配关系。通过查找所需要的版本,已经能确定了具体需要安装哪个版本的cuda和cudnn。然后进入到下一步。
https://tensorflow.google.cn/install/source?hl=en#tested_build_configurations
根据上面的版本信息,手动安装对应版本的cuda。下面的例子选择了cuda 10.2版本。
首先去cuda官网,下载对应的安装包。下载出来的文件名字类似于
cuda_10.2.89_440.33.01_linux.run
这样后缀是run的文件,可能几百兆。然后任意指定目录的 上级目录 需要预先手动创建好。比如下面的例子中,选择了
~/.vocal/bin/cuda-10.2
。这个路径一开始并不存在。需要先mkdir ~/.vocal/bin
创建上级目录。之后通过下面的命令,执行上面的
run
文件,安装cuda到指定的目录里面通过第一步确定的cudnn版本,安装对应的cudnn。注意cudnn的版本,同时也是跟cuda版本绑定的。(比如cudnn v8.7.0,可能有对应cuda 10或者11或者12类似的情况),所以需要确定到底需要支持哪个cuda版本的cudnn版本。这里假设对应的版本是cudnn 8.7.0,对应的cuda是10.2
也是通过官网安装cudnn。需要先注册一个账号。不过如果通过下面的wget,或许可以直接下载下来。注意同时需要确定cudnn和cuda的版本号
wget -c https://developer.download.nvidia.com/compute/redist/cudnn/v8.7.0/local_installers/10.2/cudnn-linux-x86_64-8.7.0.84_cuda10-archive.tar.xz # 解压tgz文件 tar xvf 文件名.tgz
将解压出来的文件夹中的
include
子文件夹和lib64
子文件夹里的内容,分别移动到上述第二步指定的 cuda 安装路径下面对应的include
文件夹和lib64
(或者lib
)文件夹下面。注意:如果之前 cudnn 的
include
子文件夹里面包含so.7
结尾的文件(比如libcudnn.so.7
),需要将这些移动后的文件位置(对应于$HOME/.vocal/cuda-10.2/include/libcudnn.so.7
)创建软连接到$HOME/.vocal/bin/cuda-10.2/lib64/libcudnn.so.7
。不然有可能依然报错说找不到libcudnn.so.7
。也就是说,libcudnn.so.7
这个需要include
文件夹和lib
文件夹都有一份。具体原因没有再研究过了。后面如果需要多个版本的cuda和cudnn,同样可以安装其他版本的cuda和cudnn,到比如
~/.vocal/bin/cuda-12.1
这个地方,然后只需要改一下~/.bashrc
里面的$PATH
和$LD_LIBRARY_PATH
,再重启一下bash。这样就能切换过去。更进一步地,可以直接把指定$PATH
在前面附加成通用的~/.vocal/bin/cuda
,然后通过软连接的方式,任意把某个cuda版本链接到~/.vocal/bin/cuda
,这样就不用重启bash了,可以任意切换cuda版本。The text was updated successfully, but these errors were encountered: