温馨提示×

Ubuntu上如何编译安装PyTorch

小樊
47
2025-09-23 11:46:09
栏目: 智能运维

在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环境的冲突,numpymkl等是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_CUDAUSE_CUDNN设置为1
  • 编译时间:首次编译可能需要30分钟至数小时,取决于CPU核心数和内存容量(建议使用多核编译,如make -j$(nproc))。
  • 版本兼容性:PyTorch版本需与CUDA、cuDNN版本兼容,建议参考PyTorch官方文档确认版本匹配关系。

0