InfiniTensor/ninetoothed
A domain-specific language (DSL) based on Triton but providing higher-level abstractions.
解决的问题
NineToothed 简化了高性能 GPU 内核的创建。它通过提供一种领域特定语言(DSL),消除了编写低级 GPU 代码时通常伴随的复杂性,使这一过程更加易于访问。
工作原理
它采用一种称为 张量导向的元编程(TOM) 的范式,以及“排列并应用”方法。开发者定义三个不同组件:arrangement(数据如何分块和扩展)、application(实际计算逻辑)以及 tensors 本身。这些组件通过 ninetoothed.make 进行整合,生成基于 Triton 的内核。
适用人群
需要编写自定义高性能 GPU 内核,但希望使用比原始 Triton 或 CUDA 代码更高层次抽象的开发者和研究人员。
主要亮点
- 基于 Triton 的 DSL:利用 Triton 实现 GPU 性能。
- 排列并应用范式:分离数据布局与计算逻辑,提升清晰度。
- 张量导向的元编程:简化将高层张量操作映射到 GPU 硬件的过程。
相关
- 项目
triton-lang/tritonTriton 是一个开源语言和编译器,用于编写深度学习原语的自定义 GPU 内核。它提供类似 Python 的 DSL(`@triton.jit`),通过基于 MLIR 的后端编译为高效的 NVIDIA 和 AMD GPU 代码,具备自动调优、CPU 调试用解释器以及可扩展的编译器阶段。
- 项目
pytorch/helionHelion 是一个 Python 嵌入式 DSL,让你可以像编写普通 PyTorch 代码一样编写 GPU 内核。它将内部循环编译为 Triton,自动选择分块、网格大小和内存访问策略,并运行广泛的自动调优器以找到最快的配置。你可以冻结最佳配置用于生产,实验性后端(TileIR、CuTe)拓宽了硬件支持。
- 项目
NVIDIA/tilusTilus 是一种区块级 GPU 内核编程语言,支持对共享内存和寄存器的显式控制,实现高性能低精度计算。
- 项目
tile-ai/tilelang基于 TVM 构建的简洁领域特定语言和编译器,用于开发 GEMM 和 FlashAttention 等高性能 GPU/CPU/NPU 内核。
- 项目
ByteDance-Seed/Triton-distributedTriton-distributed 是一个由 ByteDance-Seed 开源的编译器,它扩展了 Triton 语言,增加了用于重叠 GPU 计算与通信的原语。它能在 NVIDIA 和 AMD GPU 上实现高性能的分布式核心(如 GEMM、MoE、flash-decode、AllToAll),提供媲美手动调优库的加速效果。可通过源码或预先构建的 pip wheel 安装,使用 @triton_dist.jit 编写核心,并调用提供的底层通信 API。该项目持续更新(最新消息为 2026 年 9 月),并以 MIT 授权发布。