更新于 

CUDA & pip

1️⃣ 配置 CUDA、cuDNN

  如果你使用的系统支持 Nvidia 显卡,可以利用 CUDA 与 cuDNN 套件,对常用的 python 机器学习库进行加速。pip 是默认的 python 包管理器,但在校外网使用时偶尔会遇到卡顿问题,可以通过更换安装源解决。

关于

  • CUDA:CUDA(ComputeUnified Device Architecture),是显卡厂商 NVIDIA 推出的运算平台。 CUDA 是一种由 NVIDIA 推出的通用并行计算架构,该架构使 GPU 能够解决复杂的计算问题。
  • cuDNN:NVIDIA cuDNN 是用于深度神经网络的 GPU 加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN 可以集成到更高级别的机器学习框架中,如谷歌的 Tensorflow、加州大学伯克利分校的流行 caffe 软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在 GPU 上实现高性能现代并行计算。

一般来说,安装完 CUDA 也需要进一步安装 cuDNN 套件。

安装

  • 查看一下支持的版本。

  

  • 官网下载合适的版本安装包。暂时推荐 10.2!等多数包更新支持 11 后再进行迁移。

20201205,目前最新的 CUDA 版本号为 11.1,但仍然推荐使用上一个大版本最后的稳定版本,目前为 10.2。

  • 仅仅安装以下几个组件。之后默认安装就好了,注意一下实际的安装路径。

  

请勿选择默认的安装模式,进行勾选其中 CUDA 部分组件即可。

  • 正常来说安装完成后,相应的环境变量可以自动配置完成。如果没有,需要手动配置相应的环境变量,包含 bin、include、lib、libnvvp 几个文件夹,将其添加到用户级别的环境变量即可。

  

  • 检查版本号。
PS C:\Users\Tommy> nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:32:27_Pacific_Daylight_Time_2019
Cuda compilation tools, release 10.2, V10.2.89
  • 官网下载解压 cuDNN 文件,解压缩,将得到的三个文件夹的内容复制粘贴到 CUDA 安装目录即可完成安装。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\

使用 torch 库检查 CUDA

  PyTorch 是最常用的一个可以直接利用 CUDA 库的 python 第三方包了。我们用它来了验证一下 CUDA 的安装是否完成。这里列举一些 torch​ 关于 CUDA 的操作。

>>> import torch
>>> torch.__version__
'1.6.0'
>>> torch.version.cuda
'10.2'
>>> torch.cuda.is_available() # check CUDA availablity
True
>>> torch.cuda.device_count() # GPUs
1
>>> torch.cuda.current_device() # index of devicein use
0
>>> torch.cuda.get_device_name(0) # GPU device name
'GeForce RTX 2060'
>>> torch.cuda.get_device_capability(0) # capability of device
(7, 5) # the major and minor cuda capability of the device
>>> torch.cuda.empty_cache() # free up GPU devices in use

这是在终端中的 python 交互库中完成的。直接在终端中输入 python 即可进入。

  前段时间用了 yarn 之后,倍感 yarn 指令的亲切感。可惜目前来说,pip 还没有特别优秀的替代品,在一些安装配置指令上还有些不尽人意的地方。

  另外一个比较值得注意的地方,pip 不存在项目环境与全局环境,所有第三方包均安装在全局目录下,这一点上来说,对项目快速部署不是特别友好。目前常见的方案是常见虚拟环境,如 conda,pipenv 等。

  配置 pip,主要是对默认的源进行替换。

pip 换源与配置

  • 注意不同系统中,配置文件存放的位置不同。
# Linux
mkdir ~/.config/pip
sudo vi ~/.config/pip/pip.conf

# macOS
mkdir ~/.pip
sudo vi ~/.pip/pip.conf

# windows
sudo vi %HOMEPATH%\pip\pip.ini
  • 替换源尽量使用 https​,新版 ubuntu 要求使用 https​ 源。实测学院网连接清华的源很慢,可能也是因为 https​ 的原因。以下三个常用靠谱国内镜像源,选择其一即可。
# mirrors
http://mirrors.aliyun.com/pypi/simple/
https://pypi.tuna.tsinghua.edu.cn/simple/
http://pypi.mirrors.ustc.edu.cn/simple/
  • 打开配置文件,覆盖其中的内容。
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com
timeout = 30
disable-pip-version-check = true

[list]
format = columns

常用库安装指令

  • 列举一些常用的第三方包安装指令。注意,torch 有无 CUDA 的安装指令是不一样的,具体可以查看官网。
# pip 20.2(python 3.8)
# pip tools
pip install pip black pip-check pip-review
# nice env
pip install jupyterlab spyder
# data process base
pip install numpy pandas scipy
# machine learning
pip install scikit-learn
# data visualization
pip install matplotlib
# network and transmitting
pip install paho-mqtt
# file IO and database
pip install h5py pyyaml pymysql
# encoding tools
pip install chardet
# funny tools
pip install sphinx sphinx-rtd-theme sphinx-autobuild recommonmark prettytable

# torch win with/without CUDA
pip install torch===1.6.0 torchvision===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
pip install torch torchvision
  • 一般的代码对第三方包版本的要求不是特别严格,所以对于这类依赖包、库不用特别更新。但一些用于终端的开发工具可以适当地进行更新。
# pip-check
pip-check -Hu

# pip-review
pip-review -i
  • 笔者整理的 PyPI 包推荐,可以参考这篇文章。