Linderman Michael D, Ho Matthew, Dill David L, Meng Teresa H, Nolan Garry P
Computer Systems Laboratory, Stanford University, Stanford, CA, USA.
Microbiology & Immunology, Stanford University, Stanford, CA, USA.
Proc CGO. 2010 Apr;2010:230-237. doi: 10.1145/1772954.1772987.
Reducing the arithmetic precision of a computation has real performance implications, including increased speed, decreased power consumption, and a smaller memory footprint. For some architectures, e.g., GPUs, there can be such a large performance difference that using reduced precision is effectively a requirement. The tradeoff is that the accuracy of the computation will be compromised. In this paper we describe a proof assistant and associated static analysis techniques for efficiently bounding numerical and precision-related errors. The programmer/compiler can use these bounds to numerically verify and optimize an application for different input and machine configurations. We present several case study applications that demonstrate the effectiveness of these techniques and the performance benefits that can be achieved with rigorous precision analysis.
降低计算的算术精度会对实际性能产生影响,包括提高速度、降低功耗以及减少内存占用。对于某些架构,例如图形处理器(GPU),性能差异可能非常大,以至于使用降低的精度实际上成为一种必要条件。权衡之处在于计算的准确性会受到影响。在本文中,我们描述了一种证明助手及相关的静态分析技术,用于有效地界定数值和精度相关的误差。程序员/编译器可以使用这些界限对不同的输入和机器配置进行数值验证并优化应用程序。我们展示了几个案例研究应用,以证明这些技术的有效性以及通过严格的精度分析可实现的性能优势。