Posits and Quires: Freeing Programmers from Mixed-Precision Decisions
Event Type
Focus Session
Energy Consumption
Performance Tools
Programming Models & Languages
Scientific Software Development
TimeTuesday, June 18th8:30am - 9am CEST
LocationPanorama 3
DescriptionWith the slowing of Moores law speed improvements, HPC programmers are discovering that trimming the unnecessary use of 64-bit floating-point representation can increase speed, lower energy/power costs, and relieve bandwidth bottlenecks. However, 32-bit IEEE floats often have too little accuracy for HPC tasks, and choosing where to use them is a burden for programmers.

Posit representation has more information-per-bit than IEEE floats, and 32-bit posits have proved 10 to 30 times as a accurate as 32-bit floats; moreover, they are backed by a Kulisch-style exact dot product, finally made practical by requiring only 512 bits (the "quire" register) instead of the thousands of bits needed in the past. Intel's AVX-512 vector instructions show that modern microprocessors are already up to the task of handling 512-bit quantities. Support for the quire means a compiler can automatically invoke iterative methods where higher precision is needed instead of requiring the programmer to make (risky) choices and decisions and complicate the code. Similarly, 16-bit posits have been shown to be very effective replacements for 32-bit floats, even for chaotic systems like weather and climate models. The quire provides a mathematically perfect way to measure the residual in solving systems of equations, so even 16-bit posits can sometimes outperform 64-bit floats at linear algebra operations.

With the emerging Posit Standard, which includes the quire, the benefits of mixed precision arithmetic need not create an additional burden for programmers. It can be, and should be, automatic.