cuda需要Nvidia显卡或计算卡,AMD或intel显卡不行(但是也有套他们的标准)

就算是亮机卡也可使用,比如GT710这种

建议使用ubuntu来装,因为cuda就是在这个平台上开发的,当然别的linux系统也行

以下操作在ubuntu server 2204、debian12、debian11中都操作过,如果没有安装linux系统,可以参考

Ubuntu server安装图解

Debian 安装图解


注意!请根据需要安装对应版本的cuda!不同版本安装大同小异

主要思路:安装N卡(硬件),安装cuda的依赖(主要是c的编译器)、安装N卡驱动,安装nvcc、安装cuda

另外,你可能还需要pytorch、tf,在选择版本前务必根据你自己的需要选取,部分组件对操作系统也有要求,为了少做重复劳动,先把所有需要的组件版本对应好,然后再一个个安装。

官方文档永远是最好的:cuda官方安装文档


一、检查硬件软件环境和删除Nouveau

不要省略这一步,检查环境确定符合基本需求


1.确定系统识别了N卡

lspci | grep -i nvidia

 

显示类似如下信息(下图分别是rtx3090 24G和rtx4090 24G):



2.检查gcc编译器

gcc –version

 

如果正常,会显示版本,类似如下信息



如果没有,建议安装这个c的一大堆套件集合,一劳永逸


apt-get install build-essential

 

3.检查相关配套程序是否安装

apt-get install linux-headers-$(uname -r)

 

4.删除Nouveau

(这一步不一定要做,根据实际情况,如果提示需要卸载就卸载)

linux默认安装了N卡的开源驱动,即Nouveau。


检查Nouveau工作状态


lsmod | grep nouveau

 

如果出来很多信息,就说明这个驱动还在,卸载

编辑新文件,名字不一定取这个,其它也行


vi /etc/modprobe.d/nouveau.conf

 

内容如下


blacklist rivafb

blacklist vga16fb

blacklist nouveau

blacklist nvidiafb

blacklist rivatv

blacklist nouveau

blacklist lbm-nouveau

options nouveau modeset=0

alias nouveau off

alias lbm-nouveau off

 

应用到内核


update-initramfs -u

 

完成后重启电脑,然后再查看,没有信息了即可

如果没有重启电脑,还是显示会有的。


lsmod | grep nouveau

 

二、使用cuda Toolkit安装

推荐使用,这样全家桶就装好了:N卡驱动+cuda+nvcc

注意:这种方法不需要先装驱动,也省去了查找兼容性的问题

cuda要求的驱动版本是最低的版本,也就是说可以用最新的驱动配早期的cuda版本

官方地址: cuda toolkit

再次提示:版本根据你的需求进行选取,比如你要用pytorch、tensorflow等,以那个需要为准,不同版本安装方法都一样


记得点前面的连接,不要点后面的Versioned …链接 ,那个是英文的详细文档,看起来麻烦。


这样选择,下面会出来安装的命令,直接复制用就行

这里装的是12.1版本,在上面的官方地址可以选取自己需要的版本,方法都是类似的

不同系统也在这里可以看到对应的安装方法,然后把下面的命令一个个复制进去就行



下面根据命令一步步操作:


(一)ubuntu系统参考这个

1.先切换到程序下载目录

mkdir /usr/local/my_cuda && cd /usr/local/my_cuda

 

2.安装操作

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin

 

移动配置文件


mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600

 

下载安装包


wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda-repo-ubuntu2204-12-1-local_12.1.0-530.30.02-1_amd64.deb

 

安装


dpkg -i cuda-repo-ubuntu2204-12-1-local_12.1.0-530.30.02-1_amd64.deb

 

安装key


cp /var/cuda-repo-ubuntu2204-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/

 

更新


apt-get update

 

安装cuda,这一步时间较长,耐心等待


apt-get -y install cuda

 

安装完成后重启电脑,否则可能会出各种问题


