基本概念

1、什么是CUDA

CUDA(ComputeUnified Device Architecture),一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题

2、什么是CUDNN

NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。

3、CUDA与CUDNN的关系

CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。

 

核心步骤

确认显卡支持 cuda

首先确认显卡是否是 英伟达 NVIDIA 的,当然 AMD 也支持,但是不常用;

NVIDIA 显卡有 GTX Geforce、Quadra 和 Tesla 三大系列,然后到如下网站查看是否支持 Cuda

https://developer.nvidia.com/cuda-gpus 

点击如下链接即可查看每个系列支持 cuda 的显卡版本

安装显卡驱动  nvidia-smi 命令查看是否安装成功

安装CUDA    nvcc -V 命令查看是否安装成功

安装CUDNN

 

Linxu 搭建 GPU 环境

基础环境

操作系统:centos7

显卡:A800 

root 账户    个人账户也可以,但比较麻烦,可自行探索 

 

安装显卡驱动

查看显卡信息

GPU是否存在、型号信息是什么

# 查看显卡信息
lspci | grep -i nvidia
# 返回信息
31:00.0 3D controller: NVIDIA Corporation Device 20f5 (rev a1)
98:00.0 3D controller: NVIDIA Corporation Device 20f5 (rev a1)

下载显卡驱动

官网:https://www.nvidia.cn/Download/index.aspx?lang=cn        推荐

中文网址:https://www.nvidia.cn/geforce/drivers/

根据显卡型号选择驱动,显卡驱动长这样 NVIDIA-Linux-x86_64-495.46.run

安装显卡驱动

sudo sh NVIDIA-Linux-x86_64-495.46.run

查看驱动版本

nvidia-smi

 

安装CUDA

官网:https://developer.nvidia.com/cuda-toolkit-archive

选择对应版本(和显卡驱动保持一致,如上图),点击进入下图,建议选择runfile文件来安装。

往下拉有下载、安装命令

wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run
sudo sh cuda_12.2.0_535.54.03_linux.run

给 .run 文件 增加执行权限 chmod +x SS.run

运行安装命令后,会弹出 用户协议│ End User License Agreement │,此时不要乱点,直接输入 accept  

(有点慢,耐心等待) 

 

安装cuda时,会自动安装对应的NVIDIA驱动,由于我前面已经单独安装了NVIDIA所以这一步选择跳过显卡驱动安装,否则会提示安装失败

(按下键跳到Driver,再按Enter键取消勾选显卡驱动)

选择 Install,一路回车

[root@ai-algorithm04 software]# sudo sh cuda_12.2.0_535.54.03_linux.run 
===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-12.2/

 

安装完成后需要修改环境变量 vi ~/.bashrc    source ~/.bashrc    或者是  /etc/profile

export PATH=/usr/local/cuda-12.2/bin:$PATH  
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH  

64位系统所以是lib64,如果是32位系统则是lib即可

创建软连接

sudo ln -s /usr/local/cuda-12.2/bin/nvcc /usr/bin/nvcc

查询 CUDA 是否安装成功

nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Jun_13_19:16:58_PDT_2023
Cuda compilation tools, release 12.2, V12.2.91
Build cuda_12.2.r12.2/compiler.32965470_0

 

CUDNN安装

下载地址:https://developer.nvidia.com/cudnn

tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz

将文件夹中的内容复制到cuda路径中即可

