云计算百科
云计算领域专业知识百科平台

服务器显卡驱动、CUDA、cuDNN、conda安装

(1)查看服务器环境:

(2)确定可安装CUDA版本:

NVIDIA CUDA Toolkit Release Notes

可安装12.0至12.3,当然12以下也可以

(3)安装12.3:

参考:CUDA与cuDNN在linux / Ubuntu22.04上的安装与卸载,包含CUDA的.run安装与.deb安装,cuDNN的.tar安装与.deb安装_ubuntu22.04卸载cudnn-CSDN博客

Linux服务器上安装CUDA11.2和对应的cuDNN 8.4.0_linux安装cuda-CSDN博客

【记录】linux20.04安装cuda、cudnn以及anaconda过程_linux cudnn-CSDN博客

【linux】服务器ubuntu安装cuda11.0、cuDNN教程,简单易懂,包教包会_服务器安装cuda-CSDN博客

CUDA Toolkit

已有驱动,所以取消Driver安装(空格键或左右键切换),上下键移动到Install

添加环境变量:

sudo vim ~/.bashrc

在 Vim 编辑器里,i进入插入模式 ,Esc 键回到命令模式,在命令模式下,按下 : 后,Vim 会在编辑器底部显示一个命令行输入区域,:wq 和 😡 都是用于保存文件修改并退出编辑,:q! 用于不保存退出。

#cuda init
export PATH=$PATH:/usr/local/cuda-12.3/bin
export LD_LIBRARY_PATH=/usr/local/cuda-12.3/lib64

更新bashrc文件

source ~/.bashrc

有时需要重启才行。

查看环境变量:

echo $PATH
echo $LD_LIBRARY_PATH

(4)插曲之CUDA12.0安装、驱动卸载安装:

第一次更新bashrc文件后,nvcc -V查看发现还是10.1,由于无脑跟教程,把已有550驱动卸了!!!(我应该重启的灬ꈍ ꈍ灬,至少下次查清代码什么意思再跑啊)

虽然但是,还是记录一下卸载所有代码:

sudo apt-get remove nvidia-* #使用 apt-get 工具卸载所有以 nvidia- 开头的软件包,但保留它们的配置文件
sudo /usr/bin/nvidia-uninstall #运行 NVIDIA 官方提供的卸载脚本,对 NVIDIA 驱动进行更彻底的卸载
sudo apt-get –purge remove nvidia-* #使用 apt-get 工具卸载所有以 nvidia- 开头的软件包,并删除它们的配置文件
sudo apt autoremove nvidia-* #根据上句输出提示执行,使用 apt 工具自动移除所有以 nvidia- 开头的软件包,并且会顺带删除那些因卸载这些 NVIDIA 相关软件包而变得不再需要的依赖包
sudo apt-get purge nvidia* #使用 apt-get 工具卸载所有以 nvidia 开头的软件包,并删除它们的配置文件
sudo apt-get purge libnvidia* #使用 apt-get 工具卸载所有以 libnvidia 开头的软件包,并删除它们的配置文件
sudo dpkg –list | grep nvidia-* #直到命令不输出任何内容
ubuntu-drivers devices #查找可用的驱动版本
sudo apt-get install nvidia-driver-535 nvidia-settings nvidia-prime #安装recommended的535,为什么不是550?!

卸载代码精炼: 

sudo /usr/bin/nvidia-uninstall

从此山路十八弯(灬ꈍ ꈍ灬):

安装了驱动535之后,安装了CUDA12.0,nvidia-smi出现问题:

1)-bash: /usr/bin/nvidia-smi: No such file or directory

2)NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.  Make sure that the latest NVIDIA driver is installed and running.

又卸掉535,又安装535:

参考:服务器:显卡驱动重装(Ubuntu 20.04)_ubuntu20.04安装显卡驱动-CSDN博客

sudo apt install nvidia-driver-535-server

,nvidia-smi终于输出正常,但550才是官方推荐版本

下载 NVIDIA 官方驱动 | NVIDIA

所以又卸掉535:

306 sudo /usr/bin/nvidia-uninstall #遇到bug
307 sudo apt-get remove nvidia-* #删除无效驱动
314 sudo apt install nvidia-utils-550-server #安不了
316 sudo dpkg –list | grep nvidia-*
317 sudo /usr/bin/nvidia-uninstall #遇到bug
318 sudo apt-get –purge remove nvidia-*
319 sudo apt autoremove nvidia-*
320 sudo apt-get purge nvidia*
321 sudo apt-get purge libnvidia*
322 sudo dpkg –list | grep nvidia-*
323 ubuntu-drivers devices

,把550安回去(灬ꈍ ꈍ灬)

参考:微信视频号:珑京科技、天用科技

