利用智能体 AI 将 CUDA Tile 操作从 Python 翻译为 Rust

📌 One-Sentence Summary NVIDIA 开发了一套多智能体 AI 工作流,将 CUDA Tile 内核从 Python 和 Triton-TileIR 翻译为 Rust,在增强内存安全性和类型正确性的同时,实现了 99.5% 的性能对齐。 📝 Summary 本文详细介绍了创建一种智能体 AI 技能的过程,旨在将生产环境中的 GPU 内核从 cuTile Python 和 Triton-TileIR 迁移到 cuTile Rust。通过利用共享的中间表示(CUDA Tile IR),该系统确保了翻译结果在结构和功能上是可验证的。该工作流采用了一个受限的多智能体流水线——包含分析器、内核编写器、主机/FFI 构建器和性能验证器——以处理从 Python 的隐式 JIT 特化到 Rust 显式 AOT 类型系统的转换。最终结果是将 24 个公开的 TileGym 算子迁移到了 Rust,在极小性能损失的情况下显著提升了安全保障。 💡 Main Points 以共享 IR 作为验证基础 由于 cuTile Python、Triton-TileIR 和 cuTile Rust 都以相同的 CUDA Tile IR 为目标,因此翻译过程是一个「重新表达」问题而非「重新优化」问题,这使得通过对 IR 进行直接比对(diffing)来验证结构正确性成为可能。 弥合 JIT 与 AOT 之间的鸿沟 主要挑战在于将 Python 的隐式 JIT 特化(类型和形状在调用时确定)转换为 Rust 的显式常量泛型(const-generics)和类型签名,这要求 AI 能够将隐式规范明确地写出来。 通过多智能体编排提升可靠性 翻译过程使用了专门的子智能体(分析器、编写器、构建器、验证器),它们通过固定模式的产物而非对话进行通信,从而将失败隔离在特定阶段(例如内核代码与主机代码的分离)。 通过 C-ABI 集成实现 Python 兼容性 为了保持与 TileGym Python 框架的兼容性,Rust 内核通过一个使用共享描述符结构体的 C-ABI 层导出,允许 PyTorch 在无需内存复制的情况下异步启动 Rust 内核。 💬 Key Quotes 「将内核迁移到 cuTile Rust 并不是一个重新优化的问题。它是在一个更安全的主机语言中重新表达同一个 Tile 程序,且底层使用相同的编译器和相同的性能模型。」 「共享 IR 使翻译变得可检查。」 「加载它的智能体完全不执行任何工程工作。通过阅读 SKILL.md,顶层智能体变成了一个纯粹的编排者,其唯一的权限就是路由。」 📊 Article Meta AI Screening: 88 Source: NVIDIA Technical Blog Author: Tanya Lenz Category: 软件编程 Language: 英文 Read Time: 15 min Word Count: 3576 Tags: 编程与工程 , AI Agent , 性能优化 , 模型训练与推理 , AI 工程 Read Full Article
不错不错,已加入书签。