文档简介:
Linux 下的 PIP 安装¶
The Python Package Index(PyPI)是 Python 的包管理器。本文档为你介绍 PyPI 安装方式,飞桨提供的 PyPI 安装包支持分布式训练(多机多卡)、TensorRT 推理功能。
一、环境准备¶
1.1 如何查看您的环境¶
-
可以使用以下命令查看本机的操作系统和位数信息:
uname -m && cat /etc/*release
-
确认需要安装 PaddlePaddle 的 Python 是您预期的位置,因为您计算机可能有多个 Python
-
根据您的环境您可能需要将说明中所有命令行中的 python3 替换为具体的 Python 路径
which python3
-
-
需要确认 python 的版本是否满足要求
-
使用以下命令确认是 3.6/3.7/3.8/3.9/3.10
python3 --version
-
-
需要确认 pip 的版本是否满足要求,要求 pip 版本为 20.2.2 或更高版本
python3 -m ensurepip
python3 -m pip --version
-
需要确认 Python 和 pip 是 64bit,并且处理器架构是 x86_64(或称作 x64、Intel 64、AMD64)架构。
python3 -c "import platform;print(platform.architecture()[0]);print(platform.machine())"
-
下面的第一行输出的是”64bit”,第二行输出的是”x86_64”、”x64”或”AMD64”即可:
-
默认提供的安装包需要计算机支持 MKL
-
如果您对机器环境不了解,请下载使用快速安装脚本,配套说明请参考这里。
二、开始安装¶
首先请选择您的版本¶
-
如果您的计算机没有 NVIDIA® GPU,请安装CPU 版的 PaddlePaddle
-
如果您的计算机有 NVIDIA® GPU,请确保满足以下条件并且安装GPU 版 PaddlePaddle,依赖库环境版本要求如下:
-
CUDA 工具包 10.2 配合 cuDNN v7.6.5, 如需使用 PaddleTensorRT 推理,需配合 TensorRT7.0.0.11
-
CUDA 工具包 11.2 配合 cuDNN v8.2.1, 如需使用 PaddleTensorRT 推理,需配合 TensorRT8.0.3.4
-
CUDA 工具包 11.6 配合 cuDNN v8.4.0, 如需使用 PaddleTensorRT 推理,需配合 TensorRT8.4.0.6
-
CUDA 工具包 11.7 配合 cuDNN v8.4.1, 如需使用 PaddleTensorRT 推理,需配合 TensorRT8.4.2.4
-
如需使用分布式多卡环境,需配合 NCCL>=2.7
-
GPU 运算能力超过 3.5 的硬件设备
您可参考 NVIDIA 官方文档了解 CUDA、CUDNN 和 TensorRT 的安装流程和配置方法,请见CUDA,cuDNN,TensorRT
-
-
如果您需要使用多卡环境请确保您已经正确安装 nccl2,或者按照以下指令安装 nccl2(这里提供的是 CUDA10.2,cuDNN7 下 nccl2 的安装指令,更多版本的安装信息请参考 NVIDIA官方网站):
-
Centos 系统可以参考以下命令
wget http://developer.download.nvidia.com/compute/machine-learning/repos/rhel7/x86_64/nvidi
rpm -i nvidia-machine-learning-repo-rhel7-1.0.0-1.x86_64.rpm
yum update -y
yum install -y libnccl-2.7.8-1+cuda10.2 libnccl-devel-2.7.8-1+cuda10.2 libnccl-static-2.7.8-1+cuda10.2
-
a-machine-learning-repo-rhel7-1.0.0-1.x86_64.rpm
-
Ubuntu 系统可以参考以下命令
wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/
dpkg -i nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
sudo apt install -y libnccl2=2.7.8-1+cuda10.2 libnccl-dev=2.7.8-1+cuda10.2
-
x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
-
2.1 CPU 版的 PaddlePaddle¶
python3 -m pip install paddlepaddle==2.4.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
2.2 GPU 版的 PaddlePaddle¶
2.2.1 CUDA10.2 的 PaddlePaddle
python3 -m pip install paddlepaddle-gpu==2.4.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
2.2.2 CUDA11.2 的 PaddlePaddle
python3 -m pip install paddlepaddle-gpu==2.4.2.post112 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
2.2.3 CUDA11.6 的 PaddlePaddle
python3 -m pip install paddlepaddle-gpu==2.4.2.post116 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
2.2.4 CUDA11.7 的 PaddlePaddle
python3 -m pip install paddlepaddle-gpu==2.4.2.post117 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
注:
-
如果你使用的是安培架构的 GPU,推荐使用 CUDA11 以上。如果你使用的是非安培架构的 GPU,推荐使用 CUDA10.2,性能更优。
-
飞桨对于主流各 python 版本均提供了对应的安装包,而您环境中可能有多个 Python,请确认你想使用的 python 版本并下载对应的 paddlepaddle 安装包。例如您想使用 python3.7 的环境,则安装命令为 python3.7 -m pip install paddlepaddle。
-
如果您需要使用清华源,可以通过以下命令
python3 -m pip install paddlepaddle-gpu==[版本号] -i https://pypi.tuna.tsinghua.edu.cn/simple
-
上述命令默认安装avx的包。如果你的机器不支持avx,需要安装noavx的 Paddle 包,判断你的机器是否支持avx,可以输入以下命令,如果输出中包含avx,则表示机器支持avx
cat /proc/cpuinfo | grep -i avx
首先使用如下命令将 wheel 包下载到本地:
-
cpu、mkl 版本 noavx 机器安装:
python3 -m pip download paddlepaddle==2.4.2 -f https://www.paddlepaddle.org.cn/whl/linux/mkl
-
cpu、openblas 版本 noavx 机器安装:
python3 -m pip download paddlepaddle==2.4.2 -f https://www.paddlepaddle.org.cn/whl/linux
-
gpu 版本 cuda10.2 noavx 机器安装:
python3 -m pip download paddlepaddle-gpu==2.4.2 -f https://www.paddlepaddle.org.cn/whl/
再使用python3 -m pip install [name].whl本地安装([name]为 wheel 包名称)。
-
-
linux/mkl/noavx/stable.html --no-index --no-deps
-
/openblas/noavx/stable.html --no-index --no-deps
-
/noavx/stable.html --no-index --no-deps
-
如果你想安装avx、openblas的 Paddle 包,可以通过以下命令将 wheel 包下载到本地,再使用python3 -m pip install [name].whl本地安装([name]为 wheel 包名称):
python3 -m pip download paddlepaddle==2.4.2 -f https://www.paddlepaddle.org.cn/whl/linux/
-
openblas/avx/stable.html --no-index --no-deps