CAMPARY: Cuda Multiple Precision Arithmetic Library and Applications

CAMPARY: Cuda Multiple Precision Arithmetic Library and Applications
复制标题

CAMPARY:Cuda 多精度算术库和应用程序

DOI:
--
复制
发表时间:
2016
期刊:
International Congress on Mathematical Software
影响因子:
--
通讯作者:
W. Tucker
W. Tucker
中科院分区:
--
文献类型:
--
作者:
Mioara Joldes;J. Muller;Valentina Popescu;W. Tucker

文献摘要

被引文献

相似文献

许多科学计算应用需要在诸如图形处理单元(GPU)的并行架构上进行大量数值计算。通常,使用浮点单精度或双精度运算。更高的精度通常在硬件中不可用,软件扩展精度库要慢得多,很少在GPU上支持。我们开发CAMPARY:一个多精度算术库,使用CUDA编程语言为NVidia GPU平台。在我们的方法中,精度扩展表示真实的数字作为几个标准的机器精度浮点数的未评估的总和。我们使用无误差变换算法,该算法仅基于本地精度运算,但跟踪执行一系列加法和乘法时发生的所有舍入误差。这提供了使用硬件高度优化的浮点运算的简单性,同时还允许严格证明的舍入误差范围。这也允许容易地实现区间算术。目前,支持所有基本的多精度算术运算。我们的目标应用是在混沌动力系统或自动控制。
Many scientific computing applications demand massive numerical computations on parallel architectures such as Graphics Processing Units (GPUs). Usually, either floating-point single or double precision arithmetic is used. Higher precision is generally not available in hardware, and software extended precision libraries are much slower and rarely supported on GPUs. We develop CAMPARY: a multiple-precision arithmetic library, using the CUDA programming language for the NVidia GPU platform. In our approach, the precision is extended by representing real numbers as the unevaluated sum of several standard machine precision floating-point numbers. We make use of error-free transforms algorithms, which are based only on native precision operations, but keep track of all rounding errors that occur when performing a sequence of additions and multiplications. This offers the simplicity of using hardware highly optimized floating-point operations, while also allowing for rigorously proven rounding error bounds. This also allows for easy implementation of an interval arithmetic. Currently, all basic multiple-precision arithmetic operations are supported. Our target applications are in chaotic dynamical systems or automatic control.