在 Wormhole AI 芯片上实现 TT-NN 操作符与 Metalium 内核:借助 TT-Buda 优化张量计算
利用 TT-Metalium 开发低级内核,并在 Wormhole 上通过 TT-Buda 实现张量优化与融合,提供工程参数与监控要点。
在 Tenstorrent 的 Wormhole AI 芯片上实现高效的神经网络(NN)操作符,需要结合 TT-NN 库的抽象层与 TT-Metalium 的低级内核编程模型。这种方法不仅能充分利用硬件的 Tensix 核心架构,还能通过 TT-Buda 编译器进行张量计算优化和硬件特定融合,从而提升整体性能。Wormhole 芯片以其 72 个 Tensix 核心、108 MB SRAM 和 GDDR6 内存支持,提供高达 262 TFLOPS 的 FP8 计算能力,特别适合大规模张量操作的加速。
TT-Metalium 作为低级编程接口,允许开发者直接操控 Wormhole 的计算单元、片上网络和 RISC-V 微控制器,实现自定义 NN 内核。这种接近硬件的控制避免了传统 GPU 框架的黑箱问题,确保操作符如矩阵乘法(matmul)或元素级运算(eltwise)能精确匹配 Tensix 核心的 SIMD 和数据移动特性。相比高层 API,TT-Metalium 提供细粒度优化,例如通过多播(multicast)机制减少数据冗余传输,从而在多核环境中降低延迟。
为了将这些低级内核与高层模型集成,TT-Buda 扮演关键角色。作为开源编译器,它从 PyTorch 或 TensorFlow 模型导入架构和权重,生成针对 Wormhole 的优化执行图。TT-Buda 支持操作融合,如将多个 eltwise 操作合并为单一内核,减少内存访问开销。根据 Tenstorrent 的技术报告,这种融合可将 CNN 模型的执行时间缩短 20%-30%。
实现 TT-NN 操作符的具体流程从定义内核开始。以 matmul 为例,首先在 TT-Metalium 中编写 C++ 代码,指定输入张量的布局(例如 Tile 格式以匹配 Tensix 的 16x16 块大小)。内核需处理数据分片(sharding)和填充(padding),确保张量边界对齐硬件网格。参数设置包括:核心分配为 4x4 网格(总 16 核),激活张量大小为 [batch=32, seq=128, hidden=4096],权重为 [hidden, hidden],使用 FP16 精度以平衡精度和速度。编译时,使用 TT-Metalium 的构建工具链(CMake + Clang),生成可加载的二进制文件。
接下来,利用 TT-Buda 优化这些操作符。将自定义 matmul 内核注册到 TT-NN 库中,作为 TT-Buda 的后端插件。TT-Buda 会自动调度融合,例如将 matmul 与后续的 softmax 融合为一个流水线,减少中间结果的 DRAM 读写。优化参数包括:融合阈值设为 5(操作数 >5 时融合),内存池大小为 96 GB(匹配 Wormhole n300 的扩展配置),并启用数据重用策略,如将激活张量驻留在 SRAM 中。运行时,TT-Buda 生成的执行图可通过 Ethernet 网格扩展到多芯片,支持张量并行(TP=8),目标吞吐量为 22 tokens/s/user(基于 Qwen 32B 模型基准)。
在实际落地中,开发者需关注硬件特定融合的工程参数。首先,配置数据格式:优先使用 Bfloat16 以利用 Tensix 的原生支持,避免 FP32 的精度损失。其次,设置超时和资源限制:内核执行超时为 500 ms,超出则回滚到软件仿真;内存分配使用 TT-Metalium 的分配器,预留 20% 缓冲以防碎片化。监控要点包括:使用 TT-NN Visualizer 工具可视化操作流图,追踪 SRAM 利用率(目标 >80%)和带宽饱和(DRAM >90%)。如果融合导致溢出,风险在于 NaN 值传播,可通过添加 saturating 逻辑(如 clamp 操作)缓解。
对于低级内核的调试,提供以下清单:1. 验证张量布局一致性,使用 TT-Metalium 的 reconfig_data_format API 动态调整;2. 测试单核性能,基准 matmul FLOPS 应达 10 TFLOPS/core;3. 多核扩展时,启用 CCL(Collective Communication Library)进行 all-reduce 操作,参数为 ring 拓扑以最小化延迟;4. 集成 TT-Buda 后,运行端到端基准,如 Llama 3.1 70B 的 TTFT(Time to First Token)目标 53 ms(batch=32)。回滚策略:若优化失败,降级到非融合模式,仅使用 TT-NN 的标准操作符,确保兼容性。
这种实现路径不仅提升了 Wormhole 的张量计算效率,还为自定义 AI 工作负载提供了可扩展框架。未来,随着 Blackhole 芯片的引入,类似方法可进一步利用 6nm 工艺的更高密度核心。通过最小化搜索和直接从 primary source 提炼,TT-Metalium 与 TT-Buda 的结合已成为 Tenstorrent 生态的核心竞争力。
(字数:1028)