目录

在 Windows 上构建

要在 Windows 上构建 TorchAudio,我们需要启用 C++ 编译器并安装构建工具和运行时依赖项。

我们使用 Microsoft Visual C++ 来编译 C++,使用 Conda 来管理其他生成工具和运行时依赖项。

1. 安装构建工具

MSVC 公司

请按照 https://visualstudio.microsoft.com/downloads/ 中的说明进行操作,并确保安装C++开发工具。

注意

官方二进制发行版使用 MSVC 2019 编译。 以下部分使用 MSVC 2019 Community Edition 中的路径。

康达

请按照 https://docs.conda.io/en/latest/miniconda.html 中的说明进行操作。

2. 启动开发环境

在下文中,我们需要使用 C++ 编译器 () 和 Conda 包管理器 ()。 我们还使用 Bash 以获得与 Linux/macOS 类似的体验。clconda

为此,需要执行以下三个步骤。

  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 工具集进行编译。 要启用该工具集,可以使用 or file,它 位于 Visual Studio 的安装文件夹下的 。 有关更多信息,请访问 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-architecturevcvarsall.batvcvars64.batVC\Auxiliary\Build\

    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 类似的 UX,您可以启动 Bash。但是,请注意,在 Bash 环境中,文件路径与原生 Windows 样式不同,并且 module 不起作用。torchaudio.datasets

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

3. 安装 PyTorch

请参阅 https://pytorch.org/get-started/locally/ 了解安装 PyTorch 的最新方法。

以下命令安装 PyTorch 的 nightly 构建版本。

# 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 工具包。

4. [可选] cuDNN

如果您打算构建 CUDA 相关功能,请安装 cuDNN。

https://developer.nvidia.com/cudnn 下载 CuDNN,并在 与 CUDA 工具包相同的目录。

使用 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 仅支持就地构建。 要使用 ,请使用 option。pip--no-use-pep517

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

[可选]使用自定义 FFmpeg 构建 TorchAudio

默认情况下,torchaudio 会尝试构建支持多个 FFmpeg 版本的 FFmpeg 扩展。此过程使用为特定 CPU 架构编译的预构建 FFmpeg 库,例如 .x86_64

如果您的 CPU 不同,则构建过程可能会失败。要解决此问题,可以禁用 FFmpeg 集成(通过设置环境变量)或切换到单个版本的 FFmpeg 扩展。USE_FFMPEG=0

要构建单个版本的 FFmpeg 扩展,FFmpeg 二进制文件必须由用户提供,并在构建环境中可用。为此,请安装 FFmpeg 并设置环境变量以指定 FFmpeg 的位置。FFMPEG_ROOT

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 的方式构建 FFmpeg,我们需要构建原生的二进制文件。为此,我们需要 FFmpeg 构建过程所需的工具,例如 和 ,这些工具在环境中工作。为此,我们使用 MSYS2。MINGW64pkg-configmakeMINGW64

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 环境中添加 Conda 初始化脚本。(即 )相反,请将其添加到~/.bashrcC:\msys2\home\USER\.bashrcC:\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. 验证构建

检查生成的 FFmpeg 二进制文件是否可以从 Conda 环境访问

现在启动新的命令提示符并启用 TorchAudio 开发环境。确保您可以运行上一步中生成的命令。ffmpeg.exe

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并解答您的问题

查看资源