โค้ดรองรับชุดคำสั่งขยายสำหรับการประมวลผลปัญญาประดิษฐ์(AI) ที่ชื่อ AI Compute Extension หรือ ACE ซึ่งออกแบบร่วมกันโดยเอเอ็มดี(AMD)และอินเทล(INTC) ได้ถูกรวมเข้ากับสาย GCC 17 แล้ว ถือเป็นจุดเริ่มต้นของการรองรับคอมไพเลอร์เพื่อเร่งความเร็วการประมวลผลเมทริกซ์บนโปรเซสเซอร์ x86
โปรเจกต์ GCC เปิดเผยคอมมิตที่รองรับชุดคำสั่ง ACEv1 เมื่อวันที่ 2 กันยายน โดยคอมมิตของ GCC ครอบคลุมฟังก์ชันในตัว(intrinsic)เฉพาะของ ACE การประมวลผลแบบ tile คำสั่งที่อิงจากผลคูณภายนอก(outer product) การคำนวณความละเอียดผสม FP8 และฟังก์ชันการเคลื่อนย้ายข้อมูลแบบ tile
ACE คือชุดคำสั่งขยายที่ออกแบบมาเพื่อให้โปรเซสเซอร์ x86 ประมวลผลการคูณเมทริกซ์ ซึ่งเป็นแกนหลักของการคำนวณในโมเดล AI ตามเอกสารไวท์เปเปอร์ ACEที่ AMD และ Intel ร่วมกันจัดทำ ระบุว่าเมื่อใช้จำนวนเวกเตอร์อินพุตของ AVX10 เท่ากัน การประมวลผลผลคูณภายนอกของ ACE จะให้ “ความหนาแน่นในการคำนวณ” สูงกว่าการคูณ-สะสม(multiply-accumulate)แบบเทียบเท่าของ AVX10 ได้สูงสุดถึง 16 เท่า
ตัวเลข 16 เท่านี้ไม่ได้หมายความว่าประสิทธิภาพโดยรวมของแอปพลิเคชันจะเพิ่มขึ้น 16 เท่า แต่เป็นตัวเลขที่เปรียบเทียบปริมาณงานทางทฤษฎีในโครงสร้างการคำนวณเมทริกซ์แบบเฉพาะเจาะจงเท่านั้น ส่วนประสิทธิภาพจริงยังขึ้นอยู่กับการออกแบบโปรเซสเซอร์ที่ติดตั้ง ACE และการนำไปใช้งานด้านซอฟต์แวร์
ACEv1 รองรับรูปแบบการคำนวณ AI ความละเอียดต่ำ อาทิ INT8, OCP FP8, OCP MXFP8, OCP MXINT8 และ BF16 ซึ่งการคำนวณความละเอียดต่ำมักถูกนำมาใช้ในงาน inference บางประเภท เพื่อลดปริมาณการใช้หน่วยความจำและภาระการคำนวณ
ACE นำโมเดลการเขียนโปรแกรมบางส่วนที่เกี่ยวข้องกับชุดคำสั่ง Advanced Matrix Extension(AMX)เดิมของอินเทลมาใช้ซ้ำ อย่างไรก็ตามคำอธิบายแพตช์ ACEv1บนเมลลิ่งลิสต์ของนักพัฒนา GCC ระบุว่าไม่ควรใช้ ACE ร่วมกับ AMX เดิม และทั้งสองใช้ชื่อฟังก์ชันในตัวที่แตกต่างกัน
ด้วยเหตุนี้ จึงยากที่จะบอกว่าโค้ดที่เขียนสำหรับ AMX เดิมจะรันบนโปรเซสเซอร์ที่รองรับ ACE ได้โดยไม่ต้องแก้ไขใดๆ แม้ ACE จะมีแนวคิดร่วมกับ AMX อยู่บ้าง แต่ก็ยังคงเป็นระบบชุดคำสั่งและฟังก์ชันในตัวที่แยกออกจากกัน
ฝั่ง LLVM ก็มีการเดินหน้าพัฒนาการรองรับ ACEv1 เช่นกัน โดยสาขาพัฒนา LLVMที่วิศวกรของ AMD อัปโหลดไว้ บันทึกการเปลี่ยนแปลงคอมไพเลอร์และ Clang สำหรับการประมวลผล tile ของ ACE คำสั่งผลคูณภายนอก การคำนวณ FP8 และการเคลื่อนย้ายข้อมูลแบบ tile
หัวใจสำคัญของความเปลี่ยนแปลงครั้งนี้อยู่ที่ระบบนิเวศซอฟต์แวร์ มากกว่าการเปิดตัวฮาร์ดแวร์ เมื่อคอมไพเลอร์สามารถรู้จักชุดคำสั่งและฟังก์ชันในตัวของ ACE ระบบปฏิบัติการ ไลบรารี และเฟรมเวิร์ก AI ก็จะมีพื้นฐานสำหรับการปรับแต่งให้เหมาะกับ ACE ในอนาคต
การที่คอมไพเลอร์รองรับไม่ได้หมายความว่าโปรเซสเซอร์ได้เปิดตัวจริงแล้ว จากข้อมูลที่เปิดเผยจนถึงขณะนี้ ยังไม่มีการยืนยันโปรเซสเซอร์เชิงพาณิชย์ที่รองรับ ACE หรือกำหนดวันเปิดตัวที่ชัดเจน
เอกสารสเปก ACEv1ที่ AMD และ Intel เผยแพร่ ระบุชัดเจนว่าผลิตภัณฑ์และโรดแมปยังอยู่ในขั้นตอนออกแบบ และอาจเปลี่ยนแปลงได้โดยไม่แจ้งล่วงหน้า ดังนั้นจึงยากที่จะสรุปว่ากรอบเวลาเปิดตัวที่มีการพูดถึงจากภายนอกเป็นกำหนดการอย่างเป็นทางการ
การที่ ACE จะถูกนำไปใช้งานจริงในอุตสาหกรรมได้ นอกจากต้องมีโปรเซสเซอร์ที่รองรับเปิดตัวแล้ว ยังต้องรอให้ GCC และ LLVM มีความเสถียรมากขึ้นด้วย ส่วนระบบปฏิบัติการ ไลบรารี และเฟรมเวิร์ก AI จะรองรับ ACE หรือไม่ ก็เป็นอีกปัจจัยที่ต้องติดตามต่อไป
การคำนวณเมทริกซ์ความละเอียดต่ำถูกนำมาใช้ในงาน inference ของ AI เพื่อลดปริมาณการใช้หน่วยความจำและภาระการคำนวณ อย่างไรก็ตาม รูปแบบที่รองรับจะนำไปสู่การเพิ่มประสิทธิภาพจริงได้มากน้อยเพียงใด ยังขึ้นอยู่กับโครงสร้างโปรเซสเซอร์และระดับการปรับแต่งซอฟต์แวร์
เมื่อโครงสร้างชุดคำสั่ง x86 ที่ AMD และ Intel เล็งเป้าร่วมกันถูกนำไปรวมไว้ในขั้นตอนพัฒนาของทั้ง GCC และ LLVM การเตรียมความพร้อมในระดับเครื่องมือสำหรับนักพัฒนาก็ถือว่าได้เริ่มต้นขึ้นแล้ว แต่การที่ ACE จะถูกนำไปใช้เชิงพาณิชย์ได้จริงหรือไม่ และประสิทธิภาพที่แท้จริงจะเป็นอย่างไร ยังต้องรอการเปิดเผยโปรเซสเซอร์ที่รองรับและการสนับสนุนด้านซอฟต์แวร์ก่อนจึงจะประเมินได้
ความคิดเห็น 0