我想知道使用 GPGPU 可以实现什么样的金融应用程序。我知道使用 CUDA 在 GPGPU 上使用蒙特卡罗模拟的期权定价/股票价格估计。有人可以列举在金融领域的任何应用程序中使用 GPGPU 的各种可能性吗?
7 回答
有许多金融应用程序可以在各个领域的 GPU 上运行,包括定价和风险。有一些来自 NVIDIA计算金融页面的链接。
确实,蒙特卡洛是许多人最明显的起点。Monte Carlo 是一类非常广泛的应用程序,其中许多都适用于 GPU。许多基于晶格的问题也可以在 GPU 上运行。显式有限差分方法运行良好且易于实现,NVIDIA 网站和 SDK 中有很多示例,它也大量用于石油和天然气代码,因此有很多材料。根据问题的确切性质,隐式有限差分方法也可以很好地工作,Mike Giles 在他的网站上有一个 3D ADI 求解器,其中还有其他有用的金融资料。
GPU 也适用于线性代数类型的问题,尤其是在您可以将数据留在 GPU 上以进行合理工作的情况下。NVIDIA 为 cuBLAS 提供了 CUDA Toolkit,您也可以获得cuLAPACK。
基本上,任何需要大量并行数学才能运行的东西。正如您最初所说,无法使用封闭式解决方案定价的选项的蒙特卡罗模拟是极好的候选者。任何涉及大型矩阵和对其进行操作的东西都是理想的;毕竟,3D 图形使用了大量的矩阵数学。
鉴于许多交易者台式机有时具有“工作站”级 GPU 以驱动多个显示器,可能带有视频源、有限的 3D 图形(波动性表面等),因此在 GPU 上运行一些定价分析是有意义的,而不是将责任推到计算网格上;以我的经验,计算网格经常在银行中每个人试图使用它们的重压下苦苦挣扎,并且一些网格计算产品还有很多不足之处。
除了这个特殊问题之外,使用 GPU 可以轻松实现的功能并不多,因为与常规 CISC CPU 相比,指令集和管道的功能范围更受限制。
采用的问题是标准化之一。NVidia 有 CUDA,ATI 有 Stream。大多数银行有足够的供应商锁定来处理,而无需将其衍生分析(许多人认为是极其敏感的 IP)与 gfx 卡供应商的加速技术挂钩。我想随着 OpenCL 作为开放标准的可用性,这可能会改变。
F# 在金融领域被大量使用,因此您可以查看这些链接
一个好的开始可能是查看 NVIDIA 的网站:
使用 GPU 会限制应用程序的架构、部署和维护。在为此类解决方案投入精力之前,请三思而后行。例如,如果您在虚拟环境中运行,则需要所有物理机器都安装 GPU 硬件以及特殊的 vGPU 硬件和软件支持 + 许可证。如果您决定在云中托管您的服务(例如 Azure、Amazon)怎么办?在许多情况下,值得提前构建架构以支持横向扩展并具有灵活性和可扩展性(当然会有一些开销),而不是尽可能地从硬件中扩展和压缩。
回答您的问题的补充:任何涉及会计的事情都不能在 GPGPU(或二进制浮点)上完成