tile-ai/tilelang-ascend

Ascend TileLang adapter

解決する課題

TileLang-Ascendは、Huawei Ascend NPU向けに高性能なAI計算カーネルを作成する際の困難を解決します。開発者はPythonライクな構文を使用して最適化されたカーネル(GEMM、アテンション機構、ベクトル演算など)を記述できるため、複雑な低レベルのNPU最適化を手動で処理する必要がなく、最先端のパフォーマンスを維持できます。

仕組み

これはTVMコンパイラインフラストラクチャ上に構築されたドメイン固有言語(DSL)です。メモリ階層(Global、L1、L0バッファ)を管理し、専用のコンパイラバックエンド(Ascend C & PTOおよびAscendNPU IR)を提供することで、高レベルなPythonコードをAscend NPUアーキテクチャにマッピングします。システムは、自動同期とスコープ分離を行う「開発者モード」と、実行スコープと同期フラグを手動で制御する「エキスパートモード」の両方をサポートしています。

対象ユーザー

Huawei Ascend A2およびA3プロセッサ向けに計算ワークロードを最適化する必要があるAIエンジニアおよびカーネル開発者。

主な特徴

  • 幅広い演算子サポート: GEMM、Flash Attention、Sparse Flash Attention、畳み込み、Softmaxの実装が含まれています。
  • メモリ最適化: オンチップメモリのフットプリントを削減する自動バッファ再利用機能と、自動ワークスペース割り当て機能を備えています。
  • パフォーマンスツール: ソフトウェアパイプライン化 (T.Pipelined)、自動ベクトル化 (T.Parallel)、L2キャッシュスウィズリングをサポートしています。
  • PyTorch統合: PyTorchとNPU間のシームレスなワークフローを実現する torch_tl_ascend を提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト