楼主: 可人4
1119 31

[量化金融] 金融蒙特卡罗的张量处理单元 [推广有奖]

11
可人4 在职认证  发表于 2022-6-24 03:08:15
事实上,TPU的主马力由MXU提供,MXU能够在每个循环中执行128×128乘法累加操作[7]。虽然其输入和输出是32位浮点值,但MXU通常以b浮点16的简化精度执行乘法,这是一种16位浮点表示,与IEEEhalf-precision表示相比,它为指数分配了更多的位,而为尾数分配了更少的位,从而为深度学习提供了更好的训练和模型精度。B、 编程模型TPU的编程通常通过高级Tensor Flow API完成。当程序运行时,会生成一个TensorFlow计算图,并通过gRPC发送给CloudTPU【1】。云TPU服务器及时编译计算图,将图划分为可以在云TPU上运行的部分和必须在CPU上运行的部分,并生成与要在云TPU上运行的子图相对应的加速线性代数(XLA)操作。接下来,XLA编译器接管TensorFlow服务器生成的高级别优化器(HLO)操作,并将其转换为可在CloudTPU上运行的二进制代码,包括将数据从片上内存编排到硬件执行单元和芯片间通信。最后,二进制文件被发送到云TPU执行。图1:传感器处理单元(TPU)的硬件架构和编程模型【1】。C、 从DNN推理到随机过程模拟在本文中,我们利用了DNN推理和模拟高维金融投资组合之间的计算相似性。Tensor Flow和TPU的设计旨在为深度学习编程提供高级接口,以快速培训关键任务模型。

12
大多数88 在职认证  发表于 2022-6-24 03:08:19
我们的建议是将这种性能用于另一个目的:为金融应用程序运行随机过程模拟。计算DNN的输出意味着链接矩阵/矩阵乘法与元素方向可矢量化操作交错。定量金融中涉及非常相似的计算模式,因为多维模拟需要计算矩阵/矩阵多重参数矩阵输入的匹配向量矩阵/输出的矩阵多重匹配向量分块加法和非线性元素转换偏差向量+一层深层神经网络波动率矩阵随机正态分布的匹配向量noisexMatrix/matrix multiplyvectoriated add and element-wise multiply with previous statedrend term+多变量几何布朗运动模拟的单时间步批处理输出向量fig。2: 多维几何布朗蒙特卡罗的DNN层和时间步长之间的计算相似性。(使用批处理的PRN)和元素级矢量化操作。图2说明了这种高度的计算相似性。此外,由于训练DNN需要通过自动区分网络的输出和所有参数来计算梯度,因此像张量流这样的DNN学习框架非常适合通过路径区分进行灵敏度估计[33]。四、 TPUW上的伪随机数生成器和准随机数生成器描述了伪随机数生成器(PRNG)和准随机数生成器(QRNG)如何在TPU上运行。A、 Mersenne Twister 19337(MT19337)[28]是一种非常流行的方法,它设计用于金融蒙特卡罗的并行化和统计可靠性,并产生一系列周期为2的PRN。

13
大多数88 在职认证  发表于 2022-6-24 03:08:22
这样的PRN序列是作为单个流生成的,因此并行化依赖于子流方法[30],[33],这通常需要通过模拟提前确定每个核心将消耗多少PRN。分布式和并行计算的一种更灵活的方法是使用多流随机数生成asin【32】。多流算法,如Threefry和Philox,使用加密方法生成多个序列(xkn)n=1。。。N、 k=1。。。如果每个核心都使用一个不同的键,则Kg看起来是统计相关的。如果使用64位整数对密钥进行编码,并且如果使用64位表示序列迭代器,则每个序列的周期为2,则允许的密钥数通常为2。[32]表明,当提交给Big Crunch[23]时,这些方法比标准生成器具有更高的吞吐量和更好的统计特性。特别是,虽然Threefry和Philox通过了Big Crunch电池的所有测试,但MT19937大多数都没有通过。我们已经证实,在TPU上生成均匀分布的32位整数成功地通过了BigCrunch【23】(Big Crunch的双精度版本与在【0,1】中生成均匀分布浮点的TPU没有直接关系)仅限单精度)。因此,由于易于并行化,Tensor Flow采用了多流PRNG。特别是,我们在TPU实验中使用ThreeFry,在GPU上使用Philox。B、 TPU上的QRNGs和Sobol序列虽然PRNGs旨在生成iid样本,但QRNGs会生成非顺序独立样本,以尽可能均匀地覆盖[0,1)qhyper立方体,并加速数值积分[15],[30]。只要采样空间不是高维的问题,QRNG更倾向于数值估计期望值。

