基本概念
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 环境