tile-ai/tilelang-ascend

Ascend TileLang adapter

解决的问题

TileLang-Ascend 解决了为华为昇腾 NPU 创建高性能 AI 计算核心的困难。它允许开发者使用 Python 风格的语法编写优化核心(如 GEMM、注意力机制和向量运算),无需手动处理复杂的底层 NPU 优化,同时保持顶尖的性能。

运作原理

这是一个建立在 TVM 编译器基础设施之上的领域特定语言 (DSL)。它通过管理内存层级(Global、L1 和 L0 缓冲区)并提供专门的编译器后端(Ascend C & PTO 和 AscendNPU IR),将高阶 Python 风格代码映射到昇腾 NPU 架构。该系统支持用于自动同步和作用域分离的“开发者模式”,以及用于手动控制执行作用域和同步标志的“专家模式”。

目标用户

需要专门为华为昇腾 A2 和 A3 处理器优化计算工作负载的 AI 工程师与核心开发者。

特色亮点

  • 广泛的算子支持:包含 GEMM、Flash Attention、Sparse Flash Attention、卷积和 Softmax 的实现。
  • 内存优化:具备自动缓冲区重用以减少片上内存占用,以及自动工作空间分配。
  • 性能工具:支持软件流水线化 (T.Pipelined)、自动向量化 (T.Parallel) 和 L2 缓存重排 (swizzling)。
  • PyTorch 集成:提供 torch_tl_ascend 以实现 PyTorch 与 NPU 之间的无缝工作流程。

相关

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