一:服务器情况
硬件基础配置:
CPU:AMD R9 5950X 内存:威刚 32G X 2 显卡:耕升GeForce RTX3060 TI 主板:ROG X570-E Gaming WiFi II %WiFi 6G驱动开不起来 硬盘:红盘4T(西数) + SSD 1T(京造) + Nvme 1T(三星)
Ubuntu 18.04+python3.7.13+cuDNN 8.4.1+CUDA11.1-11.7 TensorRT8.2+Pytorch1.11.0或1.12.0+Tensorflow-gpu 2.6或2.9.1 值得注意的是RTX3060只支持CUDA11.1版本及以上,不要选择conda来安装CUDA和CUDNN(这个对老版本有效)。

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员可以使用C语言来为CUDA™架构编写程序,所编写出的程序可以在支持CUDA™的处理器上以超高性能运行。
NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。
CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。
最终版本选择及安装情况:
- [x] 服务器系统:Linux-Mint 19.3
- [x] NVIDIA驱动安装
- [x] CUDA安装:11.1-11.7
- [x] cuDNN安装:8.4.1
- [ ] Tensorflow各个版本的安装
- [1] Tensorflow 2.5/2.6/2.9.1:Python 3.7.13 + gcc 8.4 + CUDA 11.2 + cuDNN 8.1
- [ ] PyTorch各个版本的安装
- [1] PyTorch 1.8.2(LTS):Python 3.7.13 + gcc 8.4 + CUDA 11.1
- [2] PyTorch 1.11.0或1.12.0:Python 3.7.13 + gcc 8.4 + CUDA 11.3

二:环境使用说明
系统盘:Nvme 1T(三星)
训练盘:SSD 1T(京造) 挂载/home
数据盘:红盘4T(西数) 挂载/data

需要注意的是,在服务器上大部分用户都是普通用户,无root权限,切换CUDA时很麻烦,不切换CUDA,深度学习环境的配置就比较受限,所以在服务器环境下,普通用户如何灵活切换CUDA和cuDNN版本呢?Environment Modules!!!
Environment Modules 包是一个简化 shell 初始化的工具,它允许用户在使用 modulefiles 进行会话期间轻松修改其环境。每个模块文件都包含为应用程序配置 shell 所需的信息。模块文件可以由系统上的许多用户共享,并且用户可以拥有自己的集合来补充或替换共享模块文件。
module avail 显示可以使用的模块module load/add 加载模块/软件module unload/rm 卸载模块/软件module list 显示已经加载的模块
将 Modules 工具的文件放到 opt/tools/modules 这个路径,下面再建立三个子目录:
- src 这里放安装包 源文件
- installed 这里是工具安装路径
- modulefiles 这里放 modulefiles -- 各个软件的版本文件。
CUDA版本切换命令:
module load cuda/11.1 # CUDA安装的版本包括11.1-11.7,可根据需要切换
cd home/lab532cd NVIDIA_CUDA-11.1_Samples/1_Utilities/deviceQuery # 选择其中一个示例进行测试make./deviceQuery
如果成功,会显示Result = PASS,否则根据错误提示解决问题。
查看CUDA当前版本
nvcc --version 或者cat /usr/local/cuda/version.txt
CUDNN的安装包中有sample code,可用于测试。
cp -r usr/src/cudnn_samples_v8/ $HOMEcd cudnn_samples_v8/mnistCUDNN/ #进入到mnist文件夹中,并进行编译make clean && make
sudo apt-get install libfreeimage3 libfreeimage-dev
执行后重新make clean && make,完成后尝试运行./mnistCUDNN,看到Test passed就说明安装成功。
查看cuDNN版本
whereis cudnn_version.h# cudnn_version: usr/include/cudnn_version.hcat usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2#define CUDNN_MAJOR 8#define CUDNN_MINOR 4#define CUDNN_PATCHLEVEL 1#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)#endif * CUDNN_VERSION_H */
查看Python和Pip版本
lab532@lab532-System-Product-Name:/usr/local$ python --versionPython 2.7.17lab532@lab532-System-Product-Name:/usr/local$ python3 --versionPython 3.7.13sudo apt install python3-piplab532@lab532-System-Product-Name:/usr/local$ pip --versionpip 21.3.1 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)lab532@lab532-System-Product-Name:/usr/local$ pip3 --versionpip 21.3.1 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)lab532@lab532-System-Product-Name:/usr/local$ pip2 --versionpip 20.3.4 from /usr/lib/python2.7/dist-packages (python 2.7)
替换python的pip源建议是一定操作一下的,pip安装速度会快很多:
pip install pip -Upip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simplecd ~mkdir .pipsudo vim ~/.pip/pip.conf
改为如下内容:
[global]no-cache-dir = trueindex-url = https://pypi.tuna.tsinghua.edu.cn/simple/extra-index-url = https://pypi.ngc.nvidia.comtrusted-host = pypi.ngc.nvidia.com[install]trusted-host = pypi.tuna.tsinghua.edu.cn
sudo rm /usr/bin/pythonsudo rm /usr/bin/pip #把原来的pip软链接删掉sudo ln -s /usr/bin/python3 /usr/bin/pythonsudo ln -s /usr/bin/pip3 /usr/bin/pip
pip install SomePackage # 最新版本pip install SomePackage==1.0.4 # 指定版本pip install 'SomePackage>=1.0.4' # 最小版本pip install Django==1.7 # 安装 Djangopip install --upgrade SomePackage # 升级包升级指定的包,通过使用==, >=, <=, >, < 来指定一个版本号pip uninstall SomePackagepip search SomePackagepip show # 显示安装包信息pip show -f SomePackage # 查看指定包的详细信息pip list -o # 查看可升级的包pip list # 列出已安装的包pip --versionpip --helppip install -U pip # 升级 pip如果这个升级命令出现问题 ,可以使用以下命令:sudo easy_install --upgrade pip
三:PyTorch和TensorFlow
PyTorch 1.8.2(LTS):Python 3.6.9 + gcc 8.4 + CUDA 11.1
PyTorch 1.11.0或1.12.0:Python 3.6.9 + gcc 8.4 + CUDA 11.3
pip3 install torch==1.8.2 torchvision==0.9.2 torchaudio==0.8.2 --extra-index-url https://download.pytorch.org/whl/lts/1.8/cu111pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113


pip install torch-1.11.0+cu113-cp37-cp37m-linux_x86_64.whl
torchvision.datasets: 一些加载数据的函数及常用的数据集接口;
torchvision.models: 包含常用的模型结构(含预训练模型),例如AlexNet、VGG、ResNet等;
torchvision.transforms: 常用的图片变换,例如裁剪、旋转等;
torchvision.utils: 其他的一些有用的方法。
也可以简单快速直接用清华源安装,此时默认安装的是最新版本的pytorch:
pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple/pip install torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple/

PyTorch GPU版本的正确性验证
TensorFlow安装
# Requires the latest pippip install --upgrade pip# Current stable release for CPU and GPUpip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple/# Or try the preview build (unstable)pip install tf-nightly -i https://pypi.tuna.tsinghua.edu.cn/simple/

Tensorflow GPU版本的正确性验证





