[控场AI]
· 6 分钟阅读· 3,478 字

PyTorch 原生跑在 AWS Trainium 上:零代码改动意味着什么

PyTorch 原生跑在 AWS Trainium 上:零代码改动意味着什么

AWS 宣称 PyTorch 可零代码改动原生运行于 Trainium,试图打破 CUDA 生态锁定。

AWS 工程师 Marcus Aduyogo 在 PyTorch 大会上宣布,PyTorch 现在可以零代码改动地原生运行在自研 AI 芯片 Trainium 上,口号是「If you know PyTorch, you know Trainium」。这意味着 eager mode、Torch.compile 和标准分布式 API 均可开箱即用,开发者无需学习新编程模型或插入硬件分支。技术底座是开源的原生后端 Torch Neuron,负责计算图编译与硬件调度。大会安排六场 session,覆盖训练、Hugging Face 集成、VLLM 推理、性能剖析与强化学习。若承诺成立,硬件选择逻辑将从「是否要重写代码」转向「成本与性能是否划算」,但第三方算子与 CUDA 依赖项目的迁移可行性仍需验证。

在 PyTorch 大会上,AWS 工程师 Marcus Aduyogo 抛出了一个对深度学习开发者颇具冲击力的说法:PyTorch 现在可以零代码改动地原生运行在 AWS Trainium 芯片上。他用了一句简洁的口号来概括这件事——If you know PyTorch, you know Trainium。(如果你懂 PyTorch,你就懂 Trainium。)

AWS Trainium 是专为下一代深度学习训练与推理设计的 AI 芯片

这不是一个简单的移植声明。对于长期被 CUDA 生态紧紧绑定的 PyTorch 开发者来说,它触及的是一个更根本的问题:AI 训练硬件的可替代性,是否终于开始变得现实了。

Trainium 想解决什么问题

AWS Trainium 是亚马逊自研的 AI 芯片,定位非常明确:面向下一代深度学习的 AI 训练与推理,而不是通用计算。

这一定位背后是云厂商共同的算力焦虑。GPU 供给长期紧张、成本高企,而绝大多数模型训练代码又深度依赖英伟达的软件栈。自研芯片如果只在纸面算力上有优势,却要求开发者重写训练脚本,那迁移成本足以劝退大部分团队。

所以 Trainium 真正的挑战从来不是硬件本身,而是软件生态能否让开发者「无痛切换」。

CUDA 是英伟达自 2006 年起构建的一套并行计算平台与编程模型,配合 cuDNN、NCCL、TensorRT 等库,形成了深度学习训练事实上的软件标准。绝大多数 PyTorch 的 GPU 加速路径、自定义算子、以及第三方库的底层实现,都默认建立在 CUDA 之上。这种软硬件的深度耦合构成了极高的迁移壁垒:即便其他硬件在纸面算力或单位成本上更有优势,团队也往往因为重写训练代码、重调性能、重建调试链路的高昂代价而不愿切换。云厂商自研 AI 芯片真正的难点,因此不在于芯片设计本身,而在于能否提供一套让现有 CUDA 生态代码低摩擦迁移的软件栈。

零代码改动:这句话的分量

Marcus 在演讲中反复强调的核心卖点,是「zero code changes」——零代码改动。

PyTorch 现在可以零代码改动地原生运行在 AWS Trainium 上

拆开来看,它意味着开发者熟悉的几样东西可以开箱即用:

  • Eager mode:PyTorch 最基础的即时执行模式,调试和原型开发主力
  • Torch.compile:PyTorch 2.x 的编译加速路径,用于提升训练性能
  • 标准分布式 API:多卡、多节点的并行训练接口

换句话说,开发者不需要学习一套新的编程模型,也不需要在代码里插入硬件相关的分支判断。已有的 PyTorch 代码理论上可以直接跑在 Trainium 上。

熟悉的 eager mode、Torch.compile 和标准分布式 API 在 Trainium 上开箱即用

这一点如果落到实处,意义要大于单纯的性能数字。生态锁定往往不是因为硬件不可替代,而是因为软件迁移太贵。降低迁移成本,才是打破锁定的第一步。

