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 之间的无缝工作流程。
相关
- 项目
- 项目
- 项目
- 项目
- 项目