提示
本人用的wsl安装的ubuntu,版本是ubuntu22.04。
bashsudo apt-get update sudo apt-get install g++ sudo apt-get install gcc sudo apt-get install make
ouveau是Ubuntu自带的显卡驱动,但他是核显,我这里想安装独显,就得把他禁掉
bashsudo gedit /etc/modprobe.d/blacklist.conf 或者 sudo vi /etc/modprobe.d/blacklist.conf
在文件末尾追加
jsblacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
保存退出更新重启即可。
bashsudo update-initramfs –u
执行结果为空表示已成功禁用。
bashsudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
bashwget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run sudo sh cuda_11.8.0_520.61.05_linux.run
安装时的选择
bashvim ~/.bashrc
export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source ~/.bashrc
bashnvcc -V
看网上帖子大部分都是自己手动登录官网下载完再上传到ubantu,解压的,那么有没有能直接从终端下载解压的方法呢,答案是肯定的。
简单地说,有一台linux远程服务器,想在服务器上配置深度学习开发环境,一个绕不开的选项是:安装cuDNN 但是我只能通过SSH连接远程服务器,如果直接在终端里使用wget进行下载的话,会被forbidden。
这是因为:Nvidia要求下载时进行验证(事实上,在我们从浏览器端下载cuDNN时,会被要求登录),而我们直接使用wget跳过了验证,所以被Forbidden了。
方案一:
在本地浏览器点击下载,再点击暂停,
进入浏览器下载界面,可以看到真正的下载链接,拷贝这个链接后再用wget下载。
方案二:
本地下载好正确版本的cuDNN
通过scp命令拷贝到远程服务器,关于scp命令的用法,可见:使用scp从远程Linux服务器下载文件至本地。
方案三:
1.在本地主机上从 https://developer.nvidia.com/rdp/cudnn-archive 获取下载链接,如:
jshttps://developer.nvidia.com/compute/machine-learning/cudnn/secure/7.6.5.32/Production/10.1_20191031/cudnn-10.1-linux-x64-v7.6.5.32.tgz
2.SSH登录到远程主机,执行如下操作:\
jsCUDNN_TAR_FILE="cudnn-10.1-linux-x64-v7.6.5.32.tgz" #与上面链接中的相对应
wget http://developer.download.nvidia.com/compute/redist/cudnn/v7.6.5/${CUDNN_TAR_FILE} #v7.6.5与CUDNN_TAR_FILE相对应
感兴趣的也可以看看https://stackoverflow.com/questions/31279494/how-to-install-cudnn-from-command-line
3.解压cuDNN文件,拷贝文件
bashtar -xzvf cudnn-10.1-linux-x64-v7.6.5.32.tgz
复制库文件和头文件: 解压后,您会得到几个目录,包括cuda和include。您需要将这些目录中的内容复制到CUDA的安装目录中。使用以下命令:
bashsudo cp cuda/include/cudnn*.h /usr/local/cuda-11.8/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.8/lib64
这些命令将cuDNN的头文件复制到CUDA的include目录,将库文件复制到CUDA的lib64目录。
设置库路径: 您需要确保系统能够找到cuDNN库。编辑/etc/ld.so.conf.d/cudnn.conf文件,添加以下行:
js/usr/local/cuda-11.8/lib64
然后,运行以下命令使更改生效:
bashsudo ldconfig
我这里有点小问题,会提示libcuda.so.1 is not a symbolic link,因为我是wsl2环境。
所以需要处理一下。
网上原有的解决方法是:
将/usr/lib/wsl/lib 中的文件软连接到/usr/lib/wsl/lib2中。
该方法会导致后续出现
问题1:
NVIDIA-SMI couldn't find libnvidia-ml.so library in your system.
问题2:
error code is libcuda.so: cannot open shared object file: No such file or directory
我的解决方法是:
删除或备份/usr/lib/wsl/lib中的libcuda.so与libcuda.so.1
然后建立对libcuda.so.1.1的软连接:
bashsudo cp /usr/lib/wsl/lib/libcuda.so /usr/lib/wsl/lib/libcuda.so.backup
sudo cp /usr/lib/wsl/lib/libcuda.so.1 /usr/lib/wsl/lib/libcuda.so.1.backup
sudo rm /usr/lib/wsl/lib/libcuda.so
sudo rm /usr/lib/wsl/lib/libcuda.so.1
sudo ln -s libcuda.so.1.1 libcuda.so.1
sudo ln -s libcuda.so.1 libcuda.so
bashgrep CUDNN_MAJOR -A 2 /usr/local/cuda-11.8/include/cudnn.h
本文作者:wjc
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC 许可协议。转载请注明出处!