跳转到主要内容
博客

PyTorch 基金会和 ROCm™ 对 PyTorch 的支持,实现人工智能大众化

作者: 2023年2月14日2024年11月14日暂无评论
AMD Founding Member

去年,Meta 宣布 PyTorch 加入 Linux 基金会,成为发展机器学习项目和社区的“中立之家”,而 AMD 作为创始成员和理事会成员之一。

PyTorch Foundation 的使命是通过与 AMD 开放软件生态系统的核心原则相符的开源原则,普及其软件生态系统,从而推动人工智能的普及。AMD 致力于通过支持最新一代的硬件、工具、库和其他组件来促进创新,以简化和加速人工智能在广泛科学发现中的应用。

AMD 与主要的 PyTorch 代码库开发者(包括 Meta AI 的开发者)一起,为 ROCm™ 开放软件生态系统提供了一系列更新,为 AMD Instinct™ 加速器以及许多 Radeon™ GPU 带来了稳定支持。现在,PyTorch 开发者能够利用 AMD GPU 加速器和 ROCm 构建他们下一个伟大的人工智能解决方案。PyTorch 社区在识别差距、优先安排关键更新、提供性能优化反馈以及支持我们从“Beta”到“稳定”的旅程方面提供了巨大的帮助,我们深切感谢 AMD 和 PyTorch 两个团队之间的紧密合作。ROCm 支持从“Beta”到“稳定”的转变发生在 PyTorch 1.12 版本(2022 年 6 月),带来了在原生环境中轻松运行 PyTorch 的额外支持,而无需配置自定义 Docker。这标志着对 PyTorch 使用 AMD Instinct 和 ROCm 的支持质量和性能的信心。这些合作努力的成果在 Microsoft SuperBench 等关键行业基准测试中得到了体现,如下面的图 1 所示。

“我们很高兴看到 AMD 开发者在 PyTorch 中贡献和扩展功能,从而使 AI 模型以更高性能、更高效和更可扩展的方式运行,产生了显著影响。其中一个很好的例子是关于框架和未来硬件系统之间统一内存方法的思想领导力,我们期待看到该功能的进展。”
– Soumith Chintala,PyTorch 首席维护者和 Meta AI 工程总监

AMD CDNA™ 架构以及 ROCm 和 PyTorch 的持续改进表明,从 AMD Instinct MI100 到最新一代 AMD Instinct MI200 系列 GPU,单 GPU 模型吞吐量从 ROCm 4.2 增加到 ROCm 5.3,从 PyTorch 1.7 增加到 PyTorch 1.12。

Graph 1: ML model performance over generation using Microsoft Superbench Suite

图 1:使用 Microsoft Superbench 套件的 ML 模型性能随代际变化1, 2, 3

以下是 PyTorch 1.12 版本发布以来 ROCm 支持的一些主要更新

PyTorch 上 ROCm 的完整持续集成 (CI)

随着 PyTorch 的 ROCm 支持从“Beta”走向“稳定”,所有功能和特性提交现在都通过完整的持续集成 (CI) 过程进行验证。CI 过程有助于确保在预期的 Docker 和 PIP wheel 发布之前进行适当的构建和测试过程,并且稳定提交即将到来。

支持 Kineto Profiler

ROCm 中新增的 Kineto Profiler 支持现在可以帮助开发人员和用户通过有效的诊断和分析工具了解性能瓶颈。该工具还提供改进已知问题的建议,并通过 TensorBoard UI 进行可视化。

新增主要 PyTorch 库支持

自 ROCm 5.1 起,PyTorch 生态系统库如 TorchText(文本分类)、TorchRec(推荐系统库 – RecSys)、TorchVision(计算机视觉)、TorchAudio(音频和信号处理)已得到全面支持,并已与 PyTorch 1.12 上游集成。

ROCm 软件堆栈提供的关键库,包括 MIOpen(卷积模型)、RCCL(ROCm 集合通信)和 ONNX 运行时集成的改进,包括对基于 Navi 21 的 Radeon™ PRO 数据中心显卡的支持。

AITemplate 推理引擎

MetaAI 最近发布了一篇博客,宣布发布其开源 AITemplate(链接),用于支持使用 AMD ROCm 堆栈的 AMD Instinct GPU 加速器的统一推理系统。这个基于 Python 的框架可以通过增加 AMD 矩阵核心在转换器块中的利用率来显著提高性能。这是通过 AMD Composable Kernel (CK) 库实现的,该库通过 HIP 和 C++ 为包括 GPU 和 CPU 在内的多种架构上的 ML AI 工作负载提供性能关键的内核。

