華為開放 AscendNPU IR;這套基於 MLIR 的中間表示是 BiSheng 編譯器的重要底座,旨在讓 Triton、TileLang 和框架算子接入昇騰硬體。 HFusion 負責相對高階、與硬體較無關的融合、切分與排程;HIVM 則處理 Cube、Vector 核心映射、片上記憶體、同步、流水線與指令生成。
研究答案

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
在 AI 加速器愈來愈複雜的今天,開發者面對的難題往往不只是「如何寫出一個算子」,還包括資料應該放在哪一層片上記憶體、何時搬移、如何同步,以及 Cube 和 Vector 核心如何協同工作。
華為希望透過開源 AscendNPU IR,將這些硬體細節集中交給一套共用的編譯器基礎處理。2026 年 8 月 1 日,華為 AscendNPU IR 架構師海麗娟在 HyperAI 主辦的第九期 Meet AI Compiler 技術沙龍上,介紹了這套基於 MLIR 的編譯底座,以及它如何支援 Triton 等算子生態接入昇騰平台。3
7
AscendNPU IR 並不是另一種面向終端使用者的程式語言,而是位於高階框架、DSL(領域特定語言)與昇騰硬體之間的中間表示。它是 BiSheng 編譯器的核心組成之一,提供多層次抽象,讓開發者可以在較高階的介面描述張量運算,也可以在需要深度調校時,直接控制更接近硬體的資源與流水線行為。4
11
這套設計的核心是 Tile 層級抽象。Tile 可理解為一個可管理的張量資料與運算區塊。前端不必逐一描述每次資料搬移、同步操作和硬體指令,而是先用 Tile 表達計算,再由編譯器逐步決定如何切分、排程,以及將資料映射至不同記憶體層級。
AscendNPU IR 支援多種接入方式:
整體流程可簡化為:
Triton、TileLang 或框架 IR
↓
基於 MLIR 的 AscendNPU IR
↓
HFusion → HIVM 下沉
↓
昇騰裝置指令與二進位檔
官方範例顯示,開發者可使用 bishengir-compile 將 MLIR 編譯成裝置端物件,再透過 CANN 執行階段完成算子註冊與上板執行。6
對 AI 算子而言,效能常常取決於資料是否能留在較快的片上記憶體、搬移與計算能否重疊,以及不同運算單元之間是否需要反覆經過較遠的記憶體路徑。
如果每個前端都必須自行處理這些細節,Triton、TileLang 或各種框架之間就很難共用同一套硬體最佳化邏輯。AscendNPU IR 則試圖提供一個共同的 Tile 導向表示:高階介面隱藏大部分指令和同步細節,低階介面保留記憶體位置、流水同步與乒乓緩衝等調校能力。4
11
這是一種在可攜性與效能之間取得平衡的做法。相同的前端程式可以先透過共用編譯器底座接入昇騰;對效能要求較高的算子,開發者仍可下沉到更了解硬體的表示,針對實際晶片進行優化。架構文件則將這種設計描述為逐層解耦的抽象,依序表達昇騰指令、核內資源、核間資源及系統級資源。11
HFusion 是相對硬體無關的高階層。它以張量運算語義表示算子,並在產生具體硬體指令前,執行算子融合、bufferization、Tile 切分與排程等轉換。11
22
例如,多個連續運算可以先被合併,以減少中間結果反覆寫回;較大的計算則可被切成適合目標執行模型的 Tile。這一層的重點,是在保留高階計算語義的同時,為後續昇騰特定化編譯做好準備。
HIVM 是更接近硬體的層級,負責將 Tile 表達轉換為能反映昇騰執行單元、儲存階層與流水線行為的操作。其工作包括:
因此,HFusion 可以從較遠的距離思考整體張量結構與融合機會,HIVM 則需要回答更具體的問題:某個 Tile 應該交給哪個核心?資料位於哪一層記憶體?何時搬移?不同運算是否能重疊執行?
HFusion 與 HIVM 的兩層架構並未改變,但面向 Ascend 950 時,硬體感知的 HIVM 需要處理比早期記憶體式 SIMD 更廣的執行模式。相關資料指出,Ascend 950 在既有執行模型之外,加入暫存器式 SIMD 與 SIMT 支援。2
在暫存器式 SIMD 中,資料可從片上記憶體載入暫存器,在暫存器內完成運算,再寫回記憶體。若算子結構允許,編譯器可以進行暫存器粒度的融合,讓中間結果持續留在暫存器中,減少重複載入與寫回。2
SIMT 則提供另一種處理不規則存取或分歧運算的方式。編譯器可將適合 SIMT 的部分與密集、適合 SIMD 的部分區分開來,分別套用對應轉換,再將結果整合回更大的向量計算流程。2
Cube 與 Vector 分別擅長矩陣和向量運算。早期 A2/A3 流程中,部分兩者之間的資料交換需要經過全域記憶體;針對 Ascend 950,相關介紹指出,Cube 的結果可從 L0C 移至 Vector 片上記憶體,Vector 結果也可回到 Cube 記憶體,形成更直接的片上交換路徑。2
這對先進行矩陣運算、再接續向量處理的算子尤其重要。不過,編譯器仍須判斷張量實際位於何處,以及當 Cube 和 Vector 運算分布在不同控制流程分支時,何時必須插入資料轉換或複製。
AscendNPU IR 的價值不只在抽象設計,也體現在一系列將抽象轉成排程與記憶體決策的編譯器 Pass。
InsertCVLoadStore:分析複雜控制流程中的資料交換增強後的 InsertCVLoadStore 不再只依賴簡單的區域 Pattern Match 來插入 Cube–Vector 資料搬移,而是分析跨越複雜控制流程的整體關係。
流程會先建立記憶體位置錨點,例如將矩陣輸入設在 L1、矩陣輸出設在 L0C,並將向量資料設在 UB。接著,編譯器沿著控制流程向上、向下傳播這些限制;當不同記憶體領域發生衝突時,再插入必要的型別轉換或複製操作,讓每個運算元張量的記憶體層級變得明確。2
在 A2/A3 上,部分 Cube–Vector 跨域交換可透過全域記憶體載入與儲存完成;在 Ascend 950 支援的路徑上,則可採用更短的片上資料交換。2
MultiBuffer:讓搬移與計算重疊MultiBuffer 會為既有張量建立多份緩衝副本,支援乒乓緩衝。當記憶體預算和排程條件允許時,這能讓下一批資料的搬移與目前批次的計算重疊,提升流水線利用率。17
18
AutoBlockify 與 DynamicCVPipeline在 Triton-Ascend 編譯器堆疊中,AutoBlockify 和 DynamicCVPipeline 是昇騰專用的代表性 Pass。前者著重將計算切成可執行區塊,後者則用於建立 Cube–Vector 流水線行為。19
官方功能說明亦列出自動記憶體規劃、同步、排程,以及 Cube–Vector 優化等能力。24
相關介紹描述了一種一個 Cube 核心對應兩個 Vector 核心的配置。透過 AutoSubTiling,Vector 工作可被切成不同部分,讓兩個 Vector 核心並行處理各自的區段。2
14
華為此次同步開放 AscendNPU IR 與 Triton-Ascend,並邀請社群共同開發。Triton-Ascend 是面向昇騰平台的 Triton 編譯框架,在保留 Triton 核心語法的同時,加入針對 Ascend Atlas A2、A3 和 950 系列產品的編譯與部署支援。30
37
對開發者而言,這提供了更直接的參與入口:可以研究編譯器 Pass、前端整合、算子下沉,或針對特定硬體資源進行最佳化,而不必從零打造完整編譯器堆疊。現有社群計畫包含與程式碼儲存庫連結的實習機會和任務制獎勵;開發者可依規則認領列出的任務,完成後提交成果。31
沒有本地昇騰硬體的開發者,據報也可使用昇騰社群的雲端環境 HiDevLab,並獲得 100 小時免費算力。不過,目前可取得的報導只確認了這項額度,未完整說明資格、驗證、有效期限或地區可用性;註冊時仍應以平台當下公布的條款為準。31
AscendNPU IR 的主要主張是一種架構取捨:讓 Triton、TileLang 和框架 IR 能透過較高階的共用入口接入昇騰,同時保留一路下沉至硬體細節的能力。HFusion 可處理廣泛的融合、切分和排程,HIVM 再將 Tile 轉化為昇騰裝置所需的記憶體、核心、通信與流水線決策。5
11
Ascend 950 則把可調校的上限推高,新增暫存器式 SIMD、SIMT 和更直接的 Cube–Vector 片上資料路徑。這些能力能否在實際應用中帶來更高效能,仍取決於算子形狀、記憶體壓力、控制流程、編譯器成熟度與目標晶片。
開源的意義,或許不在於保證所有算子立即變快,而在於讓這些取捨更容易被檢視、測試和改進,也讓編譯器與算子開發者有機會直接參與昇騰軟體堆疊的演進。
Studio Global AI
這個頁面包含附來源佐證的答案,你可以在 Studio Global 內繼續追問。
華為開放 AscendNPU IR;這套基於 MLIR 的中間表示是 BiSheng 編譯器的重要底座,旨在讓 Triton、TileLang 和框架算子接入昇騰硬體。
華為開放 AscendNPU IR;這套基於 MLIR 的中間表示是 BiSheng 編譯器的重要底座,旨在讓 Triton、TileLang 和框架算子接入昇騰硬體。 HFusion 負責相對高階、與硬體較無關的融合、切分與排程;HIVM 則處理 Cube、Vector 核心映射、片上記憶體、同步、流水線與指令生成。
面向 Ascend 950,編譯堆疊加入暫存器式 SIMD、SIMT,以及更直接的 Cube–Vector 片上資料交換路徑。