กลับไปหน้าบทความ

อ่าน 5 นาที

บล็อกจุดลอยตัว

จุดลอยตัวแบบบล็อก ( BFP ) เป็นวิธีการที่ใช้ในการคำนวณเลขคณิตที่ใกล้เคียงกับ จุดลอยตัว ในขณะที่ใช้ โปรเซสเซอร์ จุดคงที่ BFP จะกำหนดกลุ่มของ ตัวเลขสำคัญ...

บล็อกจุดลอยตัว

จุดลอยตัวแบบบล็อก ( 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)832อี8เอ็ม08264
MXFP8 (E4M3)FP8 (E4M3)832อี8เอ็ม08264
MXFP6 (E6M2)FP6 (E3M2)632อี8เอ็ม08200
MXFP6 (E2M3)FP6 (E2M3)632อี8เอ็ม08200
MXFP4FP4 (E2M1)432อี8เอ็ม08136
MXINT8อินที8832อี8เอ็ม08264

ในที่นี้ 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 บิต:

ชื่อประเภทข้อมูลองค์ประกอบเคประเภทข้อมูลมาตราส่วนบิตต่อบล็อก
MXFP4FP4 (E2M1)432อี8เอ็ม08136
เอ็นวีเอฟพี4FP4 (E2M1)416อี4เอ็ม3872

การรองรับฮาร์ดแวร์

การรองรับฮาร์ดแวร์สำหรับ 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
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Block_floating_point&oldid=1344927111 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ บล็อกจุดลอยตัว

จุดลอยตัวแบบบล็อก ( BFP ) เป็นวิธีการที่ใช้ในการคำนวณเลขคณิตที่ใกล้เคียงกับ จุดลอยตัว ในขณะที่ใช้ โปรเซสเซอร์ จุดคงที่ BFP จะกำหนดกลุ่มของ ตัวเลขสำคัญ...

รูปแบบไมโครสเกลลิ่ง (MX)

รูปแบบไมโครสเกลลิ่ง (MX) เป็นรูปแบบข้อมูล Block Floating Point (BFP) ประเภทหนึ่งที่ออกแบบมาโดยเฉพาะสำหรับงาน AI และแมชชีนเลิร์นนิง ตัวเลขจุดลอยตัวขนาดเล็กมาก (minifloats) ถูกนำมาใช้ในแมชชีนเลิร์นนิงเพื่อเพิ่มประสิทธิภาพ แต่เช่นเดียวกับตัวเลขจุดคงที่...

การพัฒนาเพิ่มเติม

รูปแบบ MXFP4 จัดกลุ่มมินิโฟลต 4 บิต 32 ตัวเข้าด้วยกันโดยมีช่วงไดนามิกต่ำมาก เพื่อลดข้อผิดพลาดจากการควอนไทเซชัน Nvidia ได้แนะนำ NVFP4 ซึ่งจัดกลุ่มตัวเลข FP4-E2M1 เพียง 16 ตัวในบล็อกเดียว และเปลี่ยนตัวคูณสเกลเป็น E4M3 เพื่อความแม่นยำยิ่งขึ้น...

การรองรับฮาร์ดแวร์

การรองรับฮาร์ดแวร์สำหรับ BFP มีอยู่สองชั้น ได้แก่ การรองรับชนิดข้อมูลพื้นฐานของสมาชิก (จำนวนเต็มแบบจุดคงที่หรือมินิโฟลต) และการดำเนินการปรับขนาดที่รวดเร็วยิ่งขึ้น