
1985年,电气和电子工程师协会(
IEEE )建立了
IEEE 754标准,该标准负责
浮点数和算术格式,它将成为未来30年所有硬件和软件的模型。
而且,尽管大多数程序员会随时随地使用浮点数,但是当他们需要使用实数执行数学运算时,由于对这些数字表示形式的某些限制,此类运算的速度和准确性常常令人望而却步。
多年来,该标准遭到熟悉这些问题的计算机科学家的严厉批评,但
约翰·古斯塔夫森(John Gustafson)是其中最杰出的,他独自带领一支十字军东征,用更合适的东西代替了浮点数。 在这种情况下,正数或整数被认为是更合适的选择-第三个选择是他研究“通用数”的结果。 他说正数将解决IEEE 754标准的大多数主要问题,提高性能和准确性,并使用更少的位。 更好的是,他指出,新格式可以“即时”替换标准浮点数,而不必更改应用程序的源代码。
我们在ISC19会议上会见了古斯塔夫森。 对于那里的那些超级计算机专家来说,posit格式的主要优点之一是,与IEEE 754相比,使用更少的位数就可以实现更高的精度和动态范围。 古斯塔夫森说,几乎在所有情况下,32位位置替换64位浮点,这可能会对科学计算产生严重影响。 如果将位数减半,则不仅可以减少这些数字的高速缓存,内存和存储,还可以大大减小将它们传输到处理器所需的通道宽度,反之亦然。 他认为,这就是为什么基于位的算法与IEEE浮点数相比将使计算速度提高两倍至四倍的主要原因。
加速可以通过实数的紧凑表示来实现。 posit代替IEEE标准中使用的固定大小的指数和小数部分,使用可变数量的位(模式位和指数位的组合)对指数进行编码,因此在大多数情况下,对它们的使用较少。 结果,更多的位保留在小数部分,这提供了更高的精度。 动态指数由于其渐缩精度而值得使用。 这意味着最常用的指数较小的值可以具有较高的精度,而较少使用的非常大和非常小的数字将具有较低的精度。
古斯塔夫森(Gustafson )在2017年描述posit格式的著作详细介绍了它的工作原理。

格式的另一个重要优点是,与普通的浮点数不同,posit在任何系统上都给出相同的按位结果,而IEEE格式通常无法保证(在同一系统上即使相同的计算也可以得出不同的结果)结果)。 此外,新格式还处理舍入错误,有效数字溢出和消失,非规格化数字以及许多非数字(NaN)类型的值。 另外,posit避免了诸如不匹配值0和-0这样的奇怪情况。 相反,格式对字符使用二进制补码,例如整数,这意味着按位比较将正确进行。
称为quire的东西与正数(一种允许程序员执行可重现的线性代数的累加机制)相关联,这是常规IEEE数无法访问的过程。 它支持组合乘法加法的通用运算以及其他组合运算,这些运算使您能够计算标量积或总和而不会舍入错误或溢出。 加州大学伯克利分校启动的测试表明,查询操作比顺序执行快3-6倍。 古斯塔夫森说,他们允许假定数字“超出自己的体重等级”。
尽管这种数字格式仅存在了几年,但高性能计算(HPC)社区已经对探索其应用感兴趣。 目前,所有工作仍处于试验阶段,并基于未来硬件的预期速度或基于在传统处理器上模拟正算的工具的使用。 在生产过程中,没有在硬件级别实现posit的芯片。
该格式的潜在应用之一是正在建造的
平方公里阵列 (SKA)无线电干涉仪,在设计时,他们
考虑了位置号,从而从根本上减小了通道宽度和处理来自无线电望远镜的数据的计算量。 超级计算机有必要消耗不超过10 MW,而根据设计者的说法,实现这一目标的最有前途的方法之一就是使用更密集的存储格式,以将存储通道(传输通道)的估计宽度(200 PB / s)减半。数据(10 TB / s)和网络连接(1 TB / s)。 计算能力也应提高。
另一个应用是用于天气预报和气候预测。 英国团队
表明 ,16位正数明显领先于标准16位浮点数,并且“在更复杂的模型中具有很大的潜力”。 此模型中的16位正则仿真与64位浮点数一样有效。
利弗莫尔国家实验室(Livermore National Laboratory)
评估正数和其他数字格式,探索减少未来Exaflops超级计算机中要传输的数据量的方法。 在某些情况下,它们也获得了更好的结果。 例如,在诸如冲击流体力学的物理计算中,位置数能够提供卓越的精度,并且在各种尺寸上通常都优于浮点数。

posit可能在机器学习中具有最大的潜力,其中16位数字可用于学习,而8位数字可用于验证。 古斯塔夫森说32位浮点数对于训练来说是过大的,在某些情况下,它们甚至没有显示出16位正数这样的好结果,并解释了IEEE 754标准“绝对不打算用于AI” 。
AI社区关注它们并不奇怪。 Facebook杰夫·约翰逊(Jeff Johnson)使用posit使用FGPA开发了一个实验平台,与针对机器学习任务的float16和IEEE的bfloat16相比,它展示了更高的能源效率。 他们计划探索使用16位quire硬件进行培训,并将其与竞争格式进行比较。
值得注意的是,Facebook
正在与英特尔合作开发Nervana神经网络(NNP)处理器,这将加快社交巨头与AI相关的某些任务。 不排除使用posit格式的选项,尽管Intel更有可能将其原始FlexPoint格式留给Nervana。 无论如何,这一点值得跟踪。
Gustafson知道至少有一个AI芯片,他们试图在设计中使用正数,尽管他无权透露公司名称。 法国公司Kalray与欧洲处理器倡议(EPI)合作,也显示出对支持其下一代大规模并行处理器阵列(MPPA)加速器的支持的兴趣,因此该技术可以用于
欧洲exaflops超级计算机 。
对于古斯塔夫森来说,所有这一切当然是鼓舞人心的,他相信,第三次提高他的通用数的尝试可能会成功。 与版本一和版本二不同,posit在硬件中易于实现。 鉴于AI领域的激烈竞争,也许我们应该期待新格式的商业成功。 在其他可以期待的光明前景的平台中,包括数字信号处理,GPU(用于图形和其他计算),物联网设备,边缘计算。 当然,还有HPC。
如果这项技术获得商业发行,古斯塔夫森(Gustafson)不太可能利用其成功。 如10页标准所示,他的项目是完全开放的,可供任何想要开发适当的软件和硬件的公司使用。 这可能解释了IBM,Google,Intel,Micron,Rex Computing,Qualcomm,Fujitsu,Huawei等公司对技术的关注。
然而,即使对于像古斯塔夫森这样的简历令人印象深刻的人来说,用更合适的东西代替IEEE 754也是一项巨大的工程。 在就职于ClearSpeed,英特尔和AMD之前,他就研究了改进现代处理器科学计算的方法。 他说:“过去30年来,我一直在努力解决这个问题。”