PyTorch 扩展 Inductor 支持 IBM Spyre 加速器:编译后端重大升级
PyTorch 团队近日发布了一项重要技术进展:将 IBM Spyre 企业级 AI 加速器的软件栈编译后端,从完全从头构建的专用栈 sendnn 迁移至 PyTorch 核心的开源后端 Inductor。这一转变标志着 PyTorch 生态在异构硬件支持上的重大突破,不仅降低了开发门槛,更通过复用现有基础设施大幅优化了编译器性能。
更新背景:为何选择 Inductor?
IBM Spyre 是一款专为企业推理工作负载设计的 75 瓦 PCIe 加速器,其核心优势在于极致的功耗效率与无需额外供电/散热的设计。与 GPU 不同,Spyre 采用数据流架构,由 32 个小核通过环形总线互联,每个核心配备独立的 2MB Scratchpad,而非共享缓存。这种架构要求编译器在处理数据移动、内存布局及任务分发时,必须遵循完全不同的逻辑。
尽管 Spyre 的硬件模型与 GPU 差异巨大,但 PyTorch 团队发现 Inductor 提供了完美的底层基座。通过针对 Spyre 特性的深度扩展,团队成功构建了一个理解该硬件的编译器,且最终代码体积比原 sendnn 方案缩小了约 7 倍。
核心突破:三大关键技术挑战
此次迁移并非简单的“即插即用”,团队在 Inductor 的三个关键层面进行了实质性扩展,以解决 Spyre 独特的硬件约束: