คืนก่อนที่ระบบควบคุมของตัวเร่ง AI แบบปรับโครงสร้างได้จะล่ม: MINISA ใช้ Virtual Neuron ลดการหยุดชะงักของคำสั่งจาก 96.9% ให้แทบไม่มีความสำคัญ

ส่วนที่คุ้มค่าที่สุดในการอ่านบทความนี้ซ้ำแล้วซ้ำเล่า ไม่ใช่เพราะมันออกแบบ “คำสั่งที่สั้นกว่า” อีกชุดหนึ่ง แต่เป็นเพราะมันชี้ให้เห็นอย่างชัดเจนว่า: เมื่อตัวเร่งความเร็วแบบกำหนดค่าใหม่ได้เริ่มรองรับการแมปและการสลับเค้าโครงข้อมูลที่หลากหลายมากขึ้น สิ่งแรกที่มักจะพังทลายไม่ใช่พลังการคำนวณ แต่เป็นระนาบควบคุม

ในช่วงไม่กี่ปีที่ผ่านมา เรื่องเล่าหลักของตัวเร่งความเร็ว AI คือ “ทำให้การคูณเมทริกซ์เร็วขึ้น” แต่เมื่อภาระงานมีความหลากหลายมากขึ้น เรื่องเล่านี้ก็ไม่สมบูรณ์อีกต่อไป ระบบอนุมานในปัจจุบันไม่เพียงแต่ให้บริการ CNN และ Transformer เท่านั้น แต่ยังต้องจัดการกับการเข้ารหัสแบบโฮโมมอร์ฟิก (FHE), การพิสูจน์ความรู้เป็นศูนย์ (ZKP), ตัวดำเนินการเทนเซอร์ที่ไม่ปกติ และสถานการณ์การอนุมานออนไลน์ที่รูปร่างเปลี่ยนแปลงตลอดเวลาระหว่างเลเยอร์และระหว่างคำขออีกด้วย สำหรับภาระงานประเภทนี้ อาร์เรย์ที่มีการไหลของข้อมูลคงที่มักจะตกอยู่ในสองปัญหาหลัก: หนึ่งคือการสูญเสียจากการเติมข้อมูล และสองคือความไม่ตรงกันของเค้าโครง และตัวเร่งความเร็วแบบกำหนดค่าใหม่ได้มีอยู่เพื่อหลีกเลี่ยงกับดักทั้งสองนี้

ปัญหาคือ การกำหนดค่าใหม่ได้นั้นไม่ได้ปราศจากต้นทุน

  • ฮาร์ดแวร์ยิ่งยืดหยุ่น การควบคุมก็ยิ่งละเอียด
  • การควบคุมยิ่งละเอียด “ร่องรอย” ที่โปรแกรมทิ้งไว้ก็ยิ่งยาว
  • ร่องรอยยิ่งยาว การดึงคำสั่งนอกชิป, แคชคำสั่งบนชิป, การกำหนดค่าเครื่องกำเนิดที่อยู่, และการควบคุมเครือข่ายสลับก็ยิ่งกลายเป็นตัวการสำคัญ กลืนกินงบประมาณการขนส่งและการจัดเก็บข้อมูลที่ควรใช้สำหรับการคำนวณ

  • MINISA: สถาปัตยกรรมชุดคำสั่งขนาดเล็กที่สุดสำหรับตัวเร่งความเร็วอนุมานแบบกำหนดค่าใหม่ได้รุ่นถัดไป

  • https://arxiv.org/abs/2603.20623
  • คลังรหัส: https://github.com/maeri-project/FEATHER/tree/main/minisa
  • 9,000 คำ อ่าน 35 นาที, พอดแคสต์ 22 นาที

จุด切入ของบทความ MINISA นั้นเฉียบคมมาก: เนื่องจากสถาปัตยกรรมอย่าง FEATHER ได้ผลักดัน “การสลับการไหลของข้อมูลและเค้าโครงร่วมกัน” ลงไปถึงชั้นฮาร์ดแวร์แล้ว ชั้นซอฟต์แวร์และ ISA ก็ไม่ควรยึดติดกับรูปแบบดั้งเดิมของ “การกำหนดค่าระดับสวิตช์ ระดับรอบสัญญาณนาฬิกา และระดับ PE ทีละตัว” อีกต่อไป ผู้เขียนไม่ได้ต้องการแก้ปัญหา “บีบรหัสควบคุมให้เล็กลงอีกนิด” แต่กำลังมองหาขอบเขตของนามธรรมใหม่

นี่คือเส้นเรื่องหลักของบทความนี้:

  • ทำไม Virtual Neuron (VN) จึงกลายเป็น粒度การเขียนโปรแกรมที่ “หยาบที่สุดแต่ไม่สูญเสียความยืดหยุ่น ละเอียดที่สุดแต่ไม่สิ้นเปลืองต้นทุนการควบคุม” ตามที่บทความกล่าวอ้าง
  • ทำไม FEATHER จำเป็นต้องพัฒนาเป็น FEATHER+
  • และทำไมผู้เขียนจึงสามารถบีบอัดการหยุดชะงักในการดึงคำสั่ง ซึ่งจะกินรอบไมโครคำสั่งถึง 96.9% ให้แทบไม่เห็นผล และบรรลุความเร่งแบบ end-to-end สูงถึง 31.6 เท่าบนการกำหนดค่า 16×256 ที่สำคัญกว่านั้น ผลประโยชน์นี้ไม่ได้จำกัดอยู่แค่โมเดล AI ใดโมเดลหนึ่ง แต่ครอบคลุมภาระงาน GEMM ที่มีโครงสร้างแตกต่างกันสามประเภท ได้แก่ GPT-OSS, FHE และ ZKP

