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.printf、T.dump_tensor),以及通过torch_tl_ascend实现的与 PyTorch 的无缝集成。
相关
- 项目
- 项目
- 项目
- 项目
- 项目