Huawei เปิดซอร์ส AscendNPU IR ซึ่งเป็นรากฐานคอมไพเลอร์แบบ MLIR ใต้ BiSheng หลัง Hai Lijuan นำเสนอในการเสวนา Meet AI Compiler ครั้งที่ 9 เมื่อวันที่ 1 สิงหาคม 2026 HFusion รับผิดชอบการฟิวชัน การแบ่ง Tile และการจัดตารางงานในระดับที่ยังไม่ผูกกับฮาร์ดแวร์มากนัก ส่วน 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
Huawei กำลังเปิดส่วนสำคัญของซอฟต์แวร์คอมไพเลอร์ Ascend ให้ชุมชนนักพัฒนาเข้ามามีส่วนร่วม โดย AscendNPU IR ไม่ใช่ภาษาโปรแกรมสำหรับผู้ใช้ปลายทาง แต่เป็นชั้น Intermediate Representation (IR) ซึ่งทำหน้าที่เป็นรากฐานของคอมไพเลอร์ BiSheng
ในการเสวนาเทคนิค Meet AI Compiler ครั้งที่ 9 เมื่อวันที่ 1 สิงหาคม 2026 ที่จงกวนชุน กรุงปักกิ่ง Hai Lijuan สถาปนิก AscendNPU IR อธิบายแนวทางที่สแต็กซึ่งสร้างบน MLIR นี้จะเชื่อม Triton และระบบนิเวศของการเขียนโอเปอเรเตอร์รูปแบบอื่นเข้ากับฮาร์ดแวร์ Ascend 3
7
ประเด็นสำคัญคือการแยก “ภาษาที่ใช้เขียนงาน” ออกจากงานเบื้องหลังที่ซับซ้อนขึ้นเรื่อย ๆ เช่น การแบ่งข้อมูลเป็น Tile การเคลื่อนย้ายข้อมูลในหน่วยความจำบนชิป การซิงโครไนซ์ การจัดคิวงานระหว่างหน่วยประมวลผล Cube กับ Vector และการสร้างไบนารีสำหรับอุปกรณ์
AscendNPU IR เป็น IR แบบหลายระดับที่สร้างบน MLIR และออกแบบมาสำหรับการคอมไพล์โอเปอเรเตอร์ที่เหมาะกับชิป Ascend โดยมีทั้งอินเทอร์เฟซระดับสูง ซึ่งช่วยซ่อนรายละเอียดของคำสั่ง การเคลื่อนย้ายข้อมูล และการซิงโครไนซ์ กับอินเทอร์เฟซระดับล่างที่เปิดให้นักพัฒนาควบคุมตำแหน่งข้อมูลและพฤติกรรมของไปป์ไลน์ได้ละเอียดขึ้น 4
11
สแต็กนี้รองรับการป้อนงานได้หลายทาง ได้แก่
เส้นทางโดยสรุปมีลักษณะดังนี้
Triton, TileLang หรือ Framework IR
↓
AscendNPU IR บน MLIR
↓
HFusion → HIVM
↓
คำสั่งอุปกรณ์และไบนารีของ Ascend
ในขั้นตอนการคอมไพล์ที่ระบุไว้ในเอกสาร เครื่องมือ bishengir-compile จะเปลี่ยน MLIR ให้เป็นอ็อบเจ็กต์สำหรับฝั่งอุปกรณ์ จากนั้นจึงลงทะเบียนและเรียกใช้งานผ่านรันไทม์ CANN 6
Tile คือบล็อกข้อมูลและการคำนวณขนาดพอเหมาะที่สามารถนำไปประมวลผลได้ การมีนามธรรมระดับนี้ช่วยไม่ให้ฟรอนต์เอนด์แต่ละตัวต้องระบุทุกขั้นตอนด้วยตัวเอง ทั้งการย้ายข้อมูล การเลือกชั้นหน่วยความจำ จุดซิงโครไนซ์ และคำสั่งฮาร์ดแวร์
แนวทางนี้แบ่งเป็นหลายระดับอย่างตั้งใจ ในระดับสูง นักพัฒนาสามารถอธิบายการทำงานของเทนเซอร์โดยไม่ต้องลงรายละเอียดฮาร์ดแวร์ทุกจุด แต่เมื่อจำเป็นต้องรีดประสิทธิภาพ ก็สามารถลดระดับลงมาเพื่อควบคุมตำแหน่งข้อมูลใน GM, UB, L1 และ L0 รวมถึงทรัพยากรของ Vector, Cube และหน่วยเคลื่อนย้ายข้อมูลได้ 5
22
ผลลัพธ์คือการประนีประนอมระหว่างความพกพาและการจูนประสิทธิภาพ: โค้ดจาก Triton หรือเฟรมเวิร์กสามารถใช้ฐานคอมไพเลอร์เดียวกัน ขณะที่โอเปอเรเตอร์ที่ต้องการประสิทธิภาพสูงยังลงไปควบคุมรายละเอียดเฉพาะของฮาร์ดแวร์ได้ เอกสารสถาปัตยกรรมของโครงการอธิบายแนวทางนี้ว่าเป็นชุดนามธรรมที่แยกออกจากกันเป็นชั้น ๆ ตั้งแต่คำสั่ง Ascend ทรัพยากรภายในคอร์ ทรัพยากรระหว่างคอร์ ไปจนถึงทรัพยากรระดับระบบบนชิป 11
HFusion เป็นชั้นที่ยังไม่ผูกกับรายละเอียดฮาร์ดแวร์มากนัก โดยแสดงการทำงานของเทนเซอร์ในระดับสูง และทำการปรับเปลี่ยน เช่น การรวมหลายโอเปอเรเตอร์เข้าด้วยกัน การเปลี่ยนเทนเซอร์ให้เป็นบัฟเฟอร์ การแบ่ง Tile และการจัดตาราง ก่อนที่คอมไพเลอร์จะตัดสินใจเลือกคำสั่งฮาร์ดแวร์ที่เฉพาะเจาะจง 11
22
ชั้นนี้จึงเหมาะกับการมองภาพรวมของกราฟการคำนวณ เช่น การหาโอกาสรวมโอเปอเรเตอร์หลายตัวเข้าด้วยกัน แล้วแบ่งงานขนาดใหญ่ให้เป็น Tile ที่เข้ากับรูปแบบการประมวลผลของ Ascend โดยยังรักษาความหมายระดับสูงของงานไว้ให้มากที่สุด
HIVM เป็นชั้นที่รับผิดชอบการลดนิพจน์ระดับ Tile ให้กลายเป็นการทำงานที่สอดคล้องกับหน่วยประมวลผล ลำดับชั้นหน่วยความจำ และพฤติกรรมของไปป์ไลน์บน Ascend หน้าที่หลักประกอบด้วย
การแยกสองชั้นนี้ทำให้คอมไพเลอร์มองงานได้สองระยะจากฮาร์ดแวร์ HFusion วิเคราะห์โครงสร้างเทนเซอร์และโอกาสในการฟิวชัน ส่วน HIVM วิเคราะห์ว่าการคำนวณแต่ละ Tile ต้องใช้หน่วยความจำและทรัพยากรประมวลผลใด รวมถึงต้องเคลื่อนข้อมูลและจัดลำดับคำสั่งอย่างไร
โครงสร้าง HFusion/HIVM ยังคงเดิม แต่ชั้น HIVM ต้องรองรับรูปแบบการทำงานที่มากกว่าเส้นทาง SIMD ซึ่งอาศัยหน่วยความจำแบบเดิม โดยเนื้อหาที่เน้น Ascend 950 ระบุถึงการรองรับ SIMD ผ่านรีจิสเตอร์และ SIMT เพิ่มเติม 2
ใน SIMD แบบใช้รีจิสเตอร์ ข้อมูลจะถูกโหลดจากหน่วยความจำบนชิปเข้าสู่รีจิสเตอร์ ประมวลผลในรีจิสเตอร์ แล้วจึงเขียนกลับ การฟิวชันในระดับรีจิสเตอร์ยังช่วยให้ค่าระหว่างทางคงอยู่ในรีจิสเตอร์ข้ามหลายโอเปอเรเตอร์ได้ หากรูปแบบการคำนวณเอื้ออำนวย จึงอาจลดการโหลดและการเขียนข้อมูลซ้ำ 2
SIMT เปิดทางให้จัดการส่วนของโอเปอเรเตอร์ที่มีการเข้าถึงข้อมูลไม่เป็นระเบียบหรือมีการแยกแขนงของการทำงานได้เหมาะสมขึ้น แนวทางที่นำเสนอคือแยกส่วนที่เหมาะกับ SIMT ออกจากงานหนาแน่นซึ่งเหมาะกับ SIMD ใช้การแปลงที่แตกต่างกันกับแต่ละส่วน แล้วรวมผลกลับเข้าสู่การคำนวณเวกเตอร์โดยรวม 2
ในเส้นทางของ A2/A3 การส่งข้อมูลบางส่วนระหว่าง Cube กับ Vector ต้องผ่านหน่วยความจำส่วนกลาง แต่บน Ascend 950 เส้นทางที่นำเสนอสามารถส่งผลลัพธ์จาก Cube ใน L0C ไปยังหน่วยความจำบนชิปของ Vector และส่งผลลัพธ์จาก Vector กลับไปยังหน่วยความจำของ Cube ได้โดยตรงมากขึ้น 2
การเปลี่ยนแปลงนี้มีความสำคัญกับโอเปอเรเตอร์ที่ทำงานเมทริกซ์บน Cube แล้วต้องส่งต่อให้ Vector ประมวลผล อย่างไรก็ตาม คอมไพเลอร์ยังต้องวิเคราะห์ให้ได้ว่าเทนเซอร์อยู่ที่ใดและควรย้ายเมื่อใด โดยเฉพาะเมื่อการทำงานของ Cube และ Vector อยู่คนละแขนงของ Control Flow
ชื่อ Pass ต่าง ๆ ใน AscendNPU IR แสดงให้เห็นว่าคอมไพเลอร์เปลี่ยนนามธรรมระดับ Tile ให้เป็นการตัดสินใจด้านหน่วยความจำและการจัดตารางได้อย่างไร
InsertCVLoadStore รุ่นที่ได้รับการปรับปรุงสามารถวิเคราะห์การสื่อสารระหว่าง Cube กับ Vector ข้าม Control Flow ที่ซับซ้อน แทนการแทรกคำสั่งจากการจับรูปแบบเฉพาะที่เกิดขึ้นใกล้ ๆ กันเท่านั้น
กระบวนการนี้เริ่มจากการกำหนดจุดอ้างอิงของตำแหน่งหน่วยความจำ เช่น อินพุตของเมทริกซ์อยู่ใน L1 ผลลัพธ์เมทริกซ์อยู่ใน L0C และข้อมูลของ Vector อยู่ใน UB จากนั้นจึงเผยแพร่ข้อจำกัดเหล่านี้ขึ้นและลงตาม Control Flow เมื่อพบว่าโดเมนหน่วยความจำขัดแย้งกัน คอมไพเลอร์จะเติมการแปลงชนิดหรือการคัดลอกข้อมูลที่จำเป็น 2
สำหรับ A2/A3 การข้ามระหว่างบางโดเมนอาจใช้คำสั่งโหลดและจัดเก็บผ่านหน่วยความจำส่วนกลาง ขณะที่ Ascend 950 รองรับเส้นทางบนชิปที่สั้นกว่าในกรณีที่ฮาร์ดแวร์รองรับ 2
MultiBuffer ใช้แทนข้อมูลเทนเซอร์เดิมด้วยสำเนาหลายชุด แนวทางนี้รองรับการทำบัฟเฟอร์แบบ Ping-Pong และอาจช่วยให้การเคลื่อนย้ายข้อมูลทำงานทับซ้อนกับการคำนวณได้ หากงบหน่วยความจำและตารางการทำงานเอื้ออำนวย 17
18
AutoBlockify และ DynamicCVPipeline เป็น Pass เฉพาะของ Ascend ในสแต็กคอมไพเลอร์ Triton-Ascend โดยชื่อของทั้งสองสะท้อนงานหลักสองด้าน ได้แก่ การแบ่งการคำนวณออกเป็นบล็อกที่นำไปทำงานได้ และการสร้างพฤติกรรมของไปป์ไลน์ระหว่าง Cube กับ Vector 19
ฟีเจอร์ที่เอกสารระบุยังรวมถึงการวางแผนหน่วยความจำอัตโนมัติ การใส่จุดซิงโครไนซ์ การจัดตาราง และการปรับแต่งการทำงานร่วมกันของ Cube–Vector 24
การนำเสนอระบุถึงการกำหนดความสัมพันธ์แบบหนึ่งคอร์ Cube ต่อสองคอร์ Vector ในการตั้งค่าของ Ascend ที่เกี่ยวข้อง โดย AutoSubTiling สามารถแบ่งงานของ Vector ออกเป็นส่วน ๆ เพื่อให้คอร์ Vector ทั้งสองประมวลผลคนละส่วนพร้อมกันได้ 2
14
Huawei เปิดซอร์ส AscendNPU IR พร้อม Triton-Ascend เพื่อให้ชุมชนเข้ามาร่วมพัฒนา Triton-Ascend คือเฟรมเวิร์กคอมไพล์ Triton สำหรับแพลตฟอร์ม Ascend ซึ่งยังคงไวยากรณ์หลักของ Triton ไว้ พร้อมเพิ่มการคอมไพล์และการนำไปใช้งานที่ปรับให้เหมาะกับผลิตภัณฑ์ตระกูล A2, A3 และ 950 30
37
การเปิดซอร์สยังช่วยลดกำแพงสำหรับนักพัฒนาที่ต้องการทำงานกับ Pass ของคอมไพเลอร์ การเชื่อมต่อฟรอนต์เอนด์ การลดระดับโอเปอเรเตอร์ หรือการปรับแต่งให้เข้าใจฮาร์ดแวร์ โดยไม่จำเป็นต้องสร้างสแต็กคอมไพเลอร์ทั้งหมดขึ้นมาเอง
โครงการชุมชนที่มีการรายงานระบุถึงการฝึกงานที่เชื่อมโยงกับรีโพซิทอรีและภารกิจแบบมีรางวัล นักพัฒนาสามารถเลือกหรือรับผิดชอบงานที่ประกาศไว้ทีละงาน และส่งผลงานตามเงื่อนไขของโครงการ 31
ผู้ที่ไม่มีฮาร์ดแวร์ Ascend ในเครื่องสามารถทดลองผ่าน HiDevLab ซึ่งเป็นสภาพแวดล้อมคลาวด์ของชุมชน Ascend โดยมีโควตาคอมพิวต์ฟรี 100 ชั่วโมง อย่างไรก็ตาม ข้อมูลที่มีอยู่ยืนยันเฉพาะจำนวนชั่วโมงดังกล่าว ยังไม่ได้ระบุรายละเอียดทั้งหมดเกี่ยวกับคุณสมบัติ การยืนยันตัวตน วันหมดอายุ หรือการให้บริการในแต่ละภูมิภาค จึงควรตรวจสอบเงื่อนไขอีกครั้งเมื่อลงทะเบียน 31
ข้อเสนอหลักของ AscendNPU IR อยู่ที่สถาปัตยกรรมของคอมไพเลอร์ ไม่ใช่การเพิ่มภาษาโปรแกรมอีกหนึ่งภาษา แต่คือการสร้างฐานกลางที่ทำให้ฮาร์ดแวร์ Ascend เข้าถึงได้ผ่านฟรอนต์เอนด์มาตรฐาน ขณะเดียวกันก็ยังมีเส้นทางสำหรับการจูนระดับฮาร์ดแวร์อย่างละเอียด
Triton, TileLang และ IR จากเฟรมเวิร์กต่าง ๆ สามารถเข้ามาในระดับนามธรรมที่เหมาะสม HFusion รับช่วงการฟิวชันและการจัดการงานในภาพรวม ส่วน HIVM ลดระดับ Tile ลงสู่การตัดสินใจเกี่ยวกับหน่วยความจำ คอร์ การสื่อสาร และไปป์ไลน์ที่จำเป็นต่อการทำงานบน Ascend 5
11
Ascend 950 ขยายเพดานการปรับแต่งด้วย SIMD ผ่านรีจิสเตอร์, SIMT และเส้นทางข้อมูล Cube–Vector บนชิปที่ใกล้กันมากขึ้น แต่ประสิทธิภาพจริงยังขึ้นอยู่กับรูปร่างของโอเปอเรเตอร์ แรงกดดันด้านหน่วยความจำ Control Flow ความพร้อมของคอมไพเลอร์ และชิปรุ่นเป้าหมาย
สิ่งที่การเปิดซอร์สมอบให้ชัดเจนกว่าตัวเลขประสิทธิภาพในระยะสั้น คือความสามารถในการตรวจสอบและปรับปรุงชั้นต่าง ๆ ของสแต็กได้มากขึ้น พร้อมเปิดพื้นที่ให้นักพัฒนาคอมไพเลอร์และโอเปอเรเตอร์เข้ามามีส่วนร่วมโดยตรง
Studio Global AI
หน้านี้รวมคำตอบที่ได้รับการสนับสนุนจากแหล่งที่มาซึ่งคุณสามารถดำเนินการต่อภายใน Studio Global
Huawei เปิดซอร์ส AscendNPU IR ซึ่งเป็นรากฐานคอมไพเลอร์แบบ MLIR ใต้ BiSheng หลัง Hai Lijuan นำเสนอในการเสวนา Meet AI Compiler ครั้งที่ 9 เมื่อวันที่ 1 สิงหาคม 2026
Huawei เปิดซอร์ส AscendNPU IR ซึ่งเป็นรากฐานคอมไพเลอร์แบบ MLIR ใต้ BiSheng หลัง Hai Lijuan นำเสนอในการเสวนา Meet AI Compiler ครั้งที่ 9 เมื่อวันที่ 1 สิงหาคม 2026 HFusion รับผิดชอบการฟิวชัน การแบ่ง Tile และการจัดตารางงานในระดับที่ยังไม่ผูกกับฮาร์ดแวร์มากนัก ส่วน HIVM จัดการการแมปลงคอร์ Cube และ Vector หน่วยความจำบนชิป ไปป์ไลน์ และคำสั่งของ NPU
สำหรับ Ascend 950 สแต็กดังกล่าวเพิ่มการรองรับ SIMD ที่ทำงานผ่านรีจิสเตอร์, SIMT และเส้นทางแลกเปลี่ยนข้อมูล Cube–Vector บนชิปที่ใกล้กันมากขึ้น