รูปที่ 10: การวิเคราะห์อัตราเร่งแบบ end-to-end และการหยุดชะงัก เมื่อขนาดอาร์เรย์เล็ก (≤64PE) ค่าใช้จ่ายในการดึงไมโครคำสั่งสามารถถูกซ่อนไว้โดยกระบวนการคำนวณ อัตราเร่งใกล้เคียง 1; เมื่ออาร์เรย์ใหญ่ขึ้น การหยุดชะงักในการดึงคำสั่งของเส้นฐานเพิ่มขึ้นจาก 75.3% เป็น 96.9% กลายเป็นคอขวดด้านประสิทธิภาพที่ครอบงำ MINISA ขจัดการหยุดชะงักในการดึงคำสั่งได้อย่างสมบูรณ์ผ่านนามธรรม VN อัตราเร่งเพิ่มขึ้นเป็นเส้นตรงตามขนาดอาร์เรย์ โดยถึงจุดสูงสุดที่ 31.6 เท่าบนอาร์เรย์ 16×256 สรุป: นามธรรมระดับ VN แก้ปัญหาคอขวดของคำสั่งสำหรับตัวเร่งความเร็วแบบกำหนดค่าใหม่ได้ขนาดใหญ่ได้อย่างแม่นยำ ยิ่งอาร์เรย์ใหญ่ ผลการปรับให้เหมาะสมยิ่งเด่นชัด

ผลงานที่สำคัญที่สุดของ MINISA ไม่ใช่ “การลดจำนวนคำสั่งลงบ้าง” แต่เป็น การยกระดับมุมมองการเขียนโปรแกรมของฮาร์ดแวร์ที่กำหนดค่าใหม่ได้ จากการเขียนโปรแกรมระดับสวิตช์ ไปสู่การเขียนโปรแกรมระดับ VN ที่สอดคล้องกับ粒度การคำนวณอะตอมของฮาร์ดแวร์ เมื่อเลือกนามธรรมนี้ถูกต้องแล้ว ค่าใช้จ่ายในการควบคุมจะไม่失控อีกต่อไปเมื่อขนาดอาร์เรย์ขยายใหญ่ขึ้น

รูปที่ 12: ผลการลดค่าใช้จ่ายของคำสั่ง ภายใต้อาร์เรย์ 16×256 MINISA ลดค่าเฉลี่ยเรขาคณิตของจำนวนไบต์คำสั่งลง 2×10^5 เท่า เมื่อเทียบกับไมโครคำสั่ง แสดงอัตราส่วนข้อมูลต่อคำสั่งภายใต้ขนาดอาร์เรย์ต่างๆ ปริมาตรคำสั่งของไมโครคำสั่งอาจสูงถึง 100 เท่าของข้อมูล ในขณะที่ MINISA ลดลงจนอยู่ในระดับที่ละเลยได้ การบีบอัดปริมาตรคำสั่งอย่างถึงรากถึงโคนทำให้การดึงคำสั่งนอกชิปไม่ใช่เส้นทางวิกฤตอีกต่อไป ขจัดคอขวดของคำสั่งสำหรับอาร์เรย์ขนาดใหญ่ได้อย่างสมบูรณ์ ข้อมูลครอบคลุมภาระงานสามประเภท ได้แก่ FHE, ZKP และ LLM พิสูจน์ความเป็นสากลของการปรับให้เหมาะสม

สารบัญ

  • หนึ่ง. นิยามปัญหา: ทำไมสถาปัตยกรรมที่กำหนดค่าใหม่ได้จึงตายเพราะค่าใช้จ่ายในการควบคุมก่อน
  • สอง. จาก FEATHER สู่ FEATHER+: สิ่งที่บทความปรับปรุงก่อนไม่ใช่ ISA แต่เป็นแรงเสียดทานของฮาร์ดแวร์
  • สาม. ทำไมต้องเป็น Virtual Neuron: นวัตกรรมนามธรรมที่แท้จริงของบทความนี้
  • สี่. คำสั่งของ MINISA “เล็กที่สุด” ตรงไหน
    • 4.1 คำสั่งเค้าโครงสามคำสั่ง: ไม่ได้อธิบายตัวข้อมูล แต่บรรยายว่า VN ตกลงไปใน buffer อย่างไร
    • 4.2 ExecuteMapping: ย่อ “วาง WVN ส่วนไหนลงใน PE ตัวไหน” ให้เหลือ 6 พารามิเตอร์
    • 4.3 ExecuteStreaming: รวมการใช้ซ้ำในมิติเวลาด้วยนามธรรมเดียวกัน
    • 4.4 โมเดลการทำงาน: ทำไม trace ของ MINISA จึงสั้นมาก
  • ห้า. มุมมองของคอมไพเลอร์: สิ่งที่บทความนำไปใช้จริงคือ “mapping-first, layout-second”
    • 5.1 กระบวนการเจ็ดขั้นตอนของ FEATHER+ mapper
    • 5.2 ทำไมสถานการณ์หลายเลเยอร์จึงเป็นส่วนที่ละเลยไม่ได้ของบทความนี้
  • หก. ผลการทดลอง: บทความนี้พิสูจน์อะไรจริงๆ
    • 6.1 การตั้งค่าการทดลองไม่แคบ
    • 6.2 ผลประโยชน์ด้านระนาบควบคุม: ผลลัพธ์ที่แข็งแกร่งที่สุดของบทความ
    • 6.3 ควรเข้าใจการเปรียบเทียบกับ GPU และ TPU อย่างไร
    • 6.4 รูปร่างที่ไม่ปกติคือสนามรบหลักที่แท้จริงของบทความ
    • 6.5 ความสามารถในการขยายและค่าใช้จ่ายด้านทรัพยากร
  • เจ็ด. แผนภูมิและสูตร: อธิบายวิธีการหลักของบทความให้ชัดเจนด้วยภาพไม่กี่ภาพ
  • แปด. งานที่เกี่ยวข้อง: ตำแหน่งของ MINISA ในระบบพิกัดทางวิชาการ
    • 8.1 สาย ASIC AI ฟังก์ชันคงที่
    • 8.2 สายตัวเร่งความเร็วการไหลของข้อมูลที่กำหนดค่าใหม่ได้
    • 8.3 ภาระงานรูปแบบใหม่เช่น HE และ ZKP
  • เก้า. บทสรุปและแนวโน้ม
    • 9.1 สรุปผล
    • 9.2 การวิเคราะห์ขั้นสูง
    • 9.3 งานในอนาคต

