Spyre
IBM推出的AI加速器芯片,通过torch-spyre项目成为PyTorch原生设备,支持设备调度、内存管理和异步执行
时间轴 (近 90 天)
与CPU/GPU上由缓存自动预取不同,Spyre上的数据搬运必须由编译器在合适位置插入,并与计算指令做同步。
Spyre上的DMA(直接内存访问)描述指编译产物中显式声明的数据搬运指令,用于在片外内存与各核心的scratchpad之间传输张量分块。
torch-spyre编译栈的Inductor组件负责决定每个内核在Spyre芯片各核心间的任务划分,并管理张量在片上暂存器与片外内存之间的驻留策略。
Spyre是IBM面向AI推理负载设计的加速器,其架构强调分布式片上存储与显式数据流调度。
Spyre各核心拥有独立的scratchpad(暂存器),且容量有限,这使数据位置规划成为编译器的第一等任务。
torch-spyre的编译栈设计借鉴了Inductor对接其他加速器的经验,但针对Spyre的显式内存层次做了专门处理。
在Spyre数据流架构中,一旦数据位置规划失误,核心可能因等待DMA搬运而空转。
torch-spyre通过实现Inductor的可插拔后端接口,把Inductor的调度能力复用到Spyre上,从而让PyTorch模型无需手写内核即可落到该芯片执行。
当编译层趋于统一,AI 芯片硬件厂商的竞争焦点转移到芯片架构、互联带宽、内存带宽以及软件栈中真正独有的部分(如 Spyre 的特定数据流调度)。
IBM Spyre AI 加速器将其 torch.compile 后端从自研的 sendnn 编译栈切换为开源社区维护的 Inductor。
还有 8 条时间轴事件
全部知识事实 (17)
与CPU/GPU上由缓存自动预取不同,Spyre上的数据搬运必须由编译器在合适位置插入,并与计算指令做同步。
50%待验证torch-spyre编译栈的Inductor组件负责决定每个内核在Spyre芯片各核心间的任务划分,并管理张量在片上暂存器与片外内存之间的驻留策略。
50%待验证Spyre是IBM面向AI推理负载设计的加速器,其架构强调分布式片上存储与显式数据流调度。
50%待验证Spyre各核心拥有独立的scratchpad(暂存器),且容量有限,这使数据位置规划成为编译器的第一等任务。
50%待验证Spyre上的DMA(直接内存访问)描述指编译产物中显式声明的数据搬运指令,用于在片外内存与各核心的scratchpad之间传输张量分块。
50%待验证在Spyre数据流架构中,一旦数据位置规划失误,核心可能因等待DMA搬运而空转。
50%待验证torch-spyre通过实现Inductor的可插拔后端接口,把Inductor的调度能力复用到Spyre上,从而让PyTorch模型无需手写内核即可落到该芯片执行。
50%待验证torch-spyre的编译栈设计借鉴了Inductor对接其他加速器的经验,但针对Spyre的显式内存层次做了专门处理。
50%待验证当编译层趋于统一,AI 芯片硬件厂商的竞争焦点转移到芯片架构、互联带宽、内存带宽以及软件栈中真正独有的部分(如 Spyre 的特定数据流调度)。
50%待验证IBM Spyre AI 加速器将其 torch.compile 后端从自研的 sendnn 编译栈切换为开源社区维护的 Inductor。
50%待验证sendnn 是 IBM Spyre 加速器软件栈此前依赖的一套完全从零搭建的独立编译堆栈。
50%待验证IBM 在 Spyre 的适配中,在 Inductor 之上做了 Spyre 专属的调度和内存层级适配,只需将 Inductor 输出的中间表示映射到 Spyre 指令集。
50%待验证Inductor 作为通用后端,在延迟极度敏感或算子高度定制的工作负载中,其通用 pass 可能不如专用编译器,IBM 需保留针对 Spyre 关键算子的手写优化通道。
50%待验证torch-spyre 将 PyTorch 的计算图对接至 Spyre 的运行时与固件,使算子能够被正确编译并下发到硬件执行。
50%待验证Spyre 实现了 PyTorch 的 allocator 接口,接管张量内存的申请与释放,这决定了内存复用策略和显存管理能否与框架的缓存机制协同,是性能表现的基础。
50%待验证注册完成后,用户可以使用 torch.device("spyre") 这类字符串直接指定硬件,PyTorch 会在内部把它映射到 PrivateUse1。
50%待验证Torch Spyre 是 IBM 面向其 Spyre 加速器打造的 PyTorch 后端
50%