350 wget https://cn.download.nvidia.com/XFree86/Linux-x86_64/550.144.03/NVIDIA-Linux-x86_64-550.144.03.run #下载nvidia驱动
351 ls NVIDIA-Linux-x86_64-550.144.03.run #查看下载的文件
340 sudo vim /etc/netplan/00-installer-config.yaml #修改配置文件
末尾添加:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

343 which gcc # 有输出说明已安装,如无安装:sudo apt-get install gcc
344 which make # 有输出说明已安装,如无安装:sudo apt-get install make
345 ls
346 chmod +x NVIDIA-Linux-x86_64-550.144.03.run #赋予执行权限
348 ls -l NVIDIA-Linux-x86_64-550.144.03.run #使用 ls -l 命令确认权限是否已经添加成功
349 sudo ./NVIDIA-Linux-x86_64-550.144.03.run –no-opengl-files #遇到bug:command not found
356 sudo ./NVIDIA-Linux-x86_64-550.144.03.run –no-opengl-files #手动敲就好了,没看出和上面有啥区别啊
#安装时,Woluld you like to register the kernel module sources with DKMS? No
#Nvidia's 32-bit compatibility libraries? No
357 sudo reboot
358 nvidia-smi

(5)多CUDA切换

通过.run文件安装的CUDA版本通常可以通过查看/usr/local目录来检查:

ls /usr/local | grep cuda
ls -l /usr/local/cuda

表明 cuda 是一个符号链接,它指向 cuda-12.0 目录

由于安装cuda-12.0时:

未取消让安装程序自动更新软链接,所以软链接指向后安装的cuda-12.0

法1:修改.bashrc文件中的cuda版本号实现多CUDA切换

sudo vim ~/.bashrc
# .bashrc文件末尾三行,修改版本号12.3
# cuda init
export PATH=$PATH:/usr/local/cuda-12.3/bin
export LD_LIBRARY_PATH=/usr/local/cuda-12.3/lib64

source ~/.bashrc

修改后nvcc -V显示12.3, 但软链接/usr/local/cuda还是指向12.0,

注意:当前实际使用的 CUDA 版本以 nvcc -V 为准

此时若想解决版本不一致的问题,需要更新符号链接:

sudo rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-12.3 /usr/local/cuda

也就是切换CUDA版本需要改两个地方,推荐法2!

法2:.bashrc文件中的cuda指向软链接,手动修改软链接以指向不同版本的CUDA 

# .bashrc文件末尾添加以下三行:
# cuda init
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=/usr/local/cuda/lib64

# 删了旧的软链接,链接新的目录即可
sudo rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-12.3 /usr/local/cuda

自由切换:

有时需要sudo reboot 或 sudo ldconfig 刷新

进一步测试:

442 cd installpackage
443 nvcc add.cu -o add
444 ./add

输出0 3 6 9 12 15 18 21 24 27,CUDA可用! 

GPU服务器安装显卡驱动、CUDA和cuDNN_existing package manager installation of the drive-CSDN博客

Linux之cuda、cudnn安装及版本切换_cudnn版本-CSDN博客

服务器:多CUDA配置_一台服务器上安装多个cuda-CSDN博客

【记录】linux20.04安装cuda、cudnn以及anaconda过程_linux cudnn-CSDN博客

CUDA与cuDNN在linux / Ubuntu22.04上的安装与卸载,包含CUDA的.run安装与.deb安装,cuDNN的.tar安装与.deb安装_ubuntu22.04卸载cudnn-CSDN博客

(6)安装cuDNN 

由于有多版本需求,因此使用.tar压缩包安装

cuDNN Archive | NVIDIA Developer

官网下载得到

CUDA12.0对应cudnn-linux-x86_64-8.8.0.121_cuda12-archive.tar.xz

CUDA12.3对应cudnn-linux-x86_64-8.9.5.30_cuda12-archive.tar.xz

法1:软链接

将解压得到的文件移到新建文件夹/opt/cudnn中,接着将include文件夹与lib文件夹中的所有文件软连接到cuda/include/与cuda/lib64/中,注意留意到底将cuDNN链接到了哪个版本下的cuda

$ sudo mkdir -p /opt/cudnn

# 解压、移动
$ sudo tar -xJvf cudnn-linux-x86_64-8.8.0.121_cuda12-archive.tar.xz -C /opt/cudnn

# 查看一下目录结构
$ cd /opt/
$ tree -L 2 cudnn # 安装sudo apt install tree
cudnn
└── cudnn-linux-x86_64-8.8.0.121_cuda12-archive
├── include
├── lib
└── LICENSE