หนึ่ง. นิยามปัญหา: ทำไมสถาปัตยกรรมที่กำหนดค่าใหม่ได้จึงตายเพราะค่าใช้จ่ายในการควบคุมก่อน

ข้อสังเกตที่เฉียบคมที่สุดของบทความคือ: คอขวดหลักของตัวเร่งความเร็ว AI ที่กำหนดค่าใหม่ได้ในปัจจุบัน ในหลายๆ ครั้ง ไม่ใช่ตัวอาร์เรย์การคำนวณเอง แต่เป็น ต้นทุนการควบคุมที่ต้องจ่ายเพื่อแสดงความยืดหยุ่น

รูปที่ 1: แผนภาพภาระงาน คอนโวลูชันถูกแปลงเป็นการคูณเมทริกซ์ผ่าน im2col ใช้รหัสสี: น้ำเงิน/เขียว/ม่วง/แดง แทนอินพุต (I), น้ำหนัก (W), ผลรวมย่อย (psum, P), เอาต์พุต (O) ตามลำดับ แผนภาพนี้ใช้สัญลักษณ์ einsum แบบขยายเพื่อสร้างแบบจำลองการคูณเมทริกซ์และคอนโวลูชันอย่างเป็นหนึ่งเดียว เช่น การคูณเมทริกซ์สามารถเขียนเป็น โดยที่ตัวยกกำหนดรูปร่าง ตัวห้อยกำหนดดัชนี แผนภาพนี้เป็นนามธรรมหลักของบทความในการปรับให้เข้ากับภาระงาน AI ที่หลากหลาย รหัสสีแยกประเภทเทนเซอร์อย่างชัดเจน ช่วยให้เข้าใจการไหลของข้อมูลและเค้าโครงได้ง่ายขึ้น สัญกรณ์นี้ครอบคลุมภาระงาน LLM, FHE, ZKP ฯลฯ เป็นมาตรฐานแบบครบวงจรสำหรับการออกแบบการแมปของ FEATHER+ และเป็นพื้นฐานของคำอธิบายภาระงานสำหรับการเขียนโปรแกรมด้วย粒度 Virtual Neuron (VN) ของ MINISA รับประกันความเข้ากันได้ของสถาปัตยกรรมกับภาระงานข้ามโดเมน

ก่อนที่ระนาบควบคุมของตัวเร่งความเร็ว AI ที่กำหนดค่าใหม่ได้จะพังทลาย: MINISA ใช้ Virtual Neuron บีบอัดการหยุดชะงักของคำสั่งจาก 96.9% ให้เหลือน้อยจนละเลยได้ (ตอนที่ 2)

จุดเริ่มต้นของการโต้แย้งของผู้เขียนไม่ซับซ้อน ภาระงานอนุมาน AI สมัยใหม่พึ่งพาการคูณเมทริกซ์และการดำเนินการคอนโวลูชันอย่างมาก และคอนโวลูชันสามารถแปลงเป็นการคูณเมทริกซ์ได้ผ่านวิธี im2col ดังนั้นภาระงานส่วนใหญ่จึงสามารถแสดงออกในรูปแบบ einsum แบบขยายได้อย่างเป็นหนึ่งเดียว สำหรับตัวดำเนินการใดๆ ก็ตาม มีสององค์ประกอบหลักที่กำหนดประสิทธิภาพการทำงานอย่างแท้จริง:

  1. การแมป: วิธีการแบ่งบล็อก จัดเรียง ขนาน และลดรูปของแต่ละมิติ
  2. เค้าโครง: วิธีการจัดระเบียบเทนเซอร์ในบัฟเฟอร์บนชิปตามลำดับ粒度ละเอียด

ข้อจำกัดของสถาปัตยกรรมการไหลของข้อมูลคงที่แบบดั้งเดิมคือพื้นที่การแมปแคบเกินไป ในขณะที่คุณค่าของสถาปัตยกรรมที่กำหนดค่าใหม่ได้อย่าง FEATHER อยู่ที่การรวมความสามารถในการเลือกการไหลของข้อมูลและการสลับเค้าโครงเข้าไว้ในชุดฟังก์ชันรันไทม์ สิ่งที่บทความเน้นย้ำซ้ำแล้วซ้ำเล่า “การสลับร่วมกัน” (co-switching) โดยพื้นฐานแล้วหมายถึง “ภาระงานเดียวกัน สามารถสลับการไหลของข้อมูลและเค้าโครงบนชิปแบบไดนามิกก่อนและหลังการทำงานสำหรับรูปร่างที่แตกต่างกัน”

