NAG GPU 数值函数
NAG 一直处于数值算法的领导厂商,近 40 年来,我们已经提供各种不同应用领域的数值函数。 目前我们正与牛津大学的 Mike Giles 教授合作,提供 GPU 的数值函数。
GPU 传统上使用于个人计算机的 3D 游戏加速上,现今迅速发展,已经普遍应用于一般的科学计算。这样的计算型态又被称为 "Personal Super Computing" (PSC)。
Giles 博士与 NAG 的专家们已经着手开发功能齐全的并行数值函数。采用 GPU 架构,相较于传统的 CPU,我们拥有非常显著的性能。
GPU 函数说明
GPU 函数包含:- The MRG32k3a pseudorandom number generator (L'Ecuyer) with streams and substreams.
- The MT19937 pseudorandom number generator (Matsumoto, Nishimura) with streams and substreams.
- A Sobol generator in up to 50,000 dimensions with digital scrambling (Hickernell).
- Uniform, Exponential and Normal distributions in single and double precision.
- GPU device function MRG and Sobol generators which can be embedded in users' GPU kernels
- A Brownian bridge constructor for up to 8 dimensional Brownian motions.
- Cholesky factorization and LU decomposition for double precision matrices resident on the GPU
- User-configurable performance tuning and full error handling
我如何才能取得 NAG 的 GPU 数值函数原型呢?
目前 NAG 的 GPU 函数仍处于 Beta 版。目前此原型中已包括蒙地卡罗仿真组件:伪随机随机数生成器 (MRG32k3a)、准随机随机数生成器 (Sobol 至 50,000 维度) 以及布朗桥。 随机数生成提出三个输出分布函数(uniform、exponential 与 Normal),并同时提供单精度与双精度函数。
获取的资格?
我们提供免费的学术使用。同时我们也热切期盼与商业客户进行 GPU 函数的进一步评估与开发。
若您要取得此软件,请填写 相关表格 或者直接与我们 联系 。
正在进行中的工作
我们持续进行 GPU 函数的开发。未来将加入线性代数 (LAPACK)、偏微分方程、厚尾分布、单变量与多变量分布以及 Copula 函数。
NAG 与牛津量化金融研究院 (Oxford-Man Institute of Quantitative Finance) 的 联合文章 中描述 GPU 技术在随机数生成函数的实现。
此篇文章发表在 NVIDIA 的 GPU Computing Gems 中。
志谢
我们要感谢 Technology Strategy Board (技术战略委员会) 与 Smith Institute (史密斯研究所) 的支持,以及英国工程暨物理研究委员会赞助 Giles 教授的学术研究。