溫馨提示×

如何在Ubuntu上編譯PyTorch

小樊
44
2025-07-20 00:39:05
欄目: 智能運維

在Ubuntu上編譯PyTorch可以從源代碼構建,以便獲得最佳的性能和定制選項。以下是在Ubuntu上編譯PyTorch的詳細步驟:

前提條件

  1. 安裝依賴項

    • 打開終端并運行以下命令來更新包列表并安裝必要的依賴項:
      sudo apt update
      sudo apt install -y build-essential cmake git wget unzip yasm pkg-config libopenblas-dev liblapack-dev libjpeg-dev libpng-dev
      
  2. 安裝Python和虛擬環境

    • 安裝Python 3和pip:
      sudo apt install python3 python3-pip
      
    • 創建一個虛擬環境(可選但推薦):
      python3 -m venv pytorch-env
      source pytorch-env/bin/activate
      
  3. 安裝CUDA和cuDNN(如果需要GPU支持):

編譯PyTorch

  1. 克隆PyTorch倉庫

    git clone --recursive https://github.com/pytorch/pytorch
    cd pytorch
    
  2. 設置環境變量(如果使用GPU):

    • 設置CUDA和cuDNN的路徑:
      export CUDA_HOME=/usr/local/cuda
      export CUDNN_INCLUDE_DIR=/usr/local/cuda/include
      export CUDNN_LIB_DIR=/usr/local/cuda/lib64
      
  3. 安裝Python依賴項

    pip install -r requirements.txt
    
  4. 配置CMake

    • 創建一個構建目錄并進入該目錄:
      mkdir build
      cd build
      
    • 運行CMake配置腳本:
      cmake .. -DCMAKE_BUILD_TYPE=Release \
            -DPYTHON_EXECUTABLE=$(which python3) \
            -DPYTHON_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
            -DPYTHON_LIBRARY=$(python3 -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR'))")/libpython3.x.so \
            -DUSE_CUDA=ON \
            -DCUDA_ARCH_NAME=Your_GPU_Architecture \
            -DCUDA_HOME=$CUDA_HOME \
            -DCUDNN_INCLUDE_DIR=$CUDNN_INCLUDE_DIR \
            -DCUDNN_LIB_DIR=$CUDNN_LIB_DIR
      
    • 替換Your_GPU_Architecture為你的GPU架構(例如7.5對應V100)。
  5. 編譯PyTorch

    • 使用make命令進行編譯。這可能需要一些時間,具體取決于你的硬件性能:
      make -j$(nproc)
      
  6. 安裝PyTorch

    • 編譯完成后,運行以下命令來安裝PyTorch:
      make install
      

驗證安裝

  1. 驗證安裝
    • 在Python解釋器中導入PyTorch并檢查版本:
      import torch
      print(torch.__version__)
      

通過以上步驟,你應該能夠在Ubuntu上成功編譯并安裝PyTorch。如果在編譯過程中遇到任何問題,請參考PyTorch的官方文檔或GitHub倉庫中的問題討論。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女