อย่างไรก็ตาม ความสามารถนี้ก็มีผลข้างเคียงเช่นกัน: หากทุกครั้งที่สลับ จำเป็นต้องอธิบายอย่างชัดเจนว่าเครือข่ายสลับหมุนอย่างไร, ที่อยู่ buffer ถูกสร้างอย่างไร, แต่ละ PE ได้รับข้อมูลส่วนไหน โปรแกรมจะพองตัวเป็นสตรีมไมโครคำสั่งขนาดใหญ่ ยิ่งสตรีมไมโครคำสั่งใหญ่ ปัญหาจะปรากฏอย่างน้อยสามระดับ:

  1. ปริมาณการรับส่งข้อมูลในการดึงคำสั่งนอกชิปเพิ่มขึ้น แย่งแบนด์วิธกับปริมาณข้อมูลโดยตรง
  2. บนชิปต้องการพื้นที่จัดเก็บคำสั่งที่ใหญ่ขึ้น มิฉะนั้นจะไม่สามารถรองรับ tile ขนาดใหญ่ได้
  3. หลังจาก tile ถูกบีบให้เล็กลงโดยสถานะควบคุม ความเข้มข้นทางคณิตศาสตร์ลดลง และปริมาณงานแบบ end-to-end ก็ถูกกัดกร่อนตามไปด้วย

ประเด็นที่ควรให้ความสนใจมากที่สุดในบทความนี้คือ ผู้เขียนไม่ได้มองว่าค่าใช้จ่ายในการควบคุมเป็น “รายละเอียดการนำไปใช้” แต่ยกระดับให้เป็นปัญหาลำดับต้นที่กำหนดว่าสถาปัตยกรรมที่กำหนดค่าใหม่ได้จะสามารถขยายได้จริงหรือไม่ ข้อมูล FEATHER+ ที่ให้ไว้ในบทความนั้น直观มาก:

  • บนอาร์เรย์ขนาดเล็ก การสิ้นเปลืองของไมโครคำสั่งยังสามารถถูก掩盖โดยกระบวนการคำนวณ
  • แต่เมื่ออาร์เรย์ขยายเป็น 4×64, 8×128, 16×256 การหยุดชะงักในการดึงคำสั่งจะเพิ่มขึ้นอย่างรวดเร็ว สูงสุดถึง 96.9%

ตารางที่ I: การหยุดชะงักในการดึงคำสั่งที่ชัดเจนของ FEATHER 4×4 เมื่อดำเนินการคูณเมทริกซ์ ข้อมูลแสดงให้เห็นว่าเมื่อขนาดอาร์เรย์ขยายใหญ่ขึ้น การหยุดชะงักในการดึงคำสั่งเพิ่มขึ้นอย่างรวดเร็ว อัตราส่วนการหยุดชะงักของอาร์เรย์ 16×256 สูงถึง 96.9% การควบคุมระดับละเอียดจะสร้างคำสั่งกำหนดค่าจำนวนมหาศาลบนอาร์เรย์ขนาดใหญ่ การดึงคำสั่งนอกชิปกลายเป็นคอขวดด้านประสิทธิภาพ ข้อมูลนี้เป็นแรงจูงใจหลักในการเสนอ MINISA พิสูจน์ว่าต้องยกระดับ粒度นามธรรมการควบคุมเพื่อขจัดคอขวดค่าใช้จ่ายในการควบคุมของตัวเร่งความเร็วที่กำหนดค่าใหม่ได้

กล่าวอีกนัยหนึ่ง ยิ่งอาร์เรย์ฮาร์ดแวร์ใหญ่ขึ้น หากนามธรรม ISA ยังคงเหมือนเดิม ระบบก็มีแนวโน้มที่จะเปลี่ยนจาก “ข้อจำกัดด้านพลังการคำนวณ” ไปเป็น “ข้อจำกัดด้านการควบคุม” มากขึ้น

นี่คือการตัดสินที่มักถูกมองข้ามแต่สำคัญอย่างยิ่ง: ผู้เขียนไม่ได้ปฏิเสธความสามารถในการกำหนดค่าใหม่ได้ แต่กำลังเน้นย้ำว่า “ความสามารถในการกำหนดค่าใหม่ได้ต้อง匹配กับนามธรรมการควบคุมในระดับที่สูงขึ้น” หากทำได้เพียงการจัดเรียงใหม่ สลับ และรองรับการไหลของข้อมูลหลายแบบในชั้นฮาร์ดแวร์ แต่ในชั้นซอฟต์แวร์ยังคงใช้วิธีการควบคุมแบบทีละสวิตช์ ความยืดหยุ่นของฮาร์ดแวร์จะจบลงด้วยหายนะด้านการควบคุมในที่สุด

สอง. จาก FEATHER สู่ FEATHER+: สิ่งที่บทความปรับปรุงก่อนไม่ใช่ ISA แต่เป็นแรงเสียดทานของฮาร์ดแวร์

MINISA ไม่ใช่ชุดคำสั่งที่เกิดขึ้นจากความว่างเปล่า มันถูกสร้างขึ้นบนพื้นฐานของการปรับปรุงไมโครสถาปัตยกรรมที่อ่อนโยนแต่สำคัญอย่าง FEATHER+

