电脑刚刚重做了系统,环境干净的一批,简单记录一下,如果哪里不对,请留言,我会予以修正。
参考:
Ubuntu21.10下安装TensorFlow及配置GPU支持(cuda11.1+cudnn8.1.0)
Linux查看当前Cuda(CUDA Toolkit )版本
Ubuntu22.04安装CUDA、cudnn详细步骤
Target:
Nvidia driver(545.29.02), CUDA(12.3/12.4), Tensorflow-gpu, cuDNN
步骤
安装Nvidia driver
- 添加PPA源
sudo add-apt-repository ppa:graphics-drivers/ppa
为系统安装依赖项以构建内核模块:
sudo apt-get install dkms build-essential
- 查看显卡硬件型号
ubuntu-drivers devices
输出如下:
可以看到推荐安装的驱动版本号为:
- 安装NVIDIA驱动
sudo ubuntu-drivers autoinstall
系统会自动安装推荐版本驱动,接着重启系统。重启时间会比以往慢一点,开机时会显示NVRM: loading NVIDIA UNIX Open Kernel Module for...
等着就可以了。
安装CUDA
- 检测所需CUDA版本:
nvidia-smi
显示如下,右上角的CUDA version 就是与此驱动相匹配的Cuda版本 12.3,一般来说可以安装12.3或者更低一点的版本,此教程中安装12.3版本,如果下面出现12.4版本是第二次修改后结果,使用者统一就好:
- 下载相关依赖
sudo apt-get install freeglut3 freeglut3-dev libxi-dev libxmu-dev
大概需要个1分钟吧
- 下载安装文件
下载网址:https://developer.nvidia.com/cuda-downloads
按照自身系统选择后会出现安装命令,此教程选择runfile,需要保持网络连接,
运行命令的第一行:
wget https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda_12.3.0_545.23.06_linux.run
结果如下图所示:
- 安装cuda-toolkit
sudo sh ./cuda_12.3.0_545.23.06_linux.run --toolkit --silent --override
运行时间可能有点长,耐心等待一下
- 配置环境变量
(非必要) 由于没有vim,先安装vim:
sudo apt install vim
打开bashrc文件, sudo 可避免保存时出现E212:无法打开并写入文件 的错误提示
sudo vim ~/.bashrc
输入i进入输入模式添加如下内容,添加好后按‘Esc’退出输入模式,':wq':保存文件并退出 Vim 编辑器。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
使修改生效:
source ~/.bashrc
- 检验安装
nvcc --version
获得输出如下
安装Tensorflow-gpu
- 创建新的虚拟环境env
conda create -n env python=3.9
进入此虚拟环境
conda activate env
如果想使用下一步简便的指令,需要Python 3.6–3.9
- 安装tensorflow-gpu
pip install tensorflow[and-cuda]
- 进入python环境进行测试
python
>>> import tensorflow as tf
>>> print(tf.__version__)
>>> tf.test.is_built_with_cuda()
>>> print(tf.config.list_physical_devices('GPU'))
安装pytorch
- 进入官网 https://pytorch.org/get-started/locally/
如果cuda版本低一点就按照他这个来
如果cuda版本是12.4,目前不支持直接用命令安装,进入建议的Github: https://github.com/pytorch/pytorch#from-source,只有一丢丢麻烦
-
通过source安装
(1) 两个需求:1是python版本,在创建虚拟环境的时候已经确定为3.9,满足要求;2是确定gcc版本,我不确定正常来说有没有gcc,但我这个新的虚拟环境中是可以找到的,如果没有安装一个就好了
gcc --version
(2)安装依赖
安装 Intel 的数学核心库(MKL)和MAGMA 库
- Intel MKL (Math Kernel Library):这是一个高度优化的数学库,专为加速数学运算而设计,尤其是在 Intel 架构的处理器上。它提供了高性能的线性代数运算、快速傅里叶变换、矢量数学以及统计功能。这些库优化了多种数学操作,特别是在 CPU 上运行的密集型数学计算,从而提高了 PyTorch 在 CPU 上的性能。
- MAGMA(Matrix Algebra on GPU and Multicore Architectures):这是一个数学库,旨在利用 GPU 进行密集的线性代数运算,如矩阵分解、求解线性方程组等。MAGMA 是为了优化这类计算在多核心架构和 GPU 上的执行而设计的。对于在 GPU 上使用 PyTorch 进行深度学习训练,尤其是涉及到复杂的线性代数运算(如在训练过程中使用到的大规模矩阵操作)时,MAGMA 可以提供显著的性能提升。magma-cuda124:这个包特别为 CUDA 12.4 版本编译的 MAGMA 库版本。
conda install intel::mkl-static intel::mkl-include
# CUDA only: Add LAPACK support for the GPU if needed
conda install -c pytorch magma-cuda124 # or the magma-cuda* that matches your CUDA version from https://anaconda.org/pytorch/repo
(3)下载pytorch资源
git clone --recursive https://github.com/pytorch/pytorch
cd pytorch
下载会有点慢。。。别急
(4)安装pytorch
export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
python setup.py develop
这个时候可能会出现缺少cmake/yaml等库,通过pip安装好后重新运行以上代码,这一步时间巨长,长到什么程度,这篇攻略就是这个时候写的,喵的,他太慢了,我要去睡觉
(5)测试
import torch
print(torch.version)
安装cudnn以优化计算
cudnn的安装顺序并不影响以上tensorflow和、pytorch的安装,相反,pytorch可以帮助我们确定版本合适的cudnn
(通过pytorch确定cudnn版本,并下载所输出的版本,这个是当前torch所能支持的cudnn最高版本;若不需要pytorch,可通过下方版本确定网址确定版本)
import torch
print(torch.version)
print(torch.version.cuda)
print(torch.backends.cudnn.version())
-
下载安装文件
版本确定网址: https://docs.nvidia.com/deeplearning/cudnn/latest/reference/support-matrix.html
对应的下载网址: https://developer.nvidia.com/rdp/cudnn-archive
需要注册后下载列表中: Local installer for Ubuntu20.04 x86_64(Deb),
gmail没有问题,其他的不确定
安装
-
进到文件下载位置,双击deb文件
或者在deb文件存放目录下打开终端 输入
sudo dpkg -i cudnn-......(Tab 自动填充)
- 输入CUDA GPG key
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
- Refresh the repository metadata.
- sudo apt-get update
- Install the runtime library.
sudo apt-get install libcudnn8=8.x.x.x-1+cudaX.Y
8后面的数字取决于上面获取中ubuntu2004-8.9.3.28, cuda12.x取决于下一步候选的版本
apt-cache policy libcudnn8
重新Install the runtime library.
sudo apt-get install libcudnn8=8.9.3.28-1+cuda12.1
- Install the developer library.
sudo apt-get install libcudnn8-dev=8.9.3.28-1+cuda12.1
- Install the code samples.
sudo apt-get install libcudnn8-samples=8.9.3.28-1+cuda12.1
- 验证是否安装成功:
cp -r /usr/src/cudnn_samples_v8/ $HOME
cd $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
./mnistCUDNN
注:如果上面的make命令提示缺少FreeImage.h,运行:
sudo apt-get install libfreeimage3 libfreeimage-dev
之后重新运行
make clean && make
./mnistCUDNN