在Ubuntu上编译安装PyTorch的详细步骤
1. 安装系统依赖
编译PyTorch需要基础的编译工具和库支持,首先更新系统包列表并安装必要依赖:
sudo apt update
sudo apt install -y build-essential cmake git wget unzip yasm pkg-config \
libopenblas-dev liblapack-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libgif-dev
这些依赖涵盖了编译工具(如gcc)、构建系统(如cmake)和PyTorch所需的线性代数、图像处理库。
2. 配置Python环境
PyTorch需要Python 3.6及以上版本,建议使用虚拟环境隔离依赖:
# 安装Python3及pip
sudo apt install -y python3 python3-pip python3-dev
# 创建并激活虚拟环境
python3 -m venv pytorch_env
source pytorch_env/bin/activate
# 升级pip并安装Python依赖
pip install --upgrade pip
pip install numpy pyyaml mkl mkl-include setuptools cmake cffi typing_extensions future six requests dataclasses
虚拟环境可避免系统Python环境的冲突,numpy、mkl等是PyTorch编译的核心依赖。
3. 克隆PyTorch源代码
从GitHub官方仓库克隆PyTorch源码,并同步子模块(PyTorch的部分功能通过子模块实现):
git clone --recursive https://github.com/pytorch/pytorch.git
cd pytorch
# 若已克隆但未同步子模块,可执行:
# git submodule sync
# git submodule update --init --recursive
子模块包含CUDA内核、分布式训练等关键组件,务必确保同步完成。
4. 设置编译环境变量
根据需求配置环境变量,若使用GPU需指定CUDA路径(需提前安装CUDA Toolkit):
# 设置Python路径(指向当前虚拟环境)
export PYTHONPATH=$(pwd)
# 若使用CUDA,添加CUDA到PATH(根据实际安装路径调整)
export PATH=/usr/local/cuda/bin:$PATH
# 可选:设置其他编译选项(如启用MKL-DNN、NNPACK)
export USE_CUDA=1 # 启用CUDA(1=启用,0=禁用)
export USE_CUDNN=1 # 启用cuDNN
export USE_MKLDNN=1 # 启用MKL-DNN加速
export USE_NNPACK=1 # 启用NNPACK加速
export BUILD_SHARED_LIBS=1 # 构建共享库(便于动态链接)
环境变量决定了编译后的PyTorch是否支持GPU加速,需根据硬件配置调整。
5. 编译并安装PyTorch
进入PyTorch源码目录,执行编译和安装命令:
# 编译PyTorch(此步骤耗时较长,取决于硬件性能)
python setup.py build
# 安装到当前Python环境
python setup.py install
编译过程会生成动态库和Python模块,安装后将PyTorch集成到当前虚拟环境中。
6. 验证安装
通过Python交互式命令行验证PyTorch是否安装成功及GPU支持情况:
python -c "import torch; print('PyTorch版本:', torch.__version__); print('CUDA可用:', torch.cuda.is_available())"
若输出PyTorch版本号且torch.cuda.is_available()返回True(仅GPU版本),则说明编译安装成功。
注意事项
- GPU支持:若需使用GPU加速,需提前安装与CUDA版本匹配的
cudnn库(可从NVIDIA官网下载),并确保USE_CUDA和USE_CUDNN设置为1。 - 编译时间:首次编译可能需要30分钟至数小时,取决于CPU核心数和内存容量(建议使用多核编译,如
make -j$(nproc))。 - 版本兼容性:PyTorch版本需与CUDA、cuDNN版本兼容,建议参考PyTorch官方文档确认版本匹配关系。
以上就是关于“Ubuntu上如何编译安装PyTorch”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm