环境配置
1. 概述
如果平台提供的镜像没有满足您的要求,可以尝试参考下述步骤制作。
2. 创建 python 环境
根据需要创建python环境,例如 python 3.10 。创建步骤:
Step 1:构建一个虚拟环境名为:my_env,Python 版本为 3.10
conda create --name my_env python=3.10
Step 2: 激活环境
source activate my_env
Step 3: 验证
python --version
3. pip 配置源
pip 国内常用的源
北外源:https://mirrors.bfsu.edu.cn/help/pypi/web/simple
临时使用
使用 pip 的时候在后面加上 -i 参数,指定 pip 源。例如:
pip install numpy -i https://mirrors.bfsu.edu.cn/help/pypi/web/simple
命令行配置
升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
python -m pip install --upgrade pip
pip config set global.index-url https://mirrors.bfsu.edu.cn/pypi/web/simple
pip config set global.trusted-host mirrors.bfsu.edu.cn
如果您到 pip 默认源的网络连接较差,临时使用本镜像站来升级 pip:
python -m pip install -i https://mirrors.bfsu.edu.cn/pypi/web/simple --upgrade pip
查看 pip 源配置
pip config list
配置文件配置
修改 ~/.config/pip/pip.conf 配置文件,以清华源为例,写入如下内容:
[global]
index-url = https://mirrors.bfsu.edu.cn/pypi/web/simple
trusted-host = mirrors.bfsu.edu.cn
4. 安装模块
4.1. Pytorch
pytorch 安装建议参考Previous PyTorch Versions|PyTorch,例如安装 torch 2.0.1+cu118 环境, 可以使用 conda 或 pip 安装,推荐使用 pip 安装。
使用 conda 安装 pytorch 会安装对应 cuda,但是如果 cuda 已经在系统里,就不需要重复安装。(cuda 的安装方法参考下面章节)。
注意 GPU 架构对 cuda 版本有要求,比如 RTX 3090 系列的 Ampere 架构需要使用 cuda 11.1 以上的版本,4090 系列的需要使用 cuda 11.8 以上。(其他类型的GPU查看下面的附录)
# CUDA 11.8
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.8 -c pytorch -c nvidia
# CUDA 11.8
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118
验证安装的 pytorch 是否可用,简单使用 torch.cuda.is_available() 函数验证,输出为 True 表示可用,例如:
$ python
>>> import torch
>>> torch.cuda.is_available()
True
4.2. Tensorflow
tensorflow 安装建议参考Install TensorFlow with pip,通常使用 pip 安装。注意安装的 tensorflow 版本与 python 版本、CUDA、cuDNN 版本的对应关系。
注意 GPU 架构对 cuda 版本有要求,比如 RTX 3090 系列的 Ampere 架构需要使用 cuda 11.1 以上的版本。(其他类型的GPU查看下面的附录)
pip install tensorflow[and-cuda]
例如:
pip install tensorflow==2.6.0
或者
pip install tensorflow[and-cuda]==2.14.0 (该方式只适用在新版本,该方式会安装 cuda、cudnn 等依赖)
# 验证安装
python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
GPU 版本的 tensorflow 与 python、cuDNN、CUDA 对应关系。参考Build from source | TensorFlow。
4.3. NumPy
NumPy 计算加速依赖于线性代数库 - 通常是 Intel MKL 或 OpenBLAS 。一般来说 AMD CPU 使用 OpenBlas 在部分矩阵计算上更快;反之在 Intel 的 CPU 上使用 MKL 在部分矩阵计算上会更快。
在 conda 默认通道中,NumPy 是针对 Intel MKL 构建的。
在 conda-forge 通道中,NumPy 是针对 BLAS 包构建的。
通常 pip 安装的是使用 OpenBLAS 构建的 NumPy 。
安装 Intel MKL 构建的 NumPy
conda install numpy -c conda
如下图安装可以看到 MKL 的依赖
安装 OpenBLAS 构建的 NumPy 可以使用 conda 或 pip 安装,例如:
conda install numpy -c conda-force
或者
pip install numpy
使用 conda 安装可以看到 BLAS 的依赖
验证安装的 NumPy 使用的版本
python -c "import numpy as np; print(np.__config__.show())"
OpenBLAS 版本
Intel MKL 版本
5. 安装 cuda 和 cudnn
cuda 和 cudnn 的安装是通过 nvidia 官网下载安装,步骤比较复杂,不推荐使用。如果您有需要,可以联系客服人员制作镜像。
5.1. 安装 cuda
Step 1:下载 cuda
访问CUDA Toolkit 12.4 Update 1 Downloads | NVIDIA Developer 在页面找到需要安装的 cuda 版本。如果是历史版本,点击页面的CUDA Toolkit 11.8 Downloads | NVIDIA Developer。
例如下载 cuda 11.8.0 。在 CUDA Toolkit Archive | NVIDIA Developer 页面找到 CUDA Toolkit 11.8 Downloads | NVIDIA Developer 点击进入,并选择自身机器配置选择下载 runfile。
Step 2:安装 cuda
下载完成之后,添加执行权限,并执行命令安装。命令采用的是静态安装方式,安装 cudatoolkit 和 samples。
# 如果镜像中存在已经安装的cuda,可以删除镜像中的 cuda 软连接
sudo rm /usr/local/cuda
# 执行安装
chmod +x cuda_11.8.0_520.61.05_linux.run
sudo ./cuda_11.8.0_520.61.05_linux.run --silent --toolkit --samples
Step 3:验证
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0
在安装 cuda 时候出入 libxml2.so.2: cannot open shared object file 报错,可以尝试安装 libxml2 来解决。
sudo apt-get update
sudo apt-get install libxml2
5.2. 安装 cudnn
Step 1:下载 cudnn
访问cuDNN Archive | NVIDIA Developer 官网 在页面找到需要安装的 cudnn 版本。例如下载 cudnn 8.7.0 版本,选择对应的操作系统 Tar 包下载
Step 2:安装 cudnn
# 解压
tar -xvf cudnn-linux-x86_64-8.7.0.84_cuda11-archive.tar.xz
# 拷贝
cd [cudnn的解压目录]
sudo cp -rfp include/* /usr/local/cuda/include/
sudo cp -rfp lib/* /usr/local/cuda/lib64/
6. 附录
GPU 架构信息
GPU | arch | CUDA gencode | 支持的CUDA版本 |
---|---|---|---|
RTX3090 | Ampere | sm_86、compute_86 | >=11.1 |
RTX4090 | Ada Lovelace | sm_89、compute_89 | >=11.8 |