dev.to #ai短讯
ROCm 10.1.0 发布:首次支持 WSL2 并新增三个库
AMD 发布 ROCm 10.1.0,核心亮点是首次在 TheRock 构建中引入 WSL2 技术预览支持,使 Windows 用户无需源码编译即可在 WSL2 环境下进行 GPU 计算。此外,版本新增了 hipThreads、libhipcxx 和 RPP 三个库,更新了 PyTorch 2.14.0 和 vLLM 0.29.0 兼容性,并提供了 ROCprofiler-SDK 的 kernel replay 功能,显著提升了开发者的调试与性能分析能力。
- 发生了什么:AMD发布了ROCm 10.1.0,其中包括WSL2支持的预览版、新增hipThreads、libhipcxx和RPP三个库,以及对PyTorch 2.14.0和vLLM 0.29.0的更新
- 为何重要:长期以来CUDA对ROCm的优势在于Windows支持,而此次TheRock构建首次纳入该支持,使得无需源码编译即可在WSL2上进行GPU计算成为可能
- 对开发者的影响:通过ROCprofiler-SDK的内核重放Beta版及按需工具配置功能,针对PyTorch和Triton工作负载的性能分析已接近生产级水平
- 值得关注的点:从ROCm 10.0.0到10.1.0仅历时40天,这一变更幅度表明六周的发布周期可能会改变ROCm的演进速度
WSL2以技术预览形式首次搭载
ROCm 10.1.0最引人注目的亮点是首次支持WSL2。
此前,要在Windows环境下使用ROCm的GPU计算功能,用户必须自行从源码构建面向WSL2的驱动程序接口库(librocdxg)。在10.1.0版本中,librocdxg被包含在TheRock(自ROCm 7.14起采用的构建与发布系统)的构建产物中,从而让用户能够无需额外操作即可在WSL2上运行ROCm工作负载。
由于ROCr运行时会自动检测是否存在/dev/dxg设备来判断WSL2环境并加载librocdxg,因此通常无需进行手动配置。
目前仍处于技术预览阶段,存在若干限制。支持范围仅限于Ubuntu的.deb包和Python Wheel包,不包含RPM包。性能分析、调试以及依赖KFD的工具组在WSL2上尚无法运行。
同时,AMD SMI(GPU监控与管理工具)也作为技术预览功能新增了WSL2后端。现在可以在WSL2环境中获取温度、功耗、内存使用量和时钟频率等遥测数据。虽然无法执行管理/配置操作或获取每个进程的GPU利用率,但已实现在WSL2上监控GPU状态的功能。
长期以来被视为ROCm相对于CUDA弱点的“无法在Windows上使用”问题,如今终于迈出了实质性的一步。尽管带有“技术预览”的注脚,但仅凭免除源码编译这一步骤,入门门槛就已大幅降低。
三款新库加入ROCm Core SDK
在10.1.0版本中,有三款库被新增至ROCm Core SDK。
hipThreads(版本1.0.0)是一款允许在GPU内核中使用类似C++ std::thread API的库。它提供了hip::wthread、hip::mutex、hip::lock_guard、hip::condition_variable等原语,为在不进行完整重写的情况下将现有的CPU线程代码在GPU上运行铺平了道路。该库兼容Linux和Windows,可在Radeon和Ryzen GPU上使用。
libhipcxx(版本3.0.2)旨在使C++标准库能够在HIP的主机和设备代码中通用。由于可以直接在HIP内核中调用原子操作、类型特征和容器等标准库功能,减少了自行实现设备端代码的工作量。该库支持Instinct、Radeon和Ryzen的所有平台。
RPP(ROCm Performance Primitives,版本3.2.0)是一款计算机视觉库,用于在GPU上加速AI训练和推理流水线中的2D/3D图像扩展处理。它可在Linux上的Instinct和Radeon GPU上使用。
这些新增内容表明,ROCm生态系统正朝着降低“使用GPU需全部重写”这一门槛的方向发展。
AI框架更新及TensorFlow 2.19.1支持终止
框架支持范围全面升级。PyTorch 2.14.0、JAX 0.11.1、vLLM 0.29.0、SGLang 0.5.18和MIGraphX 2.18均获得支持,分别取代了之前的版本(如PyTorch 2.11.0、vLLM 0.27.0等)。
另一方面,TensorFlow 2.19.1的支持已结束。在10.0.0版本中包含的TF 2.19.1已被移出支持列表。不过,AI生态系统支持表中仍列出了TensorFlow 2.21/2.20(仅限gfx950/gfx942等特定GPU),这意味着TensorFlow本身并未完全停止支持。
ROCm 10.1.0 AI框架更新
| 框架 | 10.0.0 | 10.1.0 |
|---|---|---|
| PyTorch | 2.13.0 | 2.14.0 |
| JAX | 0.11.0 | 0.11.1 |
| vLLM | 0.27.0 | 0.29.0 |
| SGLang | 0.5.15 | 0.5.18 |
| MIGraphX | 2.17 | 2.18 |
| TensorFlow | 2.19.1 | 终止 |
※TensorFlow 2.21/2.20在部分GPU上继续支持。10.0.0列为前版本的最新支持版。
PyTorch 2.14.0在ROCm 10.1.0中也包含了Windows支持,并兼容Python 3.14。vLLM 0.29.0可在广泛的GPU设备上使用,包括Instinct、Radeon和Ryzen APU,这扩大了在生产环境中选择ROCm作为推理服务器时的选项空间。
性能分析器的实用性大幅提升
性能分析工具集进行了虽不显眼但至关重要的改进。
ROCprofiler-SDK引入了内核重放(kernel replay)Beta功能。受GPU硬件限制,单次内核执行所能收集的性能计数器数量有限。以往需要针对每个计数器组重启整个应用程序(即“应用重放”),导致启动成本高昂。内核重放按内核单位重新执行,并在重新执行前捕获设备内存快照以在各路径间恢复,从而使各组观测到相同的输入。
据信息灯塔确认,ROCprofiler-SDK的发行说明中还新增了按需工具配置和初始化功能。现在可以在应用程序运行期间的任意时刻启用或禁用性能分析器工具。主要受益者是那些内置于框架内的性能分析器,例如PyTorch的Kineto后端或Triton的Proton性能分析器,它们通常在解释器或运行时初始化之后启动性能分析器。
与PyTorch共存的问题也得到了修复。以往,当PyTorch捆绑的ROCprofiler-SDK与rocprofv3同时初始化时,会因代码对象追踪冲突导致rocprofv3在生成输出时崩溃,致使PyTorch或Triton工作负载的性能分析实际上不可行。在10.1.0版本中,此问题已解决。
信号处理机制也经过了重新审视。传统的ROCprofiler-SDK会在信号处理器内执行涉及内存分配、锁定和I/O的最终化(finalization)处理,这导致了死锁、输出中途截断以及进程无法强制终止三大障碍。在10.1.0版本中,最终化处理被移至专用的工作线程,从而解决了这些问题。
破坏性变更:ROCm SMI从构建中移除
作为10.1.0唯一的破坏性变更,旧的ROCm SMI(rocm-smi-lib)已从标准构建中移除。处于弃用状态的ROCm SMI在10.1.0版本的TheRock构建中将不再进行构建或安装。必须迁移至继任者AMD SMI库及其CLI(amd-smi)。
AMD SMI在本次发布中也作为PyPI Wheel公开,可通过pip install amd-smi进行安装。无需安装完整的ROCm即可引入GPU监控工具,这使得在容器环境或CI/CD管道中的使用更加便捷。
其他主要变更
在GPU支持方面,新增了AMD Radeon AI PRO R9600。在操作系统支持方面,新增了Ubuntu 26.04.1(内核7.0 GA)和Ubuntu 24.04.5,分别取代了26.04和24.04.4。
虚拟化支持也有所扩展,MI355X/MI350X的KVM SR-IOV新增了Ubuntu 26.04主机-客户机配置,MI350P也增加了ESXi SR-IOV支持。
hipSPARSEライブラリにはバッチSDDMM(サンプル付き密行列-密行列積)とSpGEAM(疎行列-疎行列加算)のジェネリックAPIが追加され、スパース演算の守備範囲が広がっている。hipFFTにはロード/ストアコールバックをJIT(実行時コンパイル)でFFTカーネルに組み込む機能が入り、従来の関数ポインタ方式では不可能だったカーネルとコールバックの統合最適化が可能になった。
ROCm 10.0.0が「10年の節目」として大きな方向性を示したのに対し、10.1.0はその方向に沿って実際の手を動かしたリリースに見える。WSL2サポート、新ライブラリ、プロファイラの実用性改善。6週間でこの幅の変更を出してきたことは、リリースサイクルの短縮が機能していることの一つの証左になる。ROCm 10.2.0がどの方向をさらに掘るのかは、まだ分からない。
この記事は 情報の灯台 で最初に公開されました。
译文已达到本站中文翻译的字数上限,剩余内容请查看原文。