ข้อดีของ FEATHER ดั้งเดิมคือสามารถ实现การสลับการไหลของข้อมูลและเค้าโครงร่วมกันได้ด้วยต้นทุนที่ต่ำ จุดอ่อนของมันส่วนใหญ่แสดงในสองด้าน:

  1. ตัวถูกดำเนินการบางตัว โดยเฉพาะน้ำหนัก จำเป็นต้องถูกจัดเรียงใหม่แบบออฟไลน์ไปยังเค้าโครงที่เหมาะสมก่อนดำเนินการ
  2. การจัดเรียงใหม่นี้จะทำให้เกิดการคัดลอกซ้ำซ้อนในบัฟเฟอร์บนชิป และภายใต้ภาระงานแบบไดนามิก สมมติฐานนี้ก็ยากที่จะเป็นจริง

สำหรับสถานการณ์คงที่แบบคอนโวลูชัน สิ่งนี้ยังพอรับได้ แต่ สำหรับสถานการณ์การอนุมาน LLM ที่ทั้งอินพุตและน้ำหนักอาจเปลี่ยนแปลงตามรันไทม์แล้ว ไม่เป็นมิตรนัก ดังนั้น บทความจึงเสนอ FEATHER+ และการเปลี่ยนแปลงไม่รุนแรง โดยเน้นที่สามประเด็นหลัก:

  1. แทนที่การเชื่อมต่อแบบ point-to-point ทีละคอลัมน์จาก streaming/stationary buffer ไปยัง NEST ด้วยเครือข่ายการกระจายแบบ all-to-all อิสระ
  2. ลดความซับซ้อนของกลไก banking ของ streaming buffer เนื่องจากเมื่อ实现การกระจายแบบ fully interconnected แล้ว buffer ไม่จำเป็นต้องรับผิดชอบการเข้าถึงแบบ cross-bank ที่ซับซ้อนอีกต่อไป
  3. เพิ่มลิงก์จาก output buffer ไปยัง stationary buffer เพื่อให้เอาต์พุตของเลเยอร์ก่อนหน้าสามารถเป็นอินพุตของเลเยอร์ถัดไปได้อย่างเป็นธรรมชาติมากขึ้น โดยยังคงอยู่กับที่หรือไหลผ่านอาร์เรย์

ความสำคัญของการปรับเปลี่ยนสามประเด็นนี้ อาจถูกเข้าใจผิดได้ง่ายว่าเป็น “แพทช์ทางวิศวกรรม” แต่ในความเป็นจริงแล้ว มันมีบทบาท铺垫ที่สำคัญในตรรกะของบทความ

  • ประการแรก เครือข่ายการกระจายแบบ all-to-all ขจัดข้อจำกัดเดิมที่ว่า “ต้องคัดลอกข้อมูลชุดเดียวกันบนชิปอย่างชัดเจนเพื่อให้หลายคอลัมน์ใช้งานได้” ซึ่งหมายความว่า การสลับเค้าโครงไม่จำเป็นต้องมี前提ในการคัดลอกข้อมูลอีกต่อไป แต่สามารถ实现ได้ผ่านความหมายของการกระจาย
  • ประการที่สอง ทั้งอินพุตและน้ำหนักสามารถใช้เป็น stationary tensor ได้ในรันไทม์ ซึ่งหมายความว่าคอมไพเลอร์และ ISA ไม่จำเป็นต้อง预设อีกต่อไปว่า “ฝั่งไหนรู้ล่วงหน้าเสมอ”
  • สุดท้าย เอาต์พุตระหว่างเลเยอร์สามารถเปลี่ยนบทบาทที่จำเป็นสำหรับเลเยอร์ถัดไปได้โดยตรง ลดการเขียนกลับและการจัดระเบียบเค้าโครงที่ไม่จำเป็น

รูปที่ 2: มุมมองการเขียนโปรแกรมของ FEATHER+ ตัวเร่งความเร็วที่กำหนดค่าใหม่ได้นี้สามารถสลับการแมปและเค้าโครงร่วมกันได้ ภาพนี้แสดงแกนหลักฮาร์ดแวร์ของ FEATHER+: อาร์เรย์ PE, ครอสสวิตช์แบบ all-to-all, เครือข่ายลดรูป BIRRD และบัฟเฟอร์แบบลำดับชั้น เมื่อเทียบกับ FEATHER เครือข่ายการกระจายแบบ all-to-all ที่เพิ่มเข้ามาใหม่ช่วยขจัดความซ้ำซ้อนของข้อมูลบนชิป ลดความซับซ้อนของสตรีมบัฟเฟอร์ และเพิ่มลิงก์เอาต์พุต-固定บัฟเฟอร์ การปรับปรุงฮาร์ดแวร์เหล่านี้รองรับอินพุต/น้ำหนักแบบไดนามิก ปรับให้เข้ากับสถานการณ์ที่ข้อมูลเปลี่ยนแปลงในรันไทม์ของ LLM ให้การสนับสนุนฮาร์ดแวร์สำหรับการควบคุมต้นทุนต่ำของ MINISA ในขณะที่ใช้พื้นที่เพิ่มเพียงเล็กน้อย

