容器云使用指南最佳实践配置环境配置环境

环境配置

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 架构信息

GPUarchCUDA gencode支持的CUDA版本
RTX3090Amperesm_86、compute_86>=11.1
RTX4090Ada Lovelacesm_89、compute_89>=11.8