摸索了两天两夜之后终于成功了,先上图
踩了无数坑,花费了大量时间装包卸包、重启系统、重装系统 ......因此,把摸索出来的正确步骤分享出来,供大家参考。
1. 软硬件要求
硬件:NVIDIA显卡
软件:Ubuntu18.04 LTS 或 Ubuntu20.04 LTS (我都测试过)
2. 安装显卡驱动(nvidia-driver-xxx)
如果在终端输入
nvidia-smi
后可以正常现实显卡信息,则可以跳过此步骤。否则,根据显卡型号,在NVIDIA官网
找到对应的版本进行下载,例如,我的机器对应的驱动是NVIDIA-Linux-x86_64-550.100.run,用浏览器下载默认放在 ~/下载/ 路径里。下载完后,运行
sudo ./下载/NVIDIA-Linux-x86_64-550.100.run
然后按照提示进行安装,都选择yes即可。安装完后,用nvidia-smi命令测试可以成功显示显卡信息。
- 注释1:如果仍然没有成功显示,可以先退出终端,然后重新打开进行测试。如果还不行,则重启机器即可。
- 注释2:nvidia-smi命令得到的CUDA Version信息仅仅表示当前驱动能支持的CUDA Toolkit的最高版本,不代表已经安装了CUDA Toolkit
3. 安装CUDA(即CUDA Toolkit xxx)
安装前应根据编程需求先确定拟采用的tensorflow版本,然后找到匹配的cuda toolkit版本。例如,我要采用tensorflow==2.11.0版本,它不是较新的版本,那么可能不支持cuda toolkit 12.x系列。由此,我们判断出应安装cuda toolkit 11.x。
事实也的确如此,我安装了cuda toolkit 12后发现与tensorflow 2.11不匹配。所以又卸载重来,踩了很多坑!
为了安装cuda toolkit 11.x,首先访问NVIDIA网站
我们选择11系列中的最高版本CUDA Toolkit 11.8,然后找到相应的命令并依次执行
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-ubuntu1804-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu1804-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-11-8
这里需要特别注意的是,最后一行命令是我修改过的,而官网上给出的命令是sudo apt-get -y install cuda。经过测试,如果用官网的命令,则apt-get会自动把cuda toolkit 12系列的版本安装上,导致失败。所以一定要加上版本限定。
4. 重启与测试
安装完cuda toolkit后,一定要重启一下机器。然后用命令
nvidia-smi
nvcc -V
进行测试,如果都能正常显示则表明已安装成功。如果nvcc -V显示找到命令,那么说明之前没有配置过环境变量,此时打开 ~/.bashrc 文件
sudo vi ~/.bashrc
在文件末尾添加两个语句
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
然后在命令行输入
source ~/.bashrc
即可完成环境配置,此时再运行nvcc -V命令即可正确显示。
最后,在安装了tensorflow的环境中,运行
import tensorflow as tf
tf.constant([1,2])
tf.config.list_physical_devices('gpu')
来测试tensorflow是否与cuda匹配。