捷徑

在 Windows 上建置

為了在 Windows 上建置 TorchAudio,我們需要啟用 C++ 編譯器並安裝建置工具和執行階段相依性。

我們使用 Microsoft Visual C++ 來編譯 C++,並使用 Conda 來管理其他建置工具和執行階段相依性。

1. 安裝建置工具

MSVC

請依照 https://visualstudio.microsoft.com/downloads/ 上的指示,並確定已安裝 C++ 開發工具。

注意

官方二進位發行版使用 MSVC 2019 編譯。以下章節使用 MSVC 2019 社群版的路徑。

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

請參考 https://pytorch.dev.org.tw/get-started/locally/ 以獲取最新的 PyTorch 安裝方式。

以下命令安裝 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 的版本時,也會安裝 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 僅支援就地建置。要使用 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 建置過程所需的工具,例如 pkg-configmake,這些工具在 MINGW64 環境中運作。為此,我們使用 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 env 不相容,因此請勿在 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

檢查 FFmpeg 原始碼。

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

建置

./configure --toolchain=msvc
make -j

如果建置成功,則應在相同目錄中找到 ffmpeg.exe。 確保您可以執行它。

5. 驗證建置

檢查是否可以從 Conda env 存取產生的 FFmpeg 二進制檔案

現在啟動新的命令提示字元並啟用 TorchAudio 開發環境。確保您可以執行在上一步中產生的 ffmpeg.exe 命令。

文件

存取 PyTorch 的完整開發者文件

查看文件

教學課程

取得針對初學者和進階開發者的深入教學課程

查看教學課程

資源

尋找開發資源並取得您問題的解答

查看資源