14
kedemingshi 在职认证  发表于 2022-6-24 03:08:25
事实上,虽然MonteCarlo积分提供了O(√(N) )(其中N是样本数),QRNGs输出的低差异序列(例如Sobol序列)可以在O(ln(N)q的速度下减小均方误差-1N)[21]。低差异序列的主要缺点是损失置信区间估计。然而,随机拟蒙特卡罗通过使用置乱或其他随机化技术提供置信区间估计值【15】、【22】、【29】、【30】。在本文中,由于我们想检验与时间离散化偏差和模拟方差相关的数值LBIA,我们给出了基于classicMonte Carlo模拟的第一组结果。我们在VI D中以经验证明,QMC可以在TPU上运行,与蒙特卡罗相比没有显著的开销,同时受益于近似线性的收敛速度(就样本数量而言)。五、 TPU和多级蒙特卡罗运行动力系统仿真的数值精度,尤其是在金融领域,通常依赖于高数值精度来产生可靠的结果。现在我们来描述一下TPUS的数值精度。A、 TPUA上的单精度和b FLOAT16精度与当今的CPU或GPU不同,TPU不提供双精度(64位)浮点表示。默认表示为单精度(32位),MXU中矩阵乘法的ScalarMultiplication在累加为单精度之前以b float16(16位)精度计算。

15
可人4 在职认证  发表于 2022-6-24 03:08:29
由于对于ML应用程序和链式乘法来说,16位表示数字的数量非常少,因此采用了非标准表示方案,以更好地捕获高量级值并防止溢出。单精度IEEE浮点标准按如下方式分配位:1个符号位、8个指数位和23个尾数位。IEEE半精度标准使用1个符号位、5个指数位和10个尾数位。相反,b float16格式使用1个符号位、8个指数位和7个尾数位。我们在数值实验中发现,与金融蒙特卡罗环境下的双精度相比,累加器和向量单元中用于元素操作的单精度和b float16精度并没有产生显著不同的结果。B、 风险度量中的数值精度、离散化偏差和方差金融蒙特卡罗方法通常与方程(1)等连续时间SDE的模拟有关。分析方程(3)中蒙特卡罗估计量的收敛性取决于已知的偏差方差Lerror的组合[30]:| | E[f(X0:T)]-垃圾桶||=E[f(X0:T)]- 埃比尼+风险值箱子N、 偏差项通常包含由时间离散化和浮点数表示引起的偏差。在模拟SDE时,会发生时间离散化,这会导致影响蒙特卡罗模拟的大部分偏差。实际上,与实际的利益过程(Xt)t相反∈[0,T],蒙特卡罗模拟通常采用逐段连续近似(eXt)T∈[0,T]每t(其中这是暂时性缺血步骤)。

16
mingdashike22 在职认证  发表于 2022-6-24 03:08:32
在几种通常适用于金融定价的假设下,Taley Tubaro定理[30]指出,离散化偏差减少为O(H),这与离散化过程中采用的步骤数成反比。正如我们将从数字上证明的那样,这种偏差项在实践中占主导地位。相比之下,数字精度引起的偏差可以忽略不计。最后,如【5】、【6】所述,MLMC方法【13】、【14】可以有效估计数值偏差项(如果它是显著的),并对其进行补偿。特别是,MLMC有助于低精度快速实施加速参考精度蒙特卡罗,方法是将其作为伴生估计器运行,其偏差可以通过几个样本识别,并且实际上通过快速生成多个样本来降低蒙特卡罗估计器的方差。六、 数值实验表明,TPU是一种快速工具,其数值精度与基于蒙特卡罗金融风险度量的需求相当。在下文中,我们在GPU上使用Philox,在TPU上使用Threefry(在这两种情况下,Philox更难支持某些低级别操作)。此外,我们在GPU和TPU上使用相同的python Tensor Flow代码有两个原因:我们想与一个为速度进行了高度优化的库进行比较,我们想在软件工程工作的同等水平上进行速度比较。这里使用NVidia v100 GPU来确定我们的结果,但没有进行特定于体系结构的优化,这可能会大大提高其性能。

17
可人4 在职认证  发表于 2022-6-24 03:08:35
因此,我们给出的GPU壁时间只能被视为可靠的参考,而不是在英伟达V100 GPU上可以获得的峰值性能指标。在下文中,我们在测量TPU上的墙时间时不考虑编译时间,因为在大多数对延迟敏感的应用程序中,对应的overhead显然是摊销的,并且不会妨碍在协作笔记本(与ipython Jupyter笔记本相当的交互式笔记本)中进行交互式体验。A、 欧式期权定价和hedging我们的第一个实验涉及欧式期权定价,即具有单一最终付款的不可赎回衍生品。1) 单变量过程模拟对TPU的VPU进行基准测试:单变量随机过程模拟不需要矩阵乘法,因此构成了有用的基准,用于具体评估TPU上向量处理单元(VPU)的性能,该单元执行单(32位)浮点运算。普通看涨期权:首先,我们从一个非常简单的例子开始,在标准的Black-Scholes模型下,对一个1年期欧洲看涨期权(行使120)进行定价,恒常裂谷(0.05)和波动率(0.2),初始参考价格为100。doubleprecision中期权的分析价格为3.24747741656。我们想在这里展示的是——正如我们从分析角度所知,实际期权价格——时间离散化偏差在很大程度上支配着数值精度偏差。100次模拟运行中的每一次都有25到100个离散化步骤和10M个样本。