รูปที่ 2 สอดคล้องกับมุมมองโปรแกรมเมอร์ของ FEATHER+ ในบทความต้นฉบับ สิ่งที่ควรค่าแก่การสังเกตอย่างแท้จริง ไม่ใช่แค่อุปกรณ์ต่างๆ เช่น NEST, BIRRD, Streaming Buffer, Stationary Buffer, Output Buffer แต่เป็นการแบ่งหน้าที่ความรับผิดชอบใหม่ระหว่างอุปกรณ์เหล่านี้: ความยืดหยุ่นของเค้าโครงไม่ได้พึ่งพาการคัดลอกบนชิปอีกต่อไป แต่พึ่งพานามธรรมของการกระจายและการแมป

หากไม่มี FEATHER+ MINISA จะสามารถแก้ปัญหาเพียงผิวเผินของ “คำสั่งยาวเกินไป” เมื่อมี FEATHER+ แล้ว MINISA จึงมีความหมายในทางปฏิบัติอย่างแท้จริงในการจัดการกับอินพุตแบบไดนามิก น้ำหนักแบบไดนามิก และหลีกเลี่ยงการคัดลอกซ้ำซ้อนบนชิป

บทความยัง定位 FEATHER+ อย่างยับยั้งชั่งใจ มันไม่ใช่ตัวเร่งความเร็ว全新 แต่เป็น “การเพิ่มประสิทธิภาพเล็กน้อย” ให้กับ FEATHER การยับยั้งชั่งใจนี้สำคัญ เพราะมันแสดงให้เห็นว่าจุดขายของบทความไม่ใช่ “การเขียนฮาร์ดแวร์ใหม่เพื่อแลกกับประสิทธิภาพ” แต่เป็น “การ追回ต้นทุนที่เคยสูญเปล่าไปกับการควบคุม โดยใช้การเพิ่มฮาร์ดแวร์เพียงเล็กน้อย” สิ่งนี้สะท้อนให้เห็นโดยตรงในการประเมินพื้นที่และ功耗ในภายหลัง: ค่าใช้จ่ายทรัพยากรของ FEATHER+ เมื่อเทียบกับ FEATHER เพิ่มขึ้นสูงสุดเพียงประมาณ 7% เท่านั้น

สาม. ทำไมต้องเป็น Virtual Neuron: นวัตกรรมนามธรรมที่แท้จริงของบทความนี้

แนวคิดหลักที่สุดของบทความไม่ใช่คำสั่งใดคำสั่งหนึ่ง แต่เป็น VN: มันทำให้粒度การเขียนโปรแกรมซอฟต์แวร์สอดคล้องกับ粒度การคำนวณอะตอมของฮาร์ดแวร์

ขนาดอาร์เรย์ PE ของ FEATHER+ คือ โดยที่ คือ ความยาวดอทโปรดักต์ขององค์ประกอบ ที่สามารถดำเนินการได้ภายใน PE แต่ละตัว (คือจำนวนรีจิสเตอร์ท้องถิ่นต่อ PE) และ คือจำนวนคอลัมน์ของอาร์เรย์ 粒度การคำนวณอะตอมของฮาร์ดแวร์ของ PE แต่ละตัวคือ ดอทโปรดักต์ขององค์ประกอบ

โดยที่ PE แต่ละตัวของ FEATHER+ ดำเนินการดอทโปรดักต์ขององค์ประกอบ ซึ่งเป็นอะตอมการคูณ-บวกที่เล็กที่สุดในชั้นฮาร์ดแวร์ ผู้เขียนจึงเสนอ VN หรือ Virtual Neuron: การตัดตัวถูกดำเนินการตามมิติการลดรูปให้เป็นส่วนย่อยที่มีความยาวไม่เกิน ทำให้ VN หนึ่งตัวสอดคล้องกับส่วนย่อยดอทโปรดักต์ที่เล็กที่สุดที่ PE หนึ่งตัวของฮาร์ดแวร์สามารถบริโภคได้พอดี

สิ่งนี้表面上ดูเหมือนเป็นการตั้งชื่อ แต่จริงๆ แล้วเป็นจุดเปลี่ยนของทั้งบทความ การตัดสินของผู้เขียนคือ:

  1. ถ้านามธรรมหยาบกว่า VN จะสูญเสียความสามารถในการแมปที่ยืดหยุ่นข้าม PE
  2. ถ้านามธรรมละเอียดกว่า VN จะกลับไปตกอยู่ในพื้นที่ที่มีค่าใช้จ่ายสูงของการควบคุมแบบทีละองค์ประกอบ ทีละสวิตช์

ดังนั้น VN จึงกลายเป็นขอบเขตที่ “พอดี”: ทั้งยังคง保留พื้นที่การกำหนดค่าใหม่ได้ที่มีประโยชน์ทั้งหมดของฮาร์ดแวร์ และไม่ต้องจ่ายค่าใช้จ่ายสำหรับรายละเอียดการควบคุมที่ไร้ความหมายอีกต่อไป

บทความ进一步กำหนด VN ประเภทต่างๆ สำหรับตัวถูกดำเนินการที่แตกต่างกัน:

  1. อินพุต VN คือ
  2. น้ำหนัก VN คือ
  3. ผลรวมย่อย VN คือ
  4. เอาต์พุต VN คือ

โดยที่ อินพุตและน้ำหนักถูกตัดตามมิติการลดรูป ยกตัวอย่างการคูณเมทริกซ์ มิติการลดรูปของอินพุตคือ และของน้ำหนักคือ หลังจากตัดแล้ว สิ่งที่คอมไพเลอร์ต้องเผชิญจะไม่ใช่การแมประดับองค์ประกอบอีกต่อไป แต่เป็นความสัมพันธ์เชิง组合ระหว่างอาร์เรย์ VN สองมิติ