(二)debian系统参考这个

选择的是本地的安装方法


1.进入操作的目录

cd /usr/local

 

2.下载key并装入系统

wget https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/cuda-keyring_1.0-1_all.deb

 

dpkg -i cuda-keyring_1.0-1_all.deb

 

add-apt-repository contrib

 

如果上面那条命令提示出错,则使用下面的命令


apt-get install software-properties-common

 

3.安装

时间较长,耐心等待


apt-get update

 

apt-get -y install cuda

 

安装完成后重启电脑,否则可能会出各种问题


三、测试

cuda版本以nvcc显示出来的为准,如果N卡驱动较新,nvidia-smi显示的版本会是新的cuda版本,而实际调用是通过nvcc


1.测试nvcc(cuda编译器)

nvcc -V

 

正常显示如下(如果出错,请看第四节问题处理部分,有解决方法):



2.测试nvidia-smi

nvidia-smi

 

如果这两步都出现问题,第四节处理


四、问题处理

1.nvcc 显示没有

查找nvcc


find / -name "nvcc"

 

比如出现下面目录



vi ~/.bashrc

 

最后的部分添加上(如果你不是装的12.1版本,要改目录中的版本)


export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64

export PATH=$PATH:/usr/local/cuda-12.1/bin

 

保存后,刷新环境变量


source ~/.bashrc

 

再次使用命令(注意V是大写)


nvcc -V

 

见到如下的,是不是很亲切?



2.nvidia-smi错误

据说重启解决80%问题

比如如下图提示,如果错误,重启即可,因为上面已经装过了,很多问题重启就能解决

或者这种找不到硬件的,重启(还有一种可能显卡没有插好!)



再次使用nvidia-smi可以看到类似下面的信息(左上角是N卡驱动版本,右上角是cuda版本)

cuda版本以nvcc为准



五、cuda卸载

如果需要换不同的版本,建议多版本并存,这里先不涉及,如果要彻底卸载,根据以下操作

权限不够前面加sudo,我这里用root进行安装


1.准备删除cuda

apt-get remove cuda

 

2.自动卸载

apt autoremove 

3.删除其它的cuda

apt autoremove cuda*

4.删除下载安装包(也可以不删除)

rm /usr/local/my_cuda/cuda-repo-ubuntu2204-12-1-local_12.1.0-530.30.02-1_amd64.deb

5.查找包相关

dpkg -l |grep cuda

类似于如下图的一些包,手动删除相关的包。否则再安装别的版本会失败

把上面的名称填到下面进行删除


dpkg -P cuda-repo-ubuntu2204-12-1-local cuda-toolkit-12-1-config-common cuda-toolkit-12-config-common cuda-toolkit-config-common cuda-visual-tools-12-1

六、补充说明

1.升级显卡

如果更换了显卡,通常不需要重新安装,如果无法用,则重新安装即可


2.限制功耗(谨慎)

有的显卡限制功耗可以有效降低温度,同时性能损失很小

以下仅作参考,通常情况不要动


进入持久化模式


nvidia-smi -pm 1

 

限制卡0功耗为200w


nvidia-smi -pl 200 -i 0

 3.安装更老的cuda版本

cuda版本虽然有驱动版本的限制,但是这个限制的版本是最低的版本驱动版本。

比如rtx4090的初始驱动版本是522.25,而cuda11.8的默认cuda版本是522.06(默认无法直接安装)。如果需要这个版本的cuda。

应该先安装N卡驱动,然后在运行cuda tookit11.8,这时候程序会默认跳过驱动,使用nvcc -V和nvidia-smi显示的cuda版本不一致,因为两者原理不同,cuda是通过nvcc来运行的,所以以nvcc为准,特别是在windows下,如果你不小心升级了N卡驱动也不要紧,cuda的实际版本是不会变的。



————————————————

版权声明:本文为CSDN博主「ziqibit」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/ziqibit/article/details/129935737