此外,AITemplate 还为 BERT、ResNET、Vision Transformer、Stable Diffusion 等广泛使用的 AI 模型提供开箱即用的支持,从而通过这些预训练模型简化了部署过程。

未来的 ROCm 版本将带来什么?

CPU + GPU 统一内存模型

随着系统架构的发展以应对大型问题和数据集的复杂性,内存管理成为一个关键的性能瓶颈,需要通过硬件和软件层面的创新来解决。AMD 凭借其有效的数据中心解决方案独特定位来解决这个问题,该解决方案将 AMD EPYC™ CPU 核心与其 AMD Instinct GPU 计算单元集成在一个真正统一的数据中心 APU(加速处理单元)外形中,计划于 2023 年下半年推出。

利用统一 CPU + GPU 内存的软件工作已经与 PyTorch 团队合作启动,以启用快速、低延迟、同步的内存模型,该模型不仅使 AMD 而且还使其他 AI 加速器能够解决当今复杂的内存管理问题。我们期待这项联合努力和公告很快发布。

鸣谢

本博客的内容重点介绍了 AMD 和 PyTorch 主要贡献者(包括 Meta,致力于许多核心功能,以及 Microsoft 启用 ONNX Runtime 支持)之间的联合工作。我们期待与 PyTorch Foundation 的其他创始成员合作,在下一步改进和推动 PyTorch 在整个行业中的普及方面取得进展。

警示性声明

本博客包含有关 Advanced Micro Devices, Inc. (AMD) 的前瞻性声明,例如 AMD 数据中心 APU 外形的可用性、时间安排和预期收益,这些声明是根据 1995 年《私人证券诉讼改革法案》的安全港条款作出的。前瞻性声明通常通过“将”、“可能”、“预期”、“相信”、“计划”、“打算”、“项目”以及其他含义相似的词语来识别。投资者应注意,本博客中的前瞻性声明基于当前的信念、假设和预期,仅代表本博客发布之日的情况,并涉及可能导致实际结果与当前预期存在重大差异的风险和不确定性。此类声明受某些已知和未知的风险和不确定性的影响,其中许多难以预测且通常超出 AMD 的控制范围,可能导致实际结果和其他未来事件与前瞻性信息和声明中表达或暗示或预测的内容存在重大差异。投资者应仔细审阅 AMD 提交给美国证券交易委员会的文件中包含的风险和不确定性,包括但不限于 AMD 最新提交的 10-K 和 10-Q 表格报告。除法律可能要求外,AMD 不承担且特此否认更新本博客中作出的前瞻性声明的任何义务。

尾注

  1. MI100D-01 SuperBench v0.5 模型训练结果基于 AMD 截至 2022 年 11 月 9 日的内部测试,测量在半精度下,使用配置了 1 块 AMD Instinct™ MI100(32GB HBM2e)300W GPU 的 2P AMD EPYC™ 7763 CPU 服务器的总训练吞吐量,SBIOS 2.2,Ubuntu® 20.04.5 LTS,主机 ROCm™ 5.2.0,访客 ROCm 4.2,PyTorch 1.7.0。服务器制造商的配置可能有所不同,从而产生不同的结果。性能可能因使用最新的驱动程序和优化等因素而异。
  2. MI200D-01 SuperBench v0.6 模型训练结果基于 AMD 截至 2022 年 11 月 9 日的内部测试,测量在半精度下,使用配置了 1 块 AMD Instinct™ MI210(64GB HBM2e)300W GPU 的 2P AMD EPYC™ 7763 CPU 服务器的总训练吞吐量,SBIOS 2.2,Ubuntu 20.04.5 LTS,主机 ROCm 5.3.0,访客 ROCm 5.3,PyTorch 1.12。服务器制造商的配置可能有所不同,从而产生不同的结果。性能可能因使用最新的驱动程序和优化等因素而异。
  3. MI200D-02:SuperBench v0.6 模型训练结果基于 AMD 截至 2022 年 11 月 9 日的内部测试,测量在半精度下,使用配置了 1 块 AMD Instinct™️ MI250(128GB HBM2e)560W GPU 的 2P AMD EPYC™️ 7763 CPU 服务器的总训练吞吐量,SBIOS M12,Ubuntu 20.04 LTS,主机 ROCm 5.3.0,访客 ROCm 5.3,PyTorch 1.12。服务器制造商的配置可能有所不同,从而产生不同的结果。性能可能因使用最新的驱动程序和优化等因素而异。