ตัวเลข Posit ซึ่งเป็นทางเลือกแทนรูปแบบ IEEE floating-point มาตรฐานที่ใช้ในคอมพิวเตอร์ ได้จุดประกายการถกเถียงอย่างเข้มข้นในชุมชนเทคโนโลยีเกี่ยวกับคุณค่าในการใช้งานจริง แม้ว่าตัวเลขเหล่านี้จะสัญญาว่าจะให้ความแม่นยำที่ดีกว่าในสถานการณ์บางอย่าง แต่การนำไปใช้ในโลกแห่งความเป็นจริงยังเผชิญกับความท้าทายที่สำคัญซึ่งเน้นย้ำถึงช่องว่างระหว่างประโยชน์ในทางทฤษฎีกับการนำไปใช้งานจริง
Posit เป็นตัวแทนของรูปแบบตัวเลขรุ่นที่สามที่เสนอโดย John Gustafson เป็นทางเลือกแทนตัวเลข IEEE floating-point ต่างจากตัวเลข floating-point แบบดั้งเดิมที่กระจายความแม่นยำอย่างสม่ำเสมอทั่วทุกช่วงค่า Posit จะรวมความแม่นยำมากขึ้นรอบๆ ตัวเลขที่ใกล้เคียงกับศูนย์และหนึ่ง ซึ่งเป็นที่ที่การคำนวณจำนวนมากเกิดขึ้นตามธรรมชาติ
การเปรียบเทียบ Posit กับ IEEE Float
คุณสมบัติ | Posits | IEEE Float |
---|---|---|
การกระจายความแม่นยำ | เข้มข้นใกล้ศูนย์/หนึ่ง | สม่ำเสมอทุกช่วง |
ค่าพิเศษ | NaR เดียว (Not a Real) | รูปแบบ NaN หลายแบบ, ±0, ±∞ |
การทำนายข้อผิดพลาด | แปรผัน, ยากต่อการประมาณ | ข้อผิดพลาดสัมพัทธ์คงที่ |
การรองรับฮาร์ดแวร์ | จำกัด/ทดลอง | ใช้ได้ทั่วไป |
การแทนค่าบิต | Two's complement | Sign-magnitude |
การเรียงลำดับ | สามารถใช้การเรียงจำนวนเต็มโดยตรง | ต้องการการจัดการพิเศษ |
ความท้าทายในการนำไปใช้งานด้านฮาร์ดแวร์
อุปสรรคที่ใหญ่ที่สุดที่ Posit เผชิญคือความจำเป็นในการสนับสนุนฮาร์ดแวร์ใหม่ โปรเซสเซอร์และการ์ดจอในปัจจุบันได้รับการปรับให้เหมาะสมสำหรับการดำเนินการ IEEE floating-point ทำให้การคำนวณ Posit ช้าลงเมื่อทำงานบนระบบที่มีอยู่ หนึ่งในผู้สร้าง Posit คนแรกๆ ได้กล่าวว่าแม้พวกเขาจะประเมินว่าต้องการพื้นที่ชิปใกล้เคียงกับรูปแบบ IEEE แต่การดำเนินการคูณต้องการพื้นที่ทางกายภาพมากกว่าบนไดของโปรเซสเซอร์ สิ่งนี้สร้างปัญหาไข่กับไก่ที่นักพัฒนาซอฟต์แวร์จะไม่นำ Posit มาใช้หากไม่มีการสนับสนุนฮาร์ดแวร์ และผู้ผลิตชิปจะไม่เพิ่มการสนับสนุน Posit หากไม่มีความต้องการจากซอฟต์แวร์
การเติบโตของปัญญาประดิษฐ์คาดว่าจะขับเคลื่อนการนำรูปแบบตัวเลขทางเลือกมาใช้ แต่อุตสาหกรรมส่วนใหญ่หันไปใช้โซลูชันที่ง่ายกว่า เช่น จำนวนเต็ม 4 บิตพร้อมตัวคูณมาตราส่วน แทนที่จะนำระบบตัวเลขใหม่ทั้งหมดมาใช้
อุปสรรคหลักในการนำมาใช้
- ต้องการการสนับสนุนฮาร์ดแวร์ใหม่สำหรับโปรเซสเซอร์และ GPU
- การดำเนินการคูณต้องใช้พื้นที่ die ของชิปมากขึ้น
- การวิเคราะห์การแพร่กระจายของข้อผิดพลาดทำได้ยากมาก
- ระบบนิเวศซอฟต์แวร์ถูกสร้างขึ้นรอบรูปแบบ IEEE
- ความแม่นยำแบบผันแปรทำให้ขอบเขตข้อผิดพลาดในการคำนวณทางวิทยาศาสตร์คาดเดาไม่ได้
- อุตสาหกรรมเปลี่ยนไปใช้วิธีการ quantization ที่ง่ายกว่า (int4) สำหรับแอปพลิเคชัน AI
ข้อจำกัดในการคำนวณทางวิทยาศาสตร์
สำหรับการใช้งานทางวิทยาศาสตร์และวิศวกรรม Posit เผชิญกับปัญหาพื้นฐานในการวิเคราะห์ข้อผิดพลาด ตัวเลข IEEE floating-point รักษาข้อผิดพลาดสัมพัทธ์ที่ค่อนข้างคงที่ตลอดช่วงของมัน ทำให้สามารถประเมินได้ว่าข้อผิดพลาดสะสมผ่านการคำนวณที่ยาวนานอย่างไร อย่างไรก็ตาม Posit มีอัตราข้อผิดพลาดที่แปรผันขึ้นอยู่กับค่าจริงที่กำลังประมวลผล ทำให้การทำนายข้อผิดพลาดเป็นไปไม่ได้เกือบจะโดยไม่ต้องรันการคำนวณทั้งหมด
ความไม่สามารถทำนายได้นี้ทำให้ Posit ไม่เหมาะสมสำหรับการใช้งานทางวิทยาศาสตร์จำนวนมากที่นักวิจัยต้องการเข้าใจและจำกัดความไม่แน่นอนในผลลัพธ์ของพวกเขา ความแม่นยำที่เข้มข้นรอบศูนย์มาพร้อมกับต้นทุนของความแม่นยำที่ต่ำมากสำหรับตัวเลขที่ใหญ่กว่า สร้างการแลกเปลี่ยนที่ทำงานได้ดีเฉพาะเมื่อคุณสามารถรับประกันได้ว่าการคำนวณของคุณจะอยู่ในช่วงความแม่นยำสูง
ข้อได้เปรียบในทางปฏิบัติในกรณีเฉพาะ
แม้จะมีข้อจำกัดเหล่านี้ Posit ก็ยังมีข้อได้เปรียบที่น่าสนใจบางประการ พวกมันขจัดความแปลกประหลาดหลายอย่างของตัวเลข IEEE floating-point เช่น การมีทั้งศูนย์บวกและศูนย์ลบ การแสดงหลายรูปแบบของค่าที่ไม่ใช่ตัวเลข และกฎการปัดเศษที่ซับซ้อน Posit ใช้การแสดงแบบ two's complement ซึ่งทำให้การดำเนินการหลายอย่างง่ายขึ้นและอนุญาตให้อัลกอริทึมการเรียงลำดับเดียวกันที่ใช้สำหรับจำนวนเต็มทำงานโดยตรงกับตัวเลข Posit
ทุกอย่างเกี่ยวกับการเข้ารหัสของ Posit (เช่น NaR, ไม่มี -0.0, การเข้ารหัสเลขชี้กำลัง) ดีกว่ามาก ส่วนความแม่นยำแบบลดหลั่นของ Posit ในความคิดของผมเป็นส่วนที่น่าสนใจน้อยที่สุด
การทดสอบได้แสดงให้เห็นว่า Posit สามารถให้ความแม่นยำที่ดีกว่ารูปแบบ IEEE สำหรับปัญหาเฉพาะ โดยเฉพาะในการจำลองพลศาสตร์ของไหลที่ผลลัพธ์ระหว่างกลางมีแนวโน้มจะรวมกลุ่มรอบช่วงค่าบางช่วง
ข้อได้เปรียบทางเทคนิคหลักของ Posits
- ไม่มีศูนย์ที่มีเครื่องหมาย (แก้ไขปัญหา +0.0 กับ -0.0)
- มีค่า "Not a Real" ( NaR ) เพียงค่าเดียวแทนที่จะเป็นการแสดงผล NaN หลายแบบ
- การเข้ารหัสแบบ two's complement ช่วยให้การออกแบบวงจรง่ายขึ้น
- การเรียงลำดับบิตเหมือนกับจำนวนเต็มที่มีเครื่องหมายทำให้สามารถเรียงลำดับได้โดยตรง
- ความแม่นยำที่ดีกว่าสำหรับตัวเลขที่ใกล้เคียงกับ 1.0
- กฎการปัดเศษที่เรียบง่ายกว่าเมื่อเปรียบเทียบกับมาตรฐาน IEEE
สถานะปัจจุบันและแนวโน้มในอนาคต
มาตรฐานร่างสำหรับ Posit มีอยู่แล้ว แต่การนำมาใช้ในกระแสหลักยังคงไม่น่าจะเกิดขึ้นในระยะใกล้ รูปแบบนี้ทำงานได้ดีที่สุดสำหรับการใช้งานเฉพาะทางที่เข้าใจช่วงค่าได้ดีและประโยชน์ที่ได้รับสมเหตุสมผลกับต้นทุนการนำไปใช้ สำหรับการคำนวณทั่วไป ข้อได้เปรียบไม่เหนือกว่าการเปลี่ยนแปลงโครงสร้างพื้นฐานขนาดใหญ่ที่จำเป็น
เรื่องราวของ Posit แสดงให้เห็นความท้าทายทั่วไปในวิทยาการคอมพิวเตอร์: แม้แต่โซลูชันที่เหนือกว่าในทางเทคนิคก็อาจล้มเหลวในการได้รับการยอมรับเมื่อพวกมันต้องการการเปลี่ยนแปลงที่ประสานงานกันทั่วทั้งระบบนิเวศการคำนวณ แม้ว่า Posit อาจพบช่องทางในฮาร์ดแวร์เฉพาะทางหรือการใช้งานเฉพาะ แต่ตัวเลข IEEE floating-point น่าจะยังคงเป็นมาตรฐานในอนาคตอันใกล้