Repolode
NVIDIA

NVIDIA/apex

NVIDIA 维护的 PyTorch 扩展,提供混合精度与分布式训练工具及可选的融合 CUDA/C++ 内核。

Star
9,001
Fork
1,532
未关闭 Issue
777
最近提交
5天前

这是什么?

Apex 是 NVIDIA 维护的一组 PyTorch 扩展工具,用于简化混合精度训练和分布式训练。它的目标是在相关功能合并进 PyTorch 上游之前,尽快向用户提供最新的训练工具。

项目包含 Adam、层归一化、softmax 等常见操作的融合内核,并在 apex.contrib 下提供稀疏化、transducer loss、bottleneck 模块以及分布式优化器等实验性组件。大部分内核以可选的 C++/CUDA 扩展形式构建,安装时通过环境变量按需启用。

项目也支持仅 Python 的安装方式,但会缺少融合内核,DistributedDataParallel、amp 和 SyncBatchNorm 的运行速度可能较慢。NVIDIA 在 NGC 提供的 PyTorch 容器已预装全部扩展。

核心功能

  • 01为 PyTorch 提供混合精度训练工具(apex.amp)。
  • 02提供分布式训练辅助功能,包括 DistributedDataParallel 和 SyncBatchNorm。
  • 03以 CUDA 扩展形式实现的融合优化器与层归一化内核。
  • 04contrib 模块可在安装时按需单独启用。
  • 05支持仅 Python 的安装方式,适用于没有 CUDA 工具链的环境。

适用场景

  • 在 NVIDIA GPU 上使用混合精度加速大模型训练。
  • 借助融合的分布式工具运行多卡或多节点 PyTorch 训练。
  • 在自定义训练代码中试用融合优化器或归一化层。

快速上手

  1. 1

    克隆代码仓库

    git clone https://github.com/NVIDIA/apex
  2. 2

    进入项目目录

    cd apex
  3. 3

    使用核心 C++ 和 CUDA 扩展进行构建和安装

    APEX_CPP_EXT=1 APEX_CUDA_EXT=1 pip install -v --no-build-isolation .

使用前须知

  • 构建 CUDA 和 C++ 扩展需要兼容的 PyTorch 与 CUDA 环境。
  • 部分 apex.contrib 模块仅兼容 PyTorch 每日构建版,不支持稳定发行版。
  • Windows 安装仍处于实验阶段。

收录于专题

标签

常见问题

apex 是什么?
NVIDIA 维护的 PyTorch 扩展,提供混合精度与分布式训练工具及可选的融合 CUDA/C++ 内核。 Apex 是 NVIDIA 维护的一组 PyTorch 扩展工具,用于简化混合精度训练和分布式训练。它的目标是在相关功能合并进 PyTorch 上游之前,尽快向用户提供最新的训练工具。
apex 可以免费使用吗?用的什么许可证?
apex 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
apex 还在维护吗?
活跃维护中。apex 最近一次提交是在 2026年11月2日。
apex 适合用来做什么?
在 NVIDIA GPU 上使用混合精度加速大模型训练。 借助融合的分布式工具运行多卡或多节点 PyTorch 训练。 在自定义训练代码中试用融合优化器或归一化层。
apex 怎么安装和运行?
克隆代码仓库: git clone https://github.com/NVIDIA/apex 进入项目目录: cd apex 使用核心 C++ 和 CUDA 扩展进行构建和安装: APEX_CPP_EXT=1 APEX_CUDA_EXT=1 pip install -v --no-build-isolation .
在哪里获取 apex?
源代码和安装说明在 GitHub 上:https://github.com/NVIDIA/apex

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目