อ่าน 5 นาที
บล็อกจุดลอยตัว
จุดลอยตัวแบบบล็อก ( BFP ) เป็นวิธีการที่ใช้ในการคำนวณเลขคณิตที่ใกล้เคียงกับ จุดลอยตัว ในขณะที่ใช้ โปรเซสเซอร์ จุดคงที่ BFP จะกำหนดกลุ่มของ ตัวเลขสำคัญ...
บล็อกจุดลอยตัว
| รูปแบบจุดลอยตัว |
|---|
| อีไออี 754 |
|
| อื่น |
| ทางเลือกอื่นๆ |
| จุดลอยตัวแบบเรียว |
จุดลอยตัวแบบบล็อก ( BFP ) เป็นวิธีการที่ใช้ในการคำนวณเลขคณิตที่ใกล้เคียงกับจุดลอยตัวในขณะที่ใช้ โปรเซสเซอร์ จุดคงที่ BFP จะกำหนดกลุ่มของตัวเลขสำคัญ (ส่วนที่ไม่ใช่เลขชี้กำลังของเลขจุดลอยตัว) ให้กับเลขชี้กำลังเดียว แทนที่จะกำหนดเลขชี้กำลังให้กับตัวเลขสำคัญแต่ละตัว BFP มีข้อดีในการจำกัดการใช้พื้นที่ในฮาร์ดแวร์เพื่อดำเนินการฟังก์ชันเดียวกันกับอัลกอริทึมจุดลอยตัว โดยการใช้เลขชี้กำลังซ้ำ นอกจากนี้ยังสามารถดำเนินการกับค่าหลายค่าระหว่างบล็อกได้ด้วยการคำนวณที่ลดลง[ 1 ]
เลขชี้กำลังร่วมจะพบได้จากข้อมูลที่มีแอมพลิจูดสูงสุดในบล็อก ในการหาค่าของเลขชี้กำลัง ต้องหาจำนวนศูนย์นำหน้า ( นับศูนย์นำหน้า ) เพื่อให้สามารถทำเช่นนี้ได้ จำนวนการเลื่อนซ้ายที่จำเป็นสำหรับข้อมูลจะต้องถูกทำให้เป็นมาตรฐานตามช่วงไดนามิกของโปรเซสเซอร์ที่ใช้ โปรเซสเซอร์บางตัวมีวิธีการค้นหาสิ่งนี้ด้วยตนเอง เช่น คำสั่งการตรวจจับเลขชี้กำลังและการทำให้เป็นมาตรฐาน[ 2 ] [ 3 ]
อัลกอริทึมจุดลอยตัวแบบบล็อกได้รับการศึกษาอย่างกว้างขวางโดยJames Hardy Wilkinson [ 4 ] [ 5 ] [ 6 ]
สามารถสร้าง BFP ขึ้นใหม่ในซอฟต์แวร์เพื่อเพิ่มประสิทธิภาพได้เล็กน้อย
รูปแบบไมโครสเกลลิ่ง (MX)
รูปแบบไมโครสเกลลิ่ง (MX) เป็นรูปแบบข้อมูล Block Floating Point (BFP) ประเภทหนึ่งที่ออกแบบมาโดยเฉพาะสำหรับงาน AI และแมชชีนเลิร์นนิง ตัวเลขจุดลอยตัวขนาดเล็กมาก (minifloats) ถูกนำมาใช้ในแมชชีนเลิร์นนิงเพื่อเพิ่มประสิทธิภาพ แต่เช่นเดียวกับตัวเลขจุดคงที่ ตัวเลขเหล่านี้มีข้อจำกัดเรื่องช่วงค่าที่สามารถแสดงได้ การใช้เลขชี้กำลังร่วมกันทำให้สามารถเพิ่มช่วงค่าที่สามารถแสดงได้โดยใช้พื้นที่และประสิทธิภาพน้อยลง[ 7 ] [ 8 ]รูปแบบ MX ซึ่งได้รับการรับรองและกำหนดมาตรฐานโดยผู้เล่นหลักในอุตสาหกรรม เช่น AMD, Arm, Intel, Meta, Microsoft, NVIDIA และ Qualcomm ถือเป็นความก้าวหน้าครั้งสำคัญในรูปแบบข้อมูลความแม่นยำต่ำสำหรับ AI [ 9 ]
รูปแบบ MX ประกอบด้วยบล็อกของ องค์ประกอบ k (โดยปกติจะตั้งค่าเป็น 32) โดยแต่ละองค์ประกอบมี ความยาว dบิต องค์ประกอบเหล่านี้ใช้ตัวคูณขนาดwบิตร่วมกัน ดังนั้นบล็อกทั้งหมดจึงมี ขนาด w + kdบิต ประเภทข้อมูล MX มาตรฐานประกอบด้วย: [ 10 ]
| ชื่อ | ประเภทข้อมูลองค์ประกอบ | ง | เค | ประเภทข้อมูลมาตราส่วน | ว | บิตต่อบล็อก |
|---|---|---|---|---|---|---|
| MXFP8 (E5M2) | FP8 (E5M2) | 8 | 32 | อี8เอ็ม0 | 8 | 264 |
| MXFP8 (E4M3) | FP8 (E4M3) | 8 | 32 | อี8เอ็ม0 | 8 | 264 |
| MXFP6 (E6M2) | FP6 (E3M2) | 6 | 32 | อี8เอ็ม0 | 8 | 200 |
| MXFP6 (E2M3) | FP6 (E2M3) | 6 | 32 | อี8เอ็ม0 | 8 | 200 |
| MXFP4 | FP4 (E2M1) | 4 | 32 | อี8เอ็ม0 | 8 | 136 |
| MXINT8 | อินที8 | 8 | 32 | อี8เอ็ม0 | 8 | 264 |
ในที่นี้ E8M0 เป็นส่วนเลขชี้กำลังของจำนวนทศนิยมความแม่นยำเดี่ยว ซึ่งสามารถแทนค่ากำลังของ 2 ได้ตั้งแต่ 2 −127ถึง 2 127โดยมีค่าเดียวสงวนไว้สำหรับ NaN สำหรับคำอธิบายเกี่ยวกับชนิดข้อมูล เช่น FP8-E5M2 โปรดดูที่Minifloat § Machine learning
รูปแบบ MX ได้รับการพิสูจน์แล้วว่ามีประสิทธิภาพในงาน AI ที่หลากหลาย รวมถึงโมเดลภาษาขนาดใหญ่ (LLM) การจำแนกภาพ การรู้จำเสียงพูด และระบบแนะนำ[ 11 ]ตัวอย่างเช่น MXFP6 ใกล้เคียงกับ FP32 สำหรับงานอนุมานหลังจากการปรับแต่งอย่างละเอียดโดยคำนึงถึงการควอนไทเซชัน และ MXFP4 สามารถใช้สำหรับการฝึกโมเดลภาษาแบบสร้างได้โดยมีข้อผิดพลาดด้านความแม่นยำเพียงเล็กน้อย
รูปแบบ MX ได้รับการกำหนดมาตรฐานผ่านโครงการ Open Compute Project (OCP) เป็นข้อกำหนด Microscaling Formats (MX) เวอร์ชัน 1.0 [ 9 ] [ 10 ]นอกจากนี้ยังมีการเผยแพร่ไลบรารีการจำลองเพื่อให้รายละเอียดเกี่ยวกับวิธีการทางวิทยาศาสตร์ข้อมูลและผลลัพธ์ที่เลือกของ MX ในการใช้งาน[ 12 ]
การพัฒนาเพิ่มเติม
รูปแบบ MXFP4 จัดกลุ่มมินิโฟลต 4 บิต 32 ตัวเข้าด้วยกันโดยมีช่วงไดนามิกต่ำมาก เพื่อลดข้อผิดพลาดจากการควอนไทเซชัน Nvidia ได้แนะนำ NVFP4 ซึ่งจัดกลุ่มตัวเลข FP4-E2M1 เพียง 16 ตัวในบล็อกเดียว และเปลี่ยนตัวคูณสเกลเป็น E4M3 เพื่อความแม่นยำยิ่งขึ้น เพื่อให้ได้ช่วงไดนามิกกลับคืนมา บล็อกจำนวนมากในเทนเซอร์จึงอยู่ภายใต้ตัวคูณสเกล fp32 (E8M23) ร่วมกันสำหรับการตั้งค่าสองชั้น ไม่มีการใช้ตัวเลข M0 สำหรับการปรับขนาด ดังนั้นการปรับขนาดทั้งหมดจึงต้องใช้การคูณจริงแทนการเลื่อนบิตหรือการจัดการส่วนเลขชี้กำลังของค่าจุดลอยตัวอย่างง่าย[ 13 ]
การเปรียบเทียบ MXFP4 และ NVFP4 ซึ่งแต่ละตัวมีความยาว 4 บิต ( d ) ประกอบด้วยบล็อกของ องค์ประกอบ k ตัวและใช้ตัวคูณขนาด 8 บิต ( w ) ร่วมกัน ดังนั้นบล็อกทั้งหมดจึงมีขนาด d · k + w บิต:
| ชื่อ | ประเภทข้อมูลองค์ประกอบ | ง | เค | ประเภทข้อมูลมาตราส่วน | ว | บิตต่อบล็อก |
|---|---|---|---|---|---|---|
| MXFP4 | FP4 (E2M1) | 4 | 32 | อี8เอ็ม0 | 8 | 136 |
| เอ็นวีเอฟพี4 | FP4 (E2M1) | 4 | 16 | อี4เอ็ม3 | 8 | 72 |
การรองรับฮาร์ดแวร์
การรองรับฮาร์ดแวร์สำหรับ BFP มีอยู่สองชั้น ได้แก่ การรองรับชนิดข้อมูลพื้นฐานของสมาชิก (จำนวนเต็มแบบจุดคงที่หรือมินิโฟลต) และการดำเนินการปรับขนาดที่รวดเร็วยิ่งขึ้น
BFP ที่มีองค์ประกอบจุดคงที่
- d-Matrix Jayhawk II รองรับ BFP12, BFP16 และ SBFP12 [ 14 ]ชนิดข้อมูลเหล่านี้เป็น BFP แบบจุดคงที่: BFP12 หมายถึงการมีเลขชี้กำลัง 8 บิตที่ใช้ร่วมกันกับกลุ่มขององค์ประกอบ UINT4, BFP16 หมายถึงการมีเลขชี้กำลัง 8 บิตที่ใช้ร่วมกันกับกลุ่มขององค์ประกอบ UINT8 และ SBFP12 หมายถึงการมีเลขชี้กำลัง 8 บิตที่ใช้ร่วมกันกับกลุ่มขององค์ประกอบ INT4 ที่มีเครื่องหมาย[ 15 ]
- Tenstorrent Grayskull e75 และ e150 รวมถึง Wormhole n150 และ n300 รองรับสิ่งที่ผู้ผลิตเรียกว่า BFP8, BFP4 และ BFP2 [ 16 ]สมาชิกเหล่านี้ไม่มีเลขชี้กำลังของตัวเอง กล่าวอีกนัยหนึ่งคือ เป็นจุดคงที่แบบปรับขนาด[ 17 ]
- AMD Strix Point APU (ใช้ชื่อทางการค้าว่าRyzen AI 300 series) รองรับ Block FP16 ในหน่วยประมวลผลประสาท XDNA2 (NPU) [ 18 ] [ 19 ]อีกครั้ง องค์ประกอบไม่มีเลขชี้กำลังของตัวเอง[ 20 ]
BFP พร้อมองค์ประกอบลอยตัวขนาดเล็ก
การประมวลผลแบบขนานของตัวเลข minifloat นั้นซับซ้อนกว่าการจำลองในซอฟต์แวร์เมื่อเทียบกับการประมวลผลจำนวนเต็มแบบแพ็ค ดังนั้น การสนับสนุนฮาร์ดแวร์สำหรับ minifloat จึงมีความสำคัญอย่างยิ่งในการรองรับ BFP-with-minifloat
- โปรเซสเซอร์x86 ที่ใช้ชุดส่วนขยาย AVX10.2รองรับรูปแบบ OCP-FP8 E5M2 และ E4M3 ในรูปแบบแพ็ค ส่วนขยายนี้ไม่ได้เพิ่มการปรับขนาดบล็อกแบบเร่งความเร็ว ซึ่งสามารถทำได้โดยใช้การดำเนินการที่มีอยู่แบบเดี่ยว[ 21 ]
- GPU AMD Instinctรองรับ OCP-FP8 และ MXFP8 แบบแพ็ค (E5M2, E4M3) ตั้งแต่CDNA 3 CDNA 4 เพิ่มการรองรับ MXFP4 และ MXFP6 นอกจากนี้ CDNA 4 ยังรองรับ MXINT8 ซึ่งเป็นรูปแบบที่มีองค์ประกอบจุดคงที่อีกด้วย
- คอร์เทนเซอร์ของ GPU ของ Nvidia รองรับ FP8 ตั้งแต่Hopper (สถาปัตยกรรมไมโคร) FP4 และ FP6 ถูกเพิ่มเข้ามาในBlackwell (สถาปัตยกรรมไมโคร) [ 22 ] ขนาด 32 ไบต์ของรูปแบบ MX เหมาะสมกับโครงสร้างของคอร์เทนเซอร์ซึ่งยังให้การปรับขนาดฮาร์ดแวร์แบบเร่งความเร็วอีกด้วย[ 23 ] Blackwell ยังให้การปรับขนาดแบบเร่งความเร็วสำหรับ NVFP4 อีกด้วย[ 13 ]
- ตัวเร่งความเร็ว Intel Gaudi 2 และรุ่นต่อมายังรองรับ FP8 ด้วย[ 24 ]
BFP ประเภทอื่นๆ
- AMD Versal AI Edge Series Gen 2 รองรับชนิดข้อมูล MX6 และ MX9 ชนิดข้อมูลเหล่านี้มีการแบ่งปันเลขชี้กำลังแบบสองระดับ ซึ่งเป็นการประนีประนอมระหว่าง MX มาตรฐานและ BFP ที่ใช้จุดคงที่[ 25 ]ฮาร์ดแวร์ยังรองรับการดำเนินการ INT8 ที่รวดเร็วสำหรับการใช้งานใน BFP แบบดั้งเดิม[ 26 ]
ดูเพิ่มเติม
อ่านเพิ่มเติม
- "การปรับขนาดจุดลอยตัวแบบบล็อก FFT/IFFT" (PDF) (เอกสารประกอบการใช้งาน) ซานโฮเซ รัฐแคลิฟอร์เนีย สหรัฐอเมริกา: บริษัท Altera Corporationตุลาคม 2548 404-1.0 เก็บถาวร(PDF)จากต้นฉบับเมื่อ 11 กรกฎาคม 2561 เรียกดูเมื่อ 11 กรกฎาคม 2561
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ บล็อกจุดลอยตัว
จุดลอยตัวแบบบล็อก ( BFP ) เป็นวิธีการที่ใช้ในการคำนวณเลขคณิตที่ใกล้เคียงกับ จุดลอยตัว ในขณะที่ใช้ โปรเซสเซอร์ จุดคงที่ BFP จะกำหนดกลุ่มของ ตัวเลขสำคัญ...
รูปแบบไมโครสเกลลิ่ง (MX)
รูปแบบไมโครสเกลลิ่ง (MX) เป็นรูปแบบข้อมูล Block Floating Point (BFP) ประเภทหนึ่งที่ออกแบบมาโดยเฉพาะสำหรับงาน AI และแมชชีนเลิร์นนิง ตัวเลขจุดลอยตัวขนาดเล็กมาก (minifloats) ถูกนำมาใช้ในแมชชีนเลิร์นนิงเพื่อเพิ่มประสิทธิภาพ แต่เช่นเดียวกับตัวเลขจุดคงที่...
การพัฒนาเพิ่มเติม
รูปแบบ MXFP4 จัดกลุ่มมินิโฟลต 4 บิต 32 ตัวเข้าด้วยกันโดยมีช่วงไดนามิกต่ำมาก เพื่อลดข้อผิดพลาดจากการควอนไทเซชัน Nvidia ได้แนะนำ NVFP4 ซึ่งจัดกลุ่มตัวเลข FP4-E2M1 เพียง 16 ตัวในบล็อกเดียว และเปลี่ยนตัวคูณสเกลเป็น E4M3 เพื่อความแม่นยำยิ่งขึ้น...
การรองรับฮาร์ดแวร์
การรองรับฮาร์ดแวร์สำหรับ BFP มีอยู่สองชั้น ได้แก่ การรองรับชนิดข้อมูลพื้นฐานของสมาชิก (จำนวนเต็มแบบจุดคงที่หรือมินิโฟลต) และการดำเนินการปรับขนาดที่รวดเร็วยิ่งขึ้น