Torch.compile 是 PyTorch 2.0 引入的编译加速机制,它通过 TorchDynamo 捕获 Python 字节码生成计算图,再由后端编译器进行算子融合、内存规划等优化,在几乎不改动源码的情况下提升训练与推理性能。它的关键特征是分层设计:前端负责图捕获,后端负责编译,因此理论上可以对接不同硬件。对 Trainium 这类非英伟达芯片而言,能否成为 Torch.compile 的可用后端,直接决定了开发者能否无感地享受编译加速。Eager mode 则是不做图编译的即时执行模式,是调试和原型开发的基础,它能在新硬件上原生运行,意味着新后端的兼容门槛已经降到较低水平。

Torch Neuron:开源的原生后端

支撑这一切的技术底座,是 Torch Neuron——AWS 为 Trainium 构建的开源原生 PyTorch 后端。

它承担的角色是把 PyTorch 的计算图翻译、编译并调度到 Trainium 硬件上执行,同时对上层保持透明。Marcus 特别提到,大会期间会有专门的深度解析环节来讲 Torch Neuron 的工作机制。

选择开源是一件值得注意的事。硬件厂商的自研后端如果闭源,开发者很难排查问题、也难建立信任;开源则意味着社区可以检视实现、提交改进,也更符合 PyTorch 生态一贯的开放基调。

在 PyTorch 的分层架构中,后端(backend)承担的是把上层计算图翻译成特定硬件可执行指令的职责。不同厂商的加速器通常需要自己的后端实现,用来处理算子映射、内存管理、通信调度等底层细节。Torch Neuron 就是 AWS 面向 Trainium 与 Inferentia 芯片提供的这一层实现,它对上层屏蔽硬件差异,使同一份 PyTorch 代码可以调度到 Trainium 上执行。后端是否开源对生态信任至关重要:闭源后端一旦出现精度偏差、性能异常或算子缺失,外部开发者几乎无法定位原因,只能被动等待厂商修复;开源则允许社区审阅编译逻辑、复现问题并提交补丁,也更契合 PyTorch 社区长期形成的开放协作模式。

大会上的六个实战环节

AWS 在这次 PyTorch 大会上安排了六场 session,覆盖从入门到进阶的完整路径:

大会将包含六场 session,涵盖主题演讲、现场演示与 Torch Neuron 深度解析

  • 主题演讲与现场演示:直观展示 PyTorch 代码在 Trainium 上的运行效果
  • Torch Neuron 深度解析:讲清楚后端的工作原理
  • 基于 Hugging Face 与 Torch Titan 的模型训练:贴主流训练工作流
  • VLLM 推理服务:覆盖推理部署与聚合服务环节
  • 性能剖析(profiling)
  • 强化学习(RL)

这个 session 列表透露出一个信号:AWS 想展示的不是单个 demo,而是从训练、微调、推理到性能调优的完整链路。推理侧点名 VLLM,说明 Trainium 的目标场景同时包括训练和推理两端,而不是只做训练。

开发者该关注什么

如果这套零代码改动的承诺成立,最直接的影响是:选择训练硬件的决策,从「代码要不要重写」变成了「成本和性能是否划算」。

不过,声明和现实之间通常还有距离。PyTorch API 兼容是一回事,常见第三方算子、自定义 CUDA kernel、以及依赖 CUDA 特性的项目能否顺畅迁移,是另一回事。这类细节往往决定了一个后端在真实项目里到底可不可用。

对于有 PyTorch 经验的团队,值得关注的是 Torch Neuron 的算子覆盖范围、分布式训练的实际扩展效率,以及在 Hugging Face 等主流工作流下的开箱体验。这些才是「零代码改动」从口号变成生产力的关键。

Marcus 在结尾说得很直接:如果你懂 PyTorch,你就懂 Trainium。这句话能不能兑现,取决于接下来的六场 session 和之后开发者的真实反馈,而不是这句口号本身。

自定义 CUDA kernel 指的是开发者用 CUDA C/C++ 直接编写的、运行在 GPU 上的并行函数,常用于实现 PyTorch 原生算子未覆盖或性能不够的特殊计算。这类代码与英伟达硬件强绑定,无法直接迁移到 Trainium 等其他加速器上,通常需要针对目标硬件重写为对应的底层实现。此外,许多第三方库和模型会用 torch.utils.cpp_extension 等方式嵌入 CUDA 代码,这些路径在非 CUDA 后端上往往需要专门的替代方案。因此在评估「零代码改动」时,除了标准 PyTorch API 的兼容性,还需要重点确认项目中是否存在此类硬件相关代码,以及其对应的算子是否已被目标后端覆盖。

#AWS Trainium#PyTorch#Torch Neuron#AI 芯片#Torch.compile#深度学习训练#VLLM
分享:

相关推荐