tile-ai/tilelang-ascend

Ascend TileLang adapter

解决的问题

TileLang-Ascend 简化了为华为 Ascend NPU 开发高性能 AI 计算内核的过程。它消除了开发者手动处理复杂低级优化的需要,同时仍提供实现 GEMM、注意力机制和向量运算等操作最先进性能所需的工具。

工作原理

它是一个基于 TVM 编译器基础设施构建的领域特定语言(DSL),采用 Python 风格语法。它将类似 GPU 的内存层次结构(全局内存、共享内存和寄存器内存)映射到 Ascend NPU 架构(全局内存、L1/统一缓冲区和 L0 缓冲区)。编译器支持两种代码生成技术路径:Ascend C & PTO 和 AscendNPU IR。提供不同的编程模式,包括“开发者模式”(自动作用域分离和同步)和“专家模式”(手动控制执行作用域和同步标志)。

适用人群

需要为华为 Ascend NPU 硬件(如 A2 和 A3 设备)专门优化 AI 工作负载的 AI 内核开发者和工程师。

主要亮点

  • 广泛的算子支持:包含 GEMM、Flash Attention、Sparse Flash Attention、Convolution 和 Softmax 的实现。
  • 内存优化:支持自动缓冲区复用以减少片上内存占用,并自动分配工作空间。
  • 性能工具:支持软件流水线(T.Pipelined)、自动向量化(T.Parallel)和 L2 缓存打乱(swizzling)。
  • 开发体验:提供 JIT 编译器、调试工具(T.printfT.dump_tensor),以及通过 torch_tl_ascend 实现的与 PyTorch 的无缝集成。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目