Ubuntu配置GPU支持的TensorFlow和pytorch

电脑刚刚重做了系统,环境干净的一批,简单记录一下,如果哪里不对,请留言,我会予以修正。

参考:

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

  1. 添加PPA源
sudo add-apt-repository ppa:graphics-drivers/ppa

为系统安装依赖项以构建内核模块:

sudo apt-get install dkms build-essential
  1. 查看显卡硬件型号
ubuntu-drivers devices

输出如下:


GPU

可以看到推荐安装的驱动版本号为:


select driver
  1. 安装NVIDIA驱动
sudo ubuntu-drivers autoinstall

系统会自动安装推荐版本驱动,接着重启系统。重启时间会比以往慢一点,开机时会显示NVRM: loading NVIDIA UNIX Open Kernel Module for...
等着就可以了。

安装CUDA

  1. 检测所需CUDA版本:
nvidia-smi

显示如下,右上角的CUDA version 就是与此驱动相匹配的Cuda版本 12.3,一般来说可以安装12.3或者更低一点的版本,此教程中安装12.3版本,如果下面出现12.4版本是第二次修改后结果,使用者统一就好:


coda
  1. 下载相关依赖
sudo apt-get install freeglut3 freeglut3-dev libxi-dev libxmu-dev

大概需要个1分钟吧

  1. 下载安装文件
    下载网址:https://developer.nvidia.com/cuda-downloads
    按照自身系统选择后会出现安装命令,此教程选择runfile,需要保持网络连接,
    cuda_run

    运行命令的第一行:
wget https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda_12.3.0_545.23.06_linux.run

结果如下图所示:


cuda_run_install
  1. 安装cuda-toolkit
sudo sh ./cuda_12.3.0_545.23.06_linux.run --toolkit --silent --override

运行时间可能有点长,耐心等待一下

  1. 配置环境变量
    (非必要) 由于没有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
  1. 检验安装
nvcc --version

获得输出如下


cuda_final

安装Tensorflow-gpu

  1. 创建新的虚拟环境env
conda create -n env python=3.9

进入此虚拟环境

conda activate env

如果想使用下一步简便的指令,需要Python 3.6–3.9

  1. 安装tensorflow-gpu
pip install tensorflow[and-cuda]
tensorflow-gpu
  1. 进入python环境进行测试
python
>>> import tensorflow as tf
>>> print(tf.__version__)
>>> tf.test.is_built_with_cuda()
>>> print(tf.config.list_physical_devices('GPU'))
tfTest

安装pytorch

  1. 进入官网 https://pytorch.org/get-started/locally/
    如果cuda版本低一点就按照他这个来
    image.png

    如果cuda版本是12.4,目前不支持直接用命令安装,进入建议的Github: https://github.com/pytorch/pytorch#from-source,只有一丢丢麻烦
    image.png
  2. 通过source安装


    image.png

    (1) 两个需求:1是python版本,在创建虚拟环境的时候已经确定为3.9,满足要求;2是确定gcc版本,我不确定正常来说有没有gcc,但我这个新的虚拟环境中是可以找到的,如果没有安装一个就好了

gcc --version
gcc

(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安装好后重新运行以上代码,这一步时间巨长,长到什么程度,这篇攻略就是这个时候写的,喵的,他太慢了,我要去睡觉

image.png

(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())
  1. 下载安装文件
    版本确定网址: 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没有问题,其他的不确定

    cudnn

  2. 安装

  • 进到文件下载位置,双击deb文件


    cudnn_install

    或者在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
image.png
  • Install the runtime library.
sudo apt-get install libcudnn8=8.x.x.x-1+cudaX.Y

8后面的数字取决于上面获取中ubuntu2004-8.9.3.28, cuda12.x取决于下一步候选的版本

报错:
image.png
apt-cache policy libcudnn8
image.png

重新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
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容