# 链接文件夹
$ sudo ln -sf /opt/cudnn/cudnn-linux-x86_64-8.8.0.121_cuda12-archive/include/* /usr/local/cuda/include/
$ sudo ln -sf /opt/cudnn/cudnn-linux-x86_64-8.8.0.121_cuda12-archive/lib/* /usr/local/cuda/lib64/

法2:

cudnn版本与cuda版本是一一对应的,且只能有一种对应关系,因此,在确定cuda版本之后,再下载对应cudnn版本

直接将解压得到的文件复制到对应CUDA文件夹,简单直观,推荐!

#12.0
# 解压
sudo tar -xJvf cudnn-linux-x86_64-8.8.0.121_cuda12-archive.tar.xz

# 复制文件
sudo cp cudnn-linux-x86_64-8.8.0.121_cuda12-archive/include/* /usr/local/cuda-12.0/include/
sudo cp cudnn-linux-x86_64-8.8.0.121_cuda12-archive/lib/* /usr/local/cuda-12.0/lib64/

# 添加读取权限
sudo chmod a+r /usr/local/cuda-12.0/lib64/*
sudo chmod a+r /usr/local/cuda-12.0/include/*

# 检查cudnn版本号
cat /usr/local/cuda-12.0/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

#12.3
# 解压
sudo tar -xJvf cudnn-linux-x86_64-8.9.5.30_cuda12-archive.tar.xz

# 复制文件
sudo cp cudnn-linux-x86_64-8.9.5.30_cuda12-archive/include/* /usr/local/cuda-12.3/include/
sudo cp cudnn-linux-x86_64-8.9.5.30_cuda12-archive/lib/* /usr/local/cuda-12.3/lib64/

# 添加读取权限
sudo chmod a+r /usr/local/cuda-12.3/lib64/*
sudo chmod a+r /usr/local/cuda-12.3/include/*

# 检查cudnn版本号
cat /usr/local/cuda-12.3/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

进一步测试:

cd installpackage
unzip cuDNN-samples-v8-main.zip
cd cuDNN-samples-v8-main/mnistCUDNN
sudo apt-get install libfreeimage-dev # 安装 FreeImage 库
sudo make clean && make # 当 make clean 命令成功执行(返回状态码为 0)时,才会继续执行后面的 make 命令
./mnistCUDNN # ./ 用于明确指定文件位于当前目录 可执行文件mnistCUDNN通过前面的 make 命令编译生成

 

Test passed!,cuDNN可用! 

(7)安装Anaconda3

官网链接:Download Now | Anaconda

wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh
bash Anaconda3-2024.10-1-Linux-x86_64.sh

 

若默认其安装位置,直接Enter键,若想改变安装位置,可在其后输入指定安装位置。本次安装默认其安装位置

豆包解释:

conda config –set auto_activate_base false 是对 Conda 环境激活设置的调整,执行此命令后,Conda 本身的功能不受影响,仍然可以正常使用。只是在启动 shell 时不会自动进入 base 环境,避免了不必要的环境激活。你可以根据需要手动激活 base 环境或其他自定义环境,例如使用 conda activate base 或 conda activate your_env_name 命令。此命令的主要目的是控制 Conda 基础环境(base 环境)的自动激活行为。当你执行 conda init 后,默认情况下每次启动 shell 时,Conda 会自动激活 base 环境。而使用 conda config –set auto_activate_base false 命令,你可以将这个自动激活的设置关闭。也就是说,之后每次启动 shell 时,Conda 仍然会被初始化,但不会自动进入 base 环境。你可以在需要时手动激活所需的环境。

而 conda init –reverse $SHELL 是对 Conda 初始化配置的撤销,执行该命令后,Conda 在 shell 启动时不会自动初始化,这意味着你无法直接使用 conda 命令。如果需要使用 Conda,你需要重新执行 conda init 命令来初始化 shell 配置文件,或者手动设置环境变量等方式来让 shell 识别 Conda。该命令的作用是撤销之前 conda init 对 shell 配置文件所做的更改。conda init 会在 shell 配置文件(如 ~/.bashrc 或 ~/.zshrc)中添加初始化代码,使得每次启动 shell 时自动初始化 Conda。而 conda init –reverse $SHELL 会删除这些添加的代码,将 shell 配置文件恢复到未执行 conda init 之前的状态。执行此命令后,下次启动 shell 时,Conda 不会自动初始化,需要手动执行初始化操作才能使用 Conda。

490 source ~/anaconda3/bin/activate
491 conda –version
492 conda env list

 conda常用指令:

1、 查看所有虚拟环境
conda env list

2、创建环境
conda create -n 虚拟环境名 python==版本号
conda create -n pt21_c python==3.8

3、激活进入已创建的环境
conda activate 环境名
conda activate pt21_c

4、退出环境
conda deactivate

5、删除环境
conda remove -n 环境名 –all
conda remove -n pt21_c –all

【记录】linux20.04安装cuda、cudnn以及anaconda过程_linux cudnn-CSDN博客

ubuntu服务器深度学习环境配置–cuda、cudnn、conda的下载、自定义安装位置及环境配置_ubuntu下载cuda-CSDN博客

赞(0)
未经允许不得转载:网硕互联帮助中心 » 服务器显卡驱动、CUDA、cuDNN、conda安装
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!