18
nandehutu2022 在职认证  发表于 2022-6-24 03:08:38
可以在图3中验证,与运行相同张量流量图的GPU相比,TPU提供了舒适的加速,并且与时间离散化相比,使用较低精度产生的偏差可以忽略不计。路径依赖的奇异看跌期权:我们将事情稍微复杂一些,并考虑对进出期权定价(激活障碍)。标的物的初始价格为100,删除120,屏障140。漂移仍然保持不变(0.03),波动率也保持不变(0.8)。期权的双精度分析价格(由Black-Scholesmodel下的对称原理给出)为23.1371783926。在x和y值的两个离散化步骤之间,我们模拟了布朗桥的最大值,经典地分别为[15]、[30]、m~ 0.5x+y+r(十)- y)- 2.tσlog(U)其中Uis均匀分布在(0,1)-以减少方法的离散化偏差。这样的实验还表明,在张量流中编程足够灵活,可以允许不同的模拟方案。100个模拟中的每一个都有25到100个离散化步骤和2M个样本。同样,在图3中,我们可以看到TPU上运行的张量流图相对于GPU上运行的相同图的速度有所提高,而使用单精度而不是双精度的影响几乎不明显。2) 基准TPU\'MXU的多变量过程模拟:多变量随机模拟所代表的计算工作量比其单变量对应方更大,无论它们是否涉及相关动力学。然后,在计算波动率矩阵与多维正态分布叠加PRN的乘积时,在模拟的每个步骤中都会涉及矩阵/矩阵乘法。

19
何人来此 在职认证  发表于 2022-6-24 03:08:41
在这种情况下,TPU上的MXU速度可能是有利的,但3.2323.2343.2363.2383.2403.2423.2443.2463.2483.250Monte Carlo价格估算0510152025Black-Scholes Call,10240000个样本,100个时间步长PU singlegpu doubletpu mixed20 30 40 50 60 70 80 90 100欧拉离散化步长的数量0.040.020.000.020.040.060.08估计偏差(最小、平均、最大)与欧拉步长PU doublegpu singletpu mixed0 20 40 60 80 100欧拉离散化步长的数量10-310-210-1100中位壁时间秒(第5/95 perc.)v100Interactive TF 1/8 tpuInteractive TF full tpu23.16 23.18 23.20 23.22 23.24 23.26 23.28 23.30 Monte Carlo价格估算024681012141618Black Scholes于2048000个样本,100个时间步长PU singlegpu doubletpu mixed20 30 40 50 60 70 80 90 100欧拉离散化步长的数量0.00.10.20.30.40.5估计偏差(最小、平均、最大)与欧拉步长PU doublegpu singletpu mixed0 20 40 60 80 100欧拉离散化步长的数量10-310-210-1中壁时间秒(第5/95 perc.)v100Interactive TF 1/8 tpuInteractive TF full tpuFig上的Wall timesTensorflow(TF)。3: Vanilla call(左)和路径相关的奇异Put(右):以单精度和双精度估计分布。在Black-Scholes模型下,具有不同数值精度的偏差项和用于估计收益风险中性预期的离散化步骤有助于评估时间离散化步骤大小的影响。时间离散化偏差明显主导了数值精度偏差。由于它使用自定义浮点数表示,因此需要确保不会出现实质性的数值精度偏差。篮子欧洲期权:我们在货币篮子欧洲看涨期权中定价2048个标的,其价格最初为100。

20
大多数88 在职认证  发表于 2022-6-24 03:08:44
利率为0.05,我们使用的波动率矩阵是基于从Russell3000到2018年间随机选择股票的每日变化收集的市场数据的历史估计。100次模拟中的每一次都使用了2K个样本。模拟现在涉及矩阵乘法,以响应方程式(1),因此,使用THEPU的MXU时,b float16精度降低。TPU上的所有其他计算都以单精度运行。在图4中,我们给出了TPU的混合精度估计值,并将其与单精度和双精度估计值进行比较。我们发现,在TPU上运行模拟不会引入任何明显的偏差,同时与GPU相比,速度大幅提升。篮子欧洲期权Delta:由于自动微分集成到Tensor Flow框架中,几乎不需要额外的工程工作来计算MC模拟的路径敏感性。考虑到相同的欧洲期权,我们现在计算其“delta”,即期权价格估计相对于初始价格向量的一阶导数(2048个分量)。如第七章图8的代码片段所示,计算这样一个敏感度估计值可以代表图书馆的大量软件工程工作,而不是按照AAD设计的[33],只需要一行张量流的代码。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-4-19 08:20