cd cudnn-linux-x86_64-8.9.7.29_cuda12-archive
cp ./include/* /usr/local/cuda-12.2/include/
cp ./lib/* /usr/local/cuda-12.2/lib64/

然后

chmod a+r /usr/local/cuda-12.2/include/cudnn*.h /usr/local/cuda-12.2/lib64/libcudnn*

 

Windows 搭建 GPU 环境

首先 关闭 360

安装显卡驱动

在安装CUDA过程中,你可能各种尝试,把显卡驱动整坏了,可以重新安装;    【我就是这样,然后死活装不上 cuda,后来重装驱动,搞定】

在 https://www.nvidia.cn/Download/index.aspx?lang=cn 获取自己显卡的最新驱动版本;

下载,双击安装;

 

安装 cuda

访问CUDA的下载网站:https://developer.nvidia.com/cuda-toolkit,可以看到CUDA目前的最新版本,

可以通过选择下面的“Legacy Releases”链接来下载旧版本的驱动,或者 https://developer.nvidia.com/cuda-toolkit-archive

建议选择自定义安装,然后只勾选cuda,建议安装在默认文件路径;

把 安装路径下的 bin 目录设为环境变量:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin

 

安装 cudnn

CuDNN库(The NVIDIA CUDA® Deep Neural Network library)是CUDA针对深度神经网络的更新包,TensorFlow会使用它用于加速NVidia GPU上的深度学习。可以从这里下载,见:https://developer.nvidia.com/cudnn

首先要注册一个NVidia开发者帐号,它是免费的。登录后,您会看到各种CuDNN下载;

cuda 与 cudnn 版本要严格对应,对应关系见 https://developer.nvidia.com/rdp/cudnn-archive

 

下载下来的是一个包含了几个文件夹的ZIP文件,每个文件夹包含CuDNN文件(一个DLL,一个头文件和一个库文件)。找到你的CUDA安装目录,这里应该是这样的:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

可以看到从ZIP文件的目录也在这个目录,即有一个bin、一个include,一个lib等。将文件从ZIP复制到相关的目录。 

比如把cudnn64_7.dll文件拖拽到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin目录,其它相似。

 

安装 tensorflow-gpu

首先安装 python3.6

具体过程参考我的其他博客,这里只记录重点

之前我讲过 python 安装不推荐 64 位的,所以我安装的是 32 位的,但是死活装不上 tf,报错如下

Could not find a version that satisfies the requirement tensorflow-gpu(from versions: )
No matching distribution found for  tensorflow-gpu

后来换成了 64 位,可以了,我也是醉了

 

在安装 tf 之前,要 卸载掉 之前 的 tf 版本,和 跟 tf 相关的 包,如 tensorboard 等

 

然后使用 pip 安装 tensorflow

python3 -m pip install tensorflow-gpu

 

验证是否安装成功

import tensorflow as tf
print('GPU', tf.test.is_gpu_available())        # GPU True

显示 GPU 可用,成功;

 

如果CUDA驱动程序有错误,就可能会显示 cudart64_XX.dll 失败,其中XX是版本号。

ImportError: Could not find 'cudart64_100.dll'. TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. 
Download and install CUDA 10.0 from this URL: https://developer.nvidia.com/cuda-90-download-archive

按照提示,要下载 cuda 10.0,tf1.13 以上的版本需要 cuda 10.0 版本

 

如果CUDA驱动程序正确,但CuDNN驱动程序有错误,就可能会显示说 cudnn64_X.dll 缺少什么东西,其中X是一个版本号。 

 

安装 Pytorch

torch 会自动安装 cuda

 

 

 

 

参考资料:

https://blog.csdn.net/hzk594512323/article/details/86082852  Python之pip安装失败----Could not find a version that satisfies the requirement xxxx(from versions: )

### 下面是 cuda 安装教程 

https://www.cnblogs.com/touch-skyer/p/8367706.html  window10上安装python+CUDA+CuDNN+TensorFlow      【主要参考】

https://www.cnblogs.com/fanfzj/p/8521728.html    tensoflow-gpu安装

https://blog.csdn.net/u014695788/article/details/93246548  python CUDA配置

https://zhuanlan.zhihu.com/p/29841665  用GPU加速深度学习: Windows安装CUDA+TensorFlow教程

https://www.360kuai.com/pc/9290487ad261e50da?cota=4&tj_url=so_rec&sign=360_57c3bbd1&refer_scene=so_1  tensorflow版本与cuda cuDNN版本对应关系

 

https://mp.weixin.qq.com/s/QOcjVcs0yEJoOwayFLwkhw   安装GPU机器学习环境

https://mp.weixin.qq.com/s/rht6A0xPkBvRRwf8rH0qsg  windows 下搭建 gpu 环境