快捷方式

在 Windows 上構建

要在 Windows 上構建 TorchAudio,我們需要啟用 C++ 編譯器並安裝構建工具和執行時依賴項。

我們使用 Microsoft Visual C++ 進行 C++ 編譯,使用 Conda 管理其他構建工具和執行時依賴項。

1. 安裝構建工具

MSVC

請按照 https://visualstudio.microsoft.com/downloads/ 上的說明進行操作,並確保安裝 C++ 開發工具。

注意

官方二進位制分發版使用 MSVC 2019 編譯。以下部分使用了 MSVC 2019 Community Edition 的路徑。

Conda

請按照 https://docs.conda.io/en/latest/miniconda.html 上的說明進行操作。

2. 啟動開發環境

接下來,我們需要使用 C++ 編譯器 (cl`) 和 Conda 包管理器 (conda`). 為了獲得與 Linux/macOS 類似的使用體驗,我們還使用 Bash。

為此,需要執行以下三個步驟。

  1. 開啟命令提示符

  2. 啟用開發者環境

  3. [可選] 啟動 bash


已知以下組合可行。

  1. 啟動 Anaconda3 命令提示符。


    https://download.pytorch.org/torchaudio/doc-assets/windows-conda.png

    請確保 conda 命令可以識別。


    https://download.pytorch.org/torchaudio/doc-assets/windows-conda2.png

  2. 執行以下命令啟用開發工具。

    我們需要使用 MSVC x64 工具集進行編譯。要啟用該工具集,可以使用 vcvarsall.batvcvars64.bat 檔案,這些檔案位於 Visual Studio 安裝資料夾的 VC\Auxiliary\Build\` 下。更多資訊請參見 https://docs.microsoft.com/en-us/cpp/build/how-to-enable-a-64-bit-visual-cpp-toolset-on-the-command-line?view=msvc-160#use-vcvarsallbat-to-set-a-64-bit-hosted-build-architecture

    call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
    

    請確保 cl 命令可以識別。

    https://download.pytorch.org/torchaudio/doc-assets/windows-msvc.png
  3. [可選] 使用以下命令啟動 bash。

    如果您想要與 Linux/macOS 相似的使用者體驗,可以啟動 Bash。但請注意,在 Bash 環境中,檔案路徑與原生 Windows 風格不同,並且 torchaudio.datasets 模組無法工作。

    Miniconda3\Library\bin\bash.exe
    
    https://download.pytorch.org/torchaudio/doc-assets/windows-bash.png

3. 安裝 PyTorch

有關安裝 PyTorch 的最新方法,請參考 https://pytorch.com.tw/get-started/locally/

以下命令安裝 PyTorch 的 nightly build 版本。

# CPU-only
conda install pytorch cpuonly -c pytorch-nightly

# With CUDA support
conda install pytorch pytorch-cuda=11.7 -c pytorch-nightly -c nvidia

安裝 CUDA-enabled 版本時,也會安裝 CUDA toolkit。

4. [可選] cuDNN

如果您打算構建與 CUDA 相關的功能,請安裝 cuDNN。

https://developer.nvidia.com/cudnn 下載 CuDNN,並將檔案解壓到與 CUDA toolkit 相同的目錄中。

使用 conda 時,目錄是 ${CONDA_PREFIX}/bin`、${CONDA_PREFIX}/include`、${CONDA_PREFIX}/Lib/x64

5. 安裝外部依賴項

conda install cmake ninja

6. 構建 TorchAudio

現在我們已經準備就緒,可以構建 TorchAudio 了。

git clone https://github.com/pytorch/audio
cd audio
# In Command Prompt
python setup.py develop
# In Bash
python setup.py develop

注意

由於構建過程的複雜性,TorchAudio 僅支援原地構建 (in-place build)。要使用 pip`,請使用 --no-use-pep517 選項。

pip install -v -e . --no-use-pep517

[可選] 使用自定義 FFmpeg 構建 TorchAudio

預設情況下,torchaudio 嘗試構建支援多種 FFmpeg 版本的 FFmpeg 擴充套件。此過程使用為特定 CPU 架構(如 x86_64`) 編譯的預構建 FFmpeg 庫。

如果您的 CPU 不同,則構建過程可能會失敗。作為解決方法,可以停用 FFmpeg 整合(透過設定環境變數 USE_FFMPEG=0`)或切換到單版本 FFmpeg 擴充套件。

要構建單版本 FFmpeg 擴充套件,使用者必須提供 FFmpeg 二進位制檔案並在構建環境中可用。為此,請安裝 FFmpeg 並設定 FFMPEG_ROOT 環境變數來指定 FFmpeg 的位置。

conda install -c conda-forge ffmpeg
FFMPEG_ROOT=${CONDA_PREFIX}/Library python setup.py develop

[可選] 從原始碼構建 FFmpeg

以下部分說明了從原始碼構建 FFmpeg 庫的一種方法。

Conda-forge 的 FFmpeg 包支援主要的編解碼器和 GPU 解碼器,因此普通使用者和開發者無需從原始碼構建 FFmpeg。

如果您不使用 Conda,則可以查詢預構建的二進位制分發版或自行構建 FFmpeg。

此外,如果 torchaudio 開發者需要更新和自定義 FFmpeg 構建的 CI,本節可能會有所幫助。

1. 安裝 MSYS2

為了以一種可以在 TorchAudio 開發環境中使用的方構建 FFmpeg,我們需要構建 MINGW64` 原生的二進位制檔案。為此,我們需要 FFmpeg 構建過程所需的工具,例如在 MINGW64` 環境中工作的 pkg-configmake`。為此,我們使用 MSYS2。

FFmpeg 的官方文件提到了這一點 https://trac.ffmpeg.org/wiki/CompilationGuide/MinGW

請按照 https://www.msys2.org/ 上的說明安裝 MSYS2。

注意

在 CI 環境中,通常可以使用 Chocolatery 來安裝 MSYS2。

2. 啟動 MSYS2

使用快捷方式啟動 MSYS2 (MINGW64)。

https://download.pytorch.org/torchaudio/doc-assets/windows-msys2.png

注意

MSYS2 中的 Bash 環境與 Conda 環境相容性不佳,因此請勿在 MSYS2 環境的 ~/.bashrc 中新增 Conda 初始化指令碼。(即 C:\msys2\home\USER\.bashrc`) 相反,將其新增到 C:\Users\USER\.bashrc` 中。)

3. 安裝構建工具

$ pacman -S mingw-w64-x86_64-make
$ pacman -S mingw-w64-x86_64-yasm

安裝後,您應該擁有類似於以下的軟體包;

$ pacman -Qe
base 2020.12-1
base-devel 2022.01-2
filesystem 2023.01-2
mingw-w64-x86_64-make 4.3-1
mingw-w64-x86_64-pkgconf 1.8.0-2
mingw-w64-x86_64-yasm 1.3.0-4
msys2-runtime 3.4.3-5

4. 構建 FFmpeg

git clone https://github.com/ffmpeg/ffmpeg
cd ffmpeg
git checkout <VERSION>

檢出 FFmpeg 原始碼。

./configure --toolchain=msvc
make -j

構建

如果構建成功,應該在同一目錄中找到 ffmpeg.exe。請確保您可以執行它。

5. 驗證構建

檢查生成的 FFmpeg 二進位制檔案可以從 Conda 環境訪問


© 版權所有 2024,Torchaudio 貢獻者。

使用 Sphinx 構建,使用 Read the Docs 提供的主題

文件

訪問 PyTorch 開發者綜合文件

檢視文件

教程

獲取針對初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源