รูปแบบตัวเลข Posit แสดงให้เห็นศักยภาพแต่ยังเผชิญอุปสรรคในการนำไปใช้งานจริง

ทีมชุมชน BigGo
รูปแบบตัวเลข Posit แสดงให้เห็นศักยภาพแต่ยังเผชิญอุปสรรคในการนำไปใช้งานจริง

ตัวเลข 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 น่าจะยังคงเป็นมาตรฐานในอนาคตอันใกล้

อ้างอิง: posit thin triangle other tricks! (REVEALED!)