Huaweiは2026年8月1日の技術サロンで、BiShengコンパイラーの中核となるMLIRベースのAscendNPU IRをオープンソース化したと説明しました。[3][7] HFusionが比較的ハードウェア非依存の融合・タイル分割・スケジューリングを担い、HIVMがCube/Vectorコア、オンチップメモリ、同期、パイプラインを昇腾向け命令へ落とし込みます。[5][11][22] Ascend 950では、レジスタベースSIMD、SIMT、CubeとVectorのより直接的なオンチップデータ交換などが加わり、最適化の余地が広がります。[2]
研究の答え

Create a landscape editorial hero image for this Studio Global article: What did Huawei AscendNPU IR architect Hai Lijuan present at HyperAI’s ninth Meet AI Compiler technical salon on August 1, 2026, and how doe. Article summary: Hai Lijuan’s August 1 salon talk, “AscendNPU IR: open compiler foundation supporting multi-language access to Ascend,” presented the newly open-sourced MLIR compiler layer beneath BiSheng and its path for bringing Triton. Topic tags: general, general web, user generated. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fa
HuaweiのAscendNPU IRは、新しいエンドユーザー向けプログラミング言語ではありません。BiSheng(びしょう)コンパイラーの下層に位置する、昇腾(Ascend)向け演算子をコンパイルするためのオープンな中間表現(IR)です。
2026年8月1日、北京・中関村で開かれたHyperAI主催の「Meet AI Compiler」第9回技術サロンで、AscendNPU IRのアーキテクトである海麗娟氏が、その設計とTritonなどの演算子エコシステムへの対応を説明しました。3
7
ポイントは、フロントエンド側のプログラミングと、NPU特有の複雑な最適化を切り分けることです。開発者がすべてのデータ転送、オンチップメモリの配置、同期、タイル分割、Cube/Vector間の連携を手作業で記述しなくても、共通のコンパイル基盤を通じて昇腾ハードウェアへ落とし込める構成を目指しています。
AscendNPU IRは、MLIR(Multi-Level Intermediate Representation)を基盤とする、昇腾向け演算子コンパイル用の中間表現です。高水準のインターフェースでは命令や同期の細部を隠しつつ、低水準ではオンチップメモリのアドレス、パイプライン、同期位置などを細かく制御できます。4
11
入力経路は一つに限られません。TritonやTileLangといったDSL(ドメイン固有言語)からAscendNPU IRへ変換できるほか、PyTorchなどのフレームワークからTorch IR、Linalg/HFusion IR、HIVM IRを経由して接続することもできます。5
22
高い抽象度の経路では、演算子の融合、タイル分割、ブロック化、スケジューリングなどをコンパイラーが自動化します。一方、HIVMまで下げれば、GM、UB、L1、L0といったメモリ階層や、Vector、Cube、MTEの実行・転送パイプラインを明示的に扱えます。5
処理の流れを簡略化すると、次のようになります。
Triton、TileLang、またはフレームワークIR
↓
MLIRベースのAscendNPU IR
↓
HFusion → HIVMへの変換
↓
昇腾向け命令とデバイスバイナリ
公式ドキュメントの例では、bishengir-compileを使ってMLIRをデバイス側オブジェクトに変換し、CANNランタイムに登録してNPU上で実行します。6
タイルとは、テンソルデータと計算を扱いやすい大きさのブロックに分けたものです。NPU向けの高性能演算では、データをどのメモリ階層に置くか、いつ移動させるか、どこで同期するか、どの演算ユニットに割り当てるかが性能を大きく左右します。
AscendNPU IRは、これらを各フロントエンドが個別に記述するのではなく、タイルを中心とした共通の表現で扱います。高水準ではテンソル演算の意味を保ち、低水準ではタイルを実際のメモリ、コア、転送、命令へと段階的に具体化する設計です。5
11
22
そのため、Tritonやフレームワーク側は同じコンパイル基盤を利用しながら、性能が重要な部分だけをよりハードウェアに近い表現へ下げられます。公式のアーキテクチャ資料では、命令、コア内資源、コア間資源、システムオンチップ資源を段階的に表現する、分離された多層抽象として説明されています。11
HFusionは、2層構造のうち比較的ハードウェアに依存しない層です。テンソル演算を高い抽象度で表現し、演算子融合、バッファ化、タイル分割、スケジューリングなどを行います。11
22
ここでは複数の演算をまとめたり、大きな計算を実行可能なタイルへ分割したりしながら、昇腾向けの下位変換に備えます。具体的な命令を決める前に、テンソル全体の構造や融合の可能性を見渡せる点が特徴です。
HIVMは、昇腾NPUの実行ユニット、メモリ階層、パイプラインを意識する層です。主な役割は次のとおりです。
つまりHFusionは計算の「大きな構造」を見て最適化し、HIVMは各タイルを実際に動かすためのメモリと実行資源を詰めていく役割を担います。
HFusionとHIVMの分担自体は維持されますが、Ascend 950向けのHIVMは、従来のメモリベースSIMDに加えて、レジスタベースSIMDとSIMTにも対応します。2
レジスタベースSIMDでは、オンチップメモリからデータをレジスタへ読み込み、レジスタ上で処理してから書き戻します。演算の途中結果をレジスタに保持できる場合は、演算ごとの読み込み・書き込みを減らせます。2
これは、複数の処理をレジスタ上で融合できる演算にとって重要です。メモリ帯域や転送回数がボトルネックになるケースで、コンパイラーがより細かなデータ保持を判断できるようになります。
SIMTは、アクセスが不規則だったり、処理の分岐が多かったりする部分に適した実行モデルです。説明された方式では、SIMTの恩恵を受ける部分と、密な計算に向くSIMD部分を分け、それぞれに適した変換を施したうえで、全体のベクトル計算に組み合わせます。2
A2/A3世代の一部のCube–Vector連携では、CubeとVectorの計算をまたぐ際にグローバルメモリを経由していました。Ascend 950では、対応する経路でCubeの結果をL0CからVector側のオンチップメモリへ移し、Vectorの結果をCube側のメモリへ戻せるようになります。2
行列演算をCubeで処理したあとにVector演算を続けるような演算子では、データ移動の距離を短縮できる可能性があります。ただし、CubeとVectorが異なる制御フロー分岐に存在する場合などは、テンソルの所在と転送タイミングをコンパイラーが正しく推論しなければなりません。
AscendNPU IRでは、抽象的なタイル表現を実際のスケジュールやメモリ配置へ変えるため、複数の専用パスが使われます。
強化されたInsertCVLoadStoreは、単純な局所パターンの検出ではなく、複雑な制御フローをまたいでCube–Vector間のデータ交換を分析します。
たとえば、行列入力をL1、行列出力をL0C、VectorデータをUBに置くというメモリ位置のアンカーを設定し、その制約をプログラム全体へ伝播させます。メモリ領域が衝突する場合には、必要な変換やコピーを挿入します。2
A2/A3では一部の交換にグローバルメモリを使いますが、Ascend 950では対応するオンチップ経路を利用できます。2
MultiBufferは、一つのテンソルに複数のバッファーを割り当てる仕組みです。いわゆるピンポンバッファーとして、データ転送と計算を重ね合わせるパイプライン処理を支援します。ただし、実際の効果は利用可能なメモリ量とスケジュールに左右されます。17
18
Triton-Ascendのコンパイラースタックには、AutoBlockifyやDynamicCVPipelineといった昇腾向けパスも含まれます。前者は計算を実行可能なブロックへ分割し、後者はCube–Vector間のパイプラインを構築する役割を担います。19
文書化された機能には、自動メモリ計画、同期、スケジューリング、Cube–Vector最適化も含まれています。24
特定の昇腾構成では、1基のCubeコアに対して2基のVectorコアを組み合わせる関係が示されています。AutoSubTilingはVector側の処理を分割し、2基のVectorコアが別々の領域を並行して処理できるようにします。2
14
HuaweiはAscendNPU IRと、昇腾向けTritonコンパイルフレームワークであるTriton-Ascendを、コミュニティーとの共同開発に向けて公開しました。Triton-AscendはTritonの基本構文を保ちながら、Ascend Atlas A2、A3、950シリーズ向けのコンパイルとデプロイに対応します。30
37
これにより、開発者はコンパイラーパス、フロントエンド統合、演算子の下位変換、ハードウェア最適化などに、コンパイラースタック全体を一から構築せず参加できます。コミュニティーでは、リポジトリーに紐づくインターンシップやタスク型の報酬制度も案内されており、規定に従ってタスクを選択・申請し、完了した成果物を提出する形式です。31
手元に昇腾ハードウェアがない開発者向けには、昇腾コミュニティーのクラウド環境「HiDevLab」で100時間の無料計算時間を利用できると報告されています。31ただし、利用資格、本人確認、利用期限、地域ごとの提供条件などの詳細は、登録時に確認する必要があります。
AscendNPU IRの提案は、アーキテクチャー面にあります。Triton、TileLang、Torch IRなどを共通の入り口から受け入れ、HFusionで大きな最適化を行い、HIVMでメモリ、コア、通信、同期、パイプラインを昇腾向けに具体化する構成です。5
11
Ascend 950では、レジスタベースSIMD、SIMT、Cube–Vector間のより近いデータ経路によって、コンパイラーが扱える最適化の幅も広がります。一方で、実際の性能は演算子の形状、メモリ負荷、制御フロー、コンパイラーの成熟度、対象チップによって変わります。
今回のオープンソース化が示すのは、単にTritonを昇腾で動かすための互換層ではありません。高水準の書きやすさを維持しながら、必要な開発者にはハードウェアの深部まで調整できる道を開く、昇腾向けコンパイラー基盤の公開です。
Studio Global AI
このページにはソースに裏付けされた回答が含まれており、Studio Global 内で続行できます。
Huaweiは2026年8月1日の技術サロンで、BiShengコンパイラーの中核となるMLIRベースのAscendNPU IRをオープンソース化したと説明しました。[3][7]
Huaweiは2026年8月1日の技術サロンで、BiShengコンパイラーの中核となるMLIRベースのAscendNPU IRをオープンソース化したと説明しました。[3][7] HFusionが比較的ハードウェア非依存の融合・タイル分割・スケジューリングを担い、HIVMがCube/Vectorコア、オンチップメモリ、同期、パイプラインを昇腾向け命令へ落とし込みます。[5][11][22]
Ascend 950では、レジスタベースSIMD、SIMT、CubeとVectorのより直接的なオンチップデータ交換などが加わり、最適化の余地が広がります。[2]