Skip to main content
QUICK REVIEW

[论文解读] Implementation of float-float operators on graphics hardware

Guillaume da Graçca, David Defour|arXiv (Cornell University)|Mar 29, 2006
Numerical Methods and Algorithms参考文献 15被引用 26
一句话总结

本文提出了一种在GPU上使用float-float表示法的软件级44位浮点数运算仿真,通过组合两个单精度浮点数实现更高精度。该方法利用GPU流处理实现高性能、高精度的运算,适用于需要高于硬件原生单精度支持的高精度应用,实测精度在大多数操作中均符合预期理论范围。

ABSTRACT

The Graphic Processing Unit (GPU) has evolved into a powerful and flexible processor. The latest graphic processors provide fully programmable vertex and pixel processing units that support vector operations up to single floating-point precision. This computational power is now being used for general-purpose computations. However, some applications require higher precision than single precision. This paper describes the emulation of a 44-bit floating-point number format and its corresponding operations. An implementation is presented along with performance and accuracy results.

研究动机与目标

  • 为解决GPU缺乏双精度浮点数支持的问题,从而限制高精度应用的精度。
  • 在仅原生支持单精度浮点运算的GPU硬件上实现更高精度的算术运算。
  • 开发并评估一种基于软件的float-float表示法,利用两个32位浮点数模拟44位精度。
  • 评估该float-float实现方案在现代GPU上的性能与精度,特别是与基于CPU的实现方案进行比较。
  • 识别并解决实现中的精度问题,特别是涉及异号操作数的边界情况。

提出的方法

  • float-float表示法将一个数表示为两个单精度浮点数之和,从而实现比标准32位浮点数更高的精度。
  • 基本算术运算(加法、乘法及融合乘加)通过误差补偿算法实现,以保持精度。
  • 使用Brook这一GPU编程的高级语言高效地进行算法原型设计与测试。
  • 该方法依赖GPU原生的单精度算术运算及纹理内存来存储中间结果。
  • 算法设计旨在最小化指令级开销,并充分利用GPU的数据级并行性。
  • 开发了自定义测试框架,生成随机测试向量,并与MPFR结果对比以验证精度。

实验结果

研究问题

  • RQ1在仅原生支持23位尾数单精度浮点数的GPU上,软件级float-float表示法能否实现44位精度?
  • RQ2GPU上float-float运算的性能与CPU上等效运算相比如何,特别是在大规模数据集上的表现?
  • RQ3float-float实现的实际精度如何?其与理论预期的偏差程度如何?
  • RQ4为何某些运算(如Add22)的误差高于预期?这是否可归因于硬件特定行为?
  • RQ5float-float方法能否在Cg或OpenGL等低级GPU语言中高效优化,以获得更好的性能?

主要发现

  • float-float实现的最大观测误差为Add12的-48.0 ULP,略高于理论预期的精确结果,表明可能存在硬件特定的舍入异常。
  • Mul12运算被发现是精确的,与所选表示法和算法的理论预期一致。
  • Add22和Mul22运算表现出更高的误差(分别为-33.7和-45.0 ULP),主要由于算法复杂性及操作数交互中的边界情况。
  • GPU上基本float-float运算(加法、乘法、乘加)的执行时间几乎相同,表明GPU驱动程序实现了高效的指令调度与合并。
  • Add22和Mul22运算的耗时约为基本运算的两倍,表明其内部算法检查带来了更高的计算开销。
  • GPU与CPU之间的性能差距显著:对于GPU工作负载,GPU性能优于CPU约25倍;对于CPU工作负载,GPU性能优于CPU约3000倍,凸显了GPU在大规模数据处理中的效率优势。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。