GPU 软件¶
Important
系统:Ubuntu 20.04
1.安装 Ubuntu 20.04¶
- test
2.安装 Nvidia 显卡驱动¶
最简单的方式是通过系统的软件与更新来安装:
进入系统的图形桌面,打开
Software & Updates
软件,可以看到标签栏有一个Additional Drivers
:
NVIDIA Corporation: Unknown
- Using NVIDIA dirver metapackage from nvidia-driver-455(proprietary, tested)
- Using X.Org x server – Nouveau display driver from xserver-xorg-video-nouveau(open source)
选择第一个安装 Nvidia 官方驱动(第二个是开源驱动)即可,根据网络情况稍等大概十分钟,安装完重启服务器。
重启完之后更新一下软件
sudo apt update sudo apt upgrade这里会连带 Nvidia 的驱动一起神级一遍,更新到最新的驱动;更新完可能会出现 nvidia-smi 命令报错,再重启一遍就解决了。
3.安装 CUDA¶
3.1 CUDA 介绍¶
NVIDIA® CUDA® 工具包提供了开发环境,可供创建经 GPU 加速的高性能应用。借助 CUDA 工具包,可以在经 GPU 加速的嵌入式系统、台式工作站、企业数据中心、基于云的平台和 HPC 超级计算机中开发、优化和部署应用。 此工具包中包含多个 GPU 加速库、多种调试和优化工具、一个 C/C++ 编译器以及一个用于在主要架构(包括 x86、Arm 和 POWER) 上构建和部署应用的运行时库。
借助多 GPU 配置中用于分布式计算的多项内置功能,科学家和研究人员能够开发出可从单个 GPU 工作站扩展到配置数千个 GPU 的云端设施的应用。
3.2 CUDA 安装¶
如果之前安装了旧版本的 CUDA 和 cudnn 的话,需要先卸载后再安装, 卸载 CUDA:
sudo apt-get remove --purge nvidia然后重新安装显卡驱动,安装好了之后开始安装 CUDA。
下载 CUDA 安装包–CUDA Toolkit 11.0 Download|NVIDIA Developer
安装 CUDA
chmod +x cuda_11.0.2_450.51.05_linux.run sudo sh ./cuda_11.0.2_450.51.05_linux.run配置 UDA 环境变量
vim ~/.bashrc # or vim ~/.zsh export CUDA_HOME=/usr/local/cuda-11.0 export LD_LIBRARY_PATH=${CUDA_HOME}/lib64 export PATH=${CUDA_HOME}/bin/${PATH}source ~/.bashrc
查看安装的版本信息
nvcc -V可以编译一个程序测试安装是否成功,执行以下几条命令:
cd ~/Softwares/cuda/NVIDIA_CUDA-11.0_Samples/1_Utilities/deviceQuery make ./deviceQuery
参考链接:
4.安装 cuDNN¶
下载 cuDNN 安装包–cuDNN Download|NVIDIA Developer
- https://developer.nvidia.com/rdp/cudnn-download
- 选择与 CUDA 版本对应的 cuDNN 版本
安装 cuDNN
tar -xzvf cudnn-11.0-linux-x64-v8.0.5.39.tag sudo cp cuda/lib64/* /usr/local/cuda-11.0/lib64/ sudo cp cuda/include/* /usr/local/cuda-11.0/include/查看 cuDNN 的版本信息
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
5.安装 Conda 环境¶
不同的训练框架和版本可能会需要不同的python版本相对应,而且有的包比如numpy也对版本有要求, 所以比较优雅的方法是给每个配置建立一个虚拟的python环境,在需要的时候可以随时切换, 而不需要的时候也能删除不浪费磁盘资源,那在这方面conda是做得最好的。
下载 Anaconda/MiniConda 安装包–Anaconda|Individdual Edition
安装 Conda
chmod +x Anaconda3-2020.11-Linux-x86_64.sh ./Anaconda3-2020.11-Linux-x86_64.sh
6.安装 Nvidia-Docker¶
7.测试¶
本地 Conda 环境
conda create --name python_38-pytorch_1.7.0 python=3.8 conda activate python_38-pytorch_1.7.0 which pip安装 PyTorch
pip install torch==1.7.0+cu110 torchvision==0.8.1+cu110 torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
7.1 TensorFlow¶
TensorFlow GPU 支持¶
Note
注意:对于 Ubuntu 和 Windows,需要安装支持 CUDA® 的显卡,才能实现 GPU 支持。
TensorFlow GPU 支持需要各种驱动程序和库。为了简化安装并避免库冲突, 建议使用支持 GPU 的 TensorFlow Docker 镜像(仅限 Linux)。 此设置需要 NVIDIA® GPU 驱动程序。
pip 软件包
硬件要求
支持以下带有 GPU 的设备:
- CUDA® 架构为 3.5、3.7、5.2、6.0、6.1、7.0 或更高的 NVIDIA® GPU 卡。请参阅支持 CUDA® 的 GPU 卡列表。
- 在配备 NVIDIA® Ampere GPU(CUDA 架构 8.0)或更高版本的系统上,内核已从 PTX 经过了 JIT 编译,因此 TensorFlow 的启动时间可能需要 30 多分钟。通过使用“export CUDA_CACHE_MAXSIZE=2147483648”增加默认 JIT 缓存大小,即可将此系统开销限制为仅在首次启动时发生(有关详细信息,请参阅 JIT 缓存)。
- 对于 CUDA® 架构不受支持的 GPU,或为了避免从 PTX 进行 JIT 编译,亦或是为了使用不同版本的 NVIDIA® 库,请参阅在 Linux 下从源代码编译指南。
- 软件包不包含 PTX 代码,但最新支持的 CUDA® 架构除外;因此,如果设置了 CUDA_FORCE_PTX_JIT=1,TensorFlow 将无法在旧版 GPU 上加载。(有关详细信息,请参阅应用兼容性。)
软件要求
必须在系统中安装以下 NVIDIA® 软件:
- NVIDIA® GPU 驱动程序:CUDA® 10.1 需要 418.x 或更高版本。
- CUDA® 工具包:TensorFlow 支持 CUDA® 10.1(TensorFlow 2.1.0 及更高版本)
- CUDA® 工具包附带的 CUPTI。
- cuDNN SDK 7.6
- (可选)TensorRT 6.0,可缩短用某些模型进行推断的延迟时间并提高吞吐量。
Linux 设置
要在 Ubuntu 上安装所需的 NVIDIA 软件,最简单的方法是使用下面的 apt 指令。 但是,如果从源代码构建 TensorFlow,请手动安装上述软件要求中列出的软件,并 考虑以 -devel TensorFlow Docker 映像作为基础。
安装 CUDA® 工具包附带的 CUPTI,并将其安装目录附加到 $LD_LIBRARY_PATH 环境变量中:
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64
使用 apt 安装 CUDA
Ubuntu 16.04、Ubuntu 18.04
CUDA® 10(TensorFlow 1.13.0 及更高版本),这些说明可能适用于其他 Debian 系发行版
Ubuntu 20.04(CUDA 10.1, 11.1)
Ubuntu 18.04(CUDA 10.1)
# Add NVIDIA package repositories $ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.243-1_amd64.deb $ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub $ sudo dpkg -i cuda-repo-ubuntu1804_10.1.243-1_amd64.deb $ sudo apt-get update $ wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb $ sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb $ sudo apt-get update # Install NVIDIA driver $ sudo apt-get install --no-install-recommends nvidia-driver-450 # Reboot. Check that GPUs are visible using the command: nvidia-smi # Install development and runtime libraries (~4GB) $ sudo apt-get install --no-install-recommends \ cuda-10-1 \ libcudnn7=7.6.5.32-1+cuda10.1 \ libcudnn7-dev=7.6.5.32-1+cuda10.1 # Install TensorRT. Requires that libcudnn7 is installed above. $ sudo apt-get install -y --no-install-recommends libnvinfer6=6.0.1-1+cuda10.1 \ libnvinfer-dev=6.0.1-1+cuda10.1 \ libnvinfer-plugin6=6.0.1-1+cuda10.1
Ubuntu 16.04(CUDA 10.1)
# Add NVIDIA package repositories # Add HTTPS support for apt-key $ sudo apt-get install gnupg-curl $ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_10.1.243-1_amd64.deb $ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub $ sudo dpkg -i cuda-repo-ubuntu1604_10.1.243-1_amd64.deb $ sudo apt-get update $ wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb $ sudo apt install ./nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb $ sudo apt-get update # Install NVIDIA driver # Issue with driver install requires creating /usr/lib/nvidia $ sudo mkdir /usr/lib/nvidia $ sudo apt-get install --no-install-recommends nvidia-418 # Reboot. Check that GPUs are visible using the command: nvidia-smi # Install development and runtime libraries (~4GB) $ sudo apt-get install --no-install-recommends \ cuda-10-1 \ libcudnn7=7.6.4.38-1+cuda10.1 \ libcudnn7-dev=7.6.4.38-1+cuda10.1 # Install TensorRT. Requires that libcudnn7 is installed above. $ sudo apt-get install -y --no-install-recommends \ libnvinfer6=6.0.1-1+cuda10.1 \ libnvinfer-dev=6.0.1-1+cuda10.1 \ libnvinfer-plugin6=6.0.1-1+cuda10.1
Windows 设置
根据硬件、软件要求,参考 适用于Windows 的 CUDA 安装指南 进行安装
确保安装的 NVIDIA 软件包版本一致,如果没有
cuDNN64_7.dll
文件,TensorFlow 将无法加载,如需使用其他版本, 需要使用源码构建: 在 Windows 下从源代码构建 .将 CUDA®、CUPTI 和 cuDNN 安装目录添加到
%PATH%
环境变量中。- 例如,如果 CUDA® 工具包安装到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1, 并且 cuDNN 安装到 C:\toolscuda,请更新 %PATH% 以匹配路径:
C:\> SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin;%PATH% C:\> SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\CUPTI\lib64;%PATH% C:\> SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include;%PATH% C:\> SET PATH=C:\tools\cuda\bin;%PATH%