ในเวลานี้ ข้อจำกัดการแมปสองข้อดั้งเดิมของ FEATHER+ จะเกิดการเปลี่ยนแปลงที่น่าสนใจ ข้อจำกัดดั้งเดิมข้อหนึ่งคือ “ข้อมูลทั้งหมดในรีจิสเตอร์ภายใน PE ตัวเดียวต้อง参与ดอทโปรดักต์เดียวกัน” และเมื่อนามธรรมซอฟต์แวร์ใช้ดอทโปรดักต์ขององค์ประกอบ เป็นอะตอมโดยตรงแล้ว ข้อจำกัดนี้ก็ถูกนามธรรม VN กลืนกินไปโดยอัตโนมัติ สิ่งที่เหลือให้ ISA และคอมไพเลอร์ต้องจัดการจริงๆ มีเพียงข้อจำกัดอีกข้อหนึ่ง: PE ในคอลัมน์เดียวกันต้อง复用อินพุต VN ตัวเดียวกันที่ไหลผ่านคอลัมน์นั้น

นี่คือประโยคที่สำคัญมากในบทความ: ภายใต้มุมมองของ VN พื้นที่การแมปที่ซับซ้อนของ FEATHER+ ถูกแยกตัวประกอบใหม่ การควบคุมไม่ได้หมุนรอบ “สวิตช์แต่ละตัวขยับอย่างไร” อีกต่อไป แต่หมุนรอบ “VN ตัวไหนถูกวางไว้ที่คอลัมน์ไหนและที่ขั้นตอนเวลาไหน”

รูปที่ 8: ขั้นตอนการ编译ของ FEATHER+ ขั้นตอนการ编译นี้รวมระบบนิเวศ ACT เข้ากับ FEATHER+ mapper โดย首先通过การวิเคราะห์ระดับกราฟเพื่อ定位พื้นที่ที่มีความยืดหยุ่นของเค้าโครง จากนั้นดำเนินการกลยุทธ์การค้นหา “แมปก่อน, เค้าโครงทีหลัง” แปลงโซลูชันที่ดีที่สุดเป็นคำสั่ง MINISA ขั้นตอนนี้ปรับให้เข้ากับโครงข่ายประสาทหลายชั้นและโครงสร้าง DAG รับประกันความเข้ากันได้ของเค้าโครงระหว่างเลเยอร์ ทำให้คำสั่ง MINISA สามารถสร้างขึ้นได้โดยอัตโนมัติ ลด门槛การเขียนโปรแกรมลงอย่างมาก ในขณะที่เพิ่มการใช้ประโยชน์ฮาร์ดแวร์ให้สูงสุด

จากมุมมองของการวิจัยสถาปัตยกรรม คุณค่าเชิงลึกของนามธรรมนี้เกินกว่าภาพลักษณ์ของ “การเข้ารหัสที่สั้นกว่า” ไปมาก เมื่อเลือก层级นามธรรมที่ถูกต้องแล้ว การออกแบบ ISA ที่ตามมา, การทำพารามิเตอร์พื้นที่การแมป, การค้นหาของคอมไพเลอร์, ความเข้ากันได้ของเค้าโครงระหว่างเลเยอร์ และการประมาณค่าขอบเขตบนของความกว้างบิตคำสั่ง จะกลายเป็นระบบและเป็นระเบียบ ความสำเร็จที่แท้จริงของ MINISA อยู่ที่การเปลี่ยนความสามารถในการกำหนดค่าใหม่ได้ของฮาร์ดแวร์ให้เป็นพื้นที่การตัดสินใจที่ไม่ต่อเนื่องและเป็นมิตรกับคอมไพเลอร์

สี่. คำสั่งของ MINISA “เล็กที่สุด” ตรงไหน

“เล็กที่สุด” ที่บทความนี้定义 ไม่ได้หมายถึงความขาดแคลนในด้านฟังก์ชัน แต่หมายถึงการ保留เฉพาะมิติการควบคุมที่จำเป็นอย่างยิ่งต่อการแสดงความยืดหยุ่นของฮาร์ดแวร์

ตารางที่ II: ภาพรวมคำสั่ง MINISA MINISA ใช้เพียง 8 คำสั่งในการ完成การกำหนดค่า การเข้าถึงหน่วยความจำ และการกระตุ้นการคำนวณ คำสั่งเหล่านี้ถูกแบ่งออกเป็นสี่ประเภทใหญ่: การตั้งค่าเค้าโครง, การดำเนินการแมป, การเข้าถึงหน่วยความจำ และการ激活 คำสั่งเค้าโครงใช้เพื่อกำหนดค่าเค้าโครงของ VN บนชิป ส่วนคำสั่งแมป负责ระบุการไหลของข้อมูลและกระตุ้นการคำนวณ ชุดคำสั่งที่精简นี้บีบอัดค่าใช้จ่ายในการควบคุมให้อยู่ในระดับต่ำมาก ในขณะที่ยังคง保留ความยืดหยุ่นในการแมปและเค้าโครงทั้งหมดของ FEATHER+ ไว้อย่างสมบูรณ์ เป็นแกนหลักในการ实现การควบคุมต้นทุนต่ำ

