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 的無縫整合。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案