เอ็นวิเดีย (NVIDIA, $NVDA) เพิ่ม Ozaki-II ซึ่งเป็นวิธีจำลองการคูณเมทริกซ์ FP64 ใน cuBLAS ตั้งแต่ CUDA Toolkit 13.4 โดยระบุว่าการจำลองการคูณเมทริกซ์จำนวนเชิงซ้อนบน GPU B200 ทำประสิทธิภาพได้สูงสุด 295 TFLOPS ตัวเลขนี้เป็นค่าสูงสุดของเส้นทางคำนวณเฉพาะ ไม่ได้หมายความว่าการจำลองทางวิทยาศาสตร์ทั้งหมดจะทำงานด้วยความเร็วเท่ากัน
เอ็นวิเดียระบุใน บันทึกการออกรุ่น CUDA Toolkit 13.4.2 ว่าระบบจะใช้ Ozaki-II เมื่อมีข้อได้เปรียบด้านประสิทธิภาพเหนือ Ozaki-I รุ่นเดิม และรองรับ GPU ตั้งแต่สถาปัตยกรรม Ampere เป็นต้นไป FP64 เป็นรูปแบบความแม่นยำสองเท่าที่ใช้ในการคำนวณทางวิทยาศาสตร์และวิศวกรรม ส่วน cuBLAS เป็นไลบรารีสำหรับจัดการการคำนวณเมทริกซ์บน GPU
การจำลอง FP64 เริ่มเปิดให้เลือกใช้โดยอาศัย Ozaki-I ใน CUDA Toolkit 13.0 Update 2 จากนั้นเพิ่ม Ozaki-II ในรุ่น 13.4 ส่วนรุ่น 13.4.2 ระบุเป็นการอัปเดตต่อเนื่องในชื่อ “13.4 Update 1”
เอ็นวิเดียระบุประสิทธิภาพการจำลองสูงสุดบน B200 ไว้ที่ 175 TFLOPS สำหรับการคูณเมทริกซ์จำนวนจริง DGEMM และ 295 TFLOPS สำหรับการคูณเมทริกซ์จำนวนเชิงซ้อน ZGEMM ส่วน RTX PRO 6000 Blackwell Server Edition ทำได้สูงสุด 45 TFLOPS และ 70 TFLOPS ตามลำดับ ตัวเลขทั้งสี่ค่าเป็นค่าสูงสุดของการจำลองการคูณเมทริกซ์
อัลกอริทึม 2M ที่ใช้กับการคูณเมทริกซ์จำนวนเชิงซ้อน ลดจำนวนครั้งของการคูณเมทริกซ์จำนวนจริงจากปกติ 4 ครั้งเหลือ 2 ครั้ง NVIDIA Research อธิบายใน เอกสารวิจัยอัลกอริทึม 2M ว่าเมื่อใช้ร่วมกับ Ozaki-II จะประมวลผลการคูณเมทริกซ์จำนวนเชิงซ้อนได้ในเวลาราวสองเท่าของการคูณเมทริกซ์จำนวนจริงที่มีขนาดเท่ากัน
เส้นทางจำลองของ cuBLAS จะแปลงเมทริกซ์อินพุตเป็นรูปแบบเลขฐานจุดคงที่ จากนั้นใช้หน่วยประมวลผลของ GPU และนำผลลัพธ์ระหว่างทางมารวมกัน เอกสาร cuBLAS ของเอ็นวิเดีย อธิบายวิธีการและเงื่อนไขการรองรับไว้
ฟังก์ชันปรับความแม่นยำแบบไดนามิกอัตโนมัติจะคำนวณจำนวนบิตแมนทิสซาที่อินพุตต้องใช้ หากเกินขีดจำกัดที่ตั้งไว้ ระบบจะเปลี่ยนไปใช้การคำนวณ FP64 แบบปกติแทนการจำลอง เส้นทางคำนวณจริงจึงอาจแตกต่างกันตามอินพุตและเงื่อนไขด้านความแม่นยำ
CUDA Toolkit 13.4.2 ปรับปรุงการจัดสรรพื้นที่จากพูลหน่วยความจำแยกตามอุปกรณ์ เมื่อหน่วยความจำสำหรับการจำลองมีไม่เพียงพอ การเปลี่ยนแปลงนี้มีเป้าหมายเพื่อลดภาระจากการจัดสรรหน่วยความจำซ้ำสำหรับแต่ละแฮนเดิล
เอ็นวิเดียระบุในการอัปเดตเดียวกันว่าเพิ่มประสิทธิภาพสูงสุดของ ZGEMM บน GPU Rubin ได้ถึง 25% ตัวเลขนี้กล่าวถึงการคูณเมทริกซ์จำนวนเชิงซ้อน ไม่ใช่อัตราการปรับปรุงของการคำนวณประเภทอื่นหรือเวลาทำงานของโปรแกรมโดยรวม
ปริมาณงานสูงสุดของการจำลองการคูณเมทริกซ์ไม่เท่ากับประสิทธิภาพของแอปพลิเคชันทั้งหมด ผลลัพธ์จริงอาจแตกต่างตามสัดส่วนงานคูณเมทริกซ์ในงานนั้น เงื่อนไขของอินพุต และ GPU ที่ใช้
เอ็นวิเดียเคยรายงานกรณีจำลองด้วยวิธี Ozaki รุ่นก่อนว่า Quantum ESPRESSO ทำงานบน RTX PRO 6000 Blackwell Server Edition เร็วขึ้น 1.5 เท่าเมื่อเทียบกับการตั้งค่าเริ่มต้น ผลดังกล่าวไม่ได้มาจากการวัด Ozaki-II ใน CUDA 13.4 โดยตรง ตามที่ระบุใน บล็อกเทคนิคเกี่ยวกับ cuBLAS
cuBLAS Patch Release 13.8.2 แยกต่างหาก ซึ่งใช้กับ CUDA Toolkit 13.4 Update 1 แก้ข้อผิดพลาดที่พบไม่บ่อยในรูทีน BLAS3 จำนวนเชิงซ้อนบางรายการที่ใช้ Ozaki-II ข้อผิดพลาดอาจเกิดขึ้นระหว่างการหาผลคูณจุดของเวกเตอร์ที่เกือบขนานกัน เมื่อขนาดของแต่ละองค์ประกอบมีค่าใกล้เคียงกัน ตาม บันทึกการออกรุ่นแพตช์ cuBLAS
ขณะเดียวกัน บันทึกการออกรุ่น CUDA Toolkit 13.5.0 ระบุว่าข้อผิดพลาดที่พบไม่บ่อยใน Ozaki-II ลักษณะเดียวกันยังเป็นปัญหาที่ทราบแล้ว จากการตรวจสอบ คลัง CUDA Toolkit ของเอ็นวิเดีย ณ วันที่ 14 รุ่นล่าสุดคือ 13.5.0 ตาม บันทึกการออกรุ่น CUDA Toolkit 13.5
CUDA 13.5 ขยายการใช้ Ozaki-II ไปยังการคำนวณ rank-k บางประเภทสำหรับเมทริกซ์สมมาตรและเมทริกซ์เฮอร์มิเทียนด้วย การเปลี่ยนแปลงนี้เป็นการเพิ่มประเภทการคำนวณที่รองรับ แยกจากการจำลองการคูณเมทริกซ์จำนวนเชิงซ้อนที่เปิดตัวในรุ่น 13.4
การทดสอบพลศาสตร์โมเลกุล BF16x9 บน B300 ที่ TokenPost รายงานก่อนหน้านี้ เป็นกรณีจำลอง FP32 ซึ่งมีความแม่นยำและสิ่งที่วัดแตกต่างจากการจำลองการคูณเมทริกซ์ FP64 ครั้งนี้
Comment 0