ชุดคำสั่ง MINISA ที่บทความให้ไว้มีทั้งหมด 8 คำสั่ง แต่ถ้าแบ่งตามหน้าที่การควบคุม สามารถแยกย่อยเป็นสองระดับ:

  1. คำสั่งกำหนดค่าและดำเนินการระดับ VN หลัก:
    • SetIVNLayout
    • SetWVNLayout
    • SetOVNLayout
    • ExecuteMapping
    • ExecuteStreaming
  2. คำสั่งข้อมูลและตัวดำเนินการประกอบ:
    • Load
    • Write
    • Activation

โดยที่ คำสั่งที่承担ภารกิจ “เปลี่ยนความสามารถในการกำหนดค่าใหม่ได้เป็นอินเทอร์เฟซนามธรรม” อย่างแท้จริงคือห้าคำสั่งแรก

4.1 คำสั่งเค้าโครงสามคำสั่ง: ไม่ได้อธิบายตัวข้อมูล แต่บรรยายว่า VN ตกลงไปใน Buffer อย่างไร

แนวคิดการออกแบบของคำสั่ง SetIVNLayout, SetWVNLayout และ SetOVNLayout นั้นเป็นหนึ่งเดียวกันอย่างมาก: พวกมัน不再อธิบายเค้าโครงในระดับองค์ประกอบ แต่แมปเทนเซอร์สองมิติเชิงตรรกะไปยัง buffer ทางกายภาพบนชิป โดยที่ แทนความลึก (จำนวนแถว) ของ buffer บนชิป และ แทนความกว้าง (จำนวนคอลัมน์) ความจุรวมของ buffer คือ องค์ประกอบ สามารถจัดเก็บ VN ได้ ตัว

บทความ分解กระบวนการอธิบายเค้าโครงนี้ออกเป็นสามขั้นตอน:

  1. เลือกปัจจัยการแบ่งบล็อก
  2. เลือกลำดับของแต่ละอันดับ (rank) หลังจากแบ่งบล็อก
  3. พับลำดับ VN ที่สร้างขึ้นลงใน buffer ทางกายภาพ

ยกตัวอย่างเมทริกซ์น้ำหนัก ผู้เขียน首先แบ่งสองอันดับออกเป็นสองระดับ:

และแสดงในรูปแบบดัชนี:

เนื่องจาก VN ได้กลืนกิน粒度ด้านในสุดของอันดับการลดรูป (reduction rank) ไปอย่าง固定แล้ว ดังนั้น ระดับความอิสระที่ต้องเข้ารหัสจริงๆ จึงเหลือเพียงลำดับการเรียงสลับของ 3 อันดับที่เหลือ ยกตัวอย่างน้ำหนัก VN รูปร่างดั้งเดิม หลังจากแบ่งบล็อกและ固定 VN แล้ว 3 อันดับอิสระที่เหลือคือ (การลดรูปมิติสูง), (ไม่ลดรูปมิติต่ำ), (ไม่ลดรูปมิติสูง) จำนวนลำดับการเรียงสลับของพวกมันมี ทั้งหมด ดังนั้นจึงต้องใช้เพียง 3 บิตในการเข้ารหัส

และเนื่องจากมีเพียง 3 อันดับ ลำดับการเรียงสลับที่ถูกต้องจึงมีเพียง ชนิด ดังนั้นบทความจึงใช้เพียง 3 บิตในการเข้ารหัสการเรียงสลับที่ถูกต้องทั้งหมด นี่เป็นผลลัพธ์ที่巧妙มาก: เมื่อระดับนามธรรมถูกยกระดับเป็น VN พื้นที่เค้าโครงไม่ได้หายไป แต่ถูกบีบอัดให้เป็น集合ที่ไม่ต่อเนื่องซึ่งเล็กแต่สมบูรณ์พอดี

ตารางที่ III: การเข้ารหัสการเรียงสลับ 3 บิตแบบครบวงจรสำหรับ VN ข้ามประเภท การใช้รหัส 3 บิตสามารถครอบคลุมการเรียงสลับอันดับที่ถูกต้อง 6 แบบ ตอบสนองความต้องการลำดับเค้าโครงของอินพุต น้ำหนัก และเอาต์พุต VN การเข้ารหัส 3 บิตนี้精简อย่างยิ่ง ลดค่าใช้จ่ายในการถอดรหัสฮาร์ดแวร์และการจัดเก็บคำสั่ง กฎการเข้ารหัสแบบครบวงจรช่วยให้คอมไพเลอร์สร้างคำสั่งเค้าโครงได้อย่างรวดเร็ว ในขณะที่确保ฮาร์ดแวร์รองรับเค้าโครงที่ถูกต้องทั้งหมด บรรลุความสมดุลที่สมบูรณ์แบบระหว่างความยืดหยุ่นและค่าใช้จ่าย

4.2 ExecuteMapping: ย่อ “วาง WVN ส่วนไหนลงใน PE ตัวไหน” ให้เหลือ 6 พารามิ


⚠️ หมายเหตุ: เนื้อหาได้รับการแปลโดย AI และตรวจสอบโดยมนุษย์ หากมีข้อผิดพลาดโปรดแจ้ง

☕ สนับสนุนค่ากาแฟทีมงาน

หากคุณชอบบทความนี้ สามารถสนับสนุนเราได้ผ่าน PromptPay

PromptPay QR
SCAN TO PAY WITH ANY BANK

本文来自网络搜集,不代表คลื่นสร้างอนาคต立场,如有侵权,联系删除。转载请注明出处:https://www.itsolotime.com/th/archives/34464

Like (0)
Previous 6 hours ago
Next 6 hours ago

相关推荐