\

英仕曼集团利用Graphcore IPU解锁大规模并行期权定价

作者:

分享  

Share on weixin
Share on weibo
Share on linkedin

订阅

计量经济学模型是数据驱动的金融组织的支柱,其允许使用统计方法对经济现象进行建模,从而做出更明智的决策。

英仕曼集团(Man Group)是一家总部位于伦敦的积极投资管理公司,借助于Cox-Ross-Rubinstein等期权定价模型,每天对数百万份期权进行估值。英仕曼集团的定量研究人员致力于优化这些模型的性能以获得竞争优势。最近,他们评估了IPU,测试结果令人印象深刻。

英仕曼集团阿尔法技术(Alpha Technology)高级工程师Balazs Domonkos表示:“期权定价是英仕曼集团的关键工作负载,对于计算的要求很高。Cox-Ross-Rubinstein依旧是在IPU上测试期权定价的良好基准。最近,与Graphcore共同的研究证明了IPU的大规模并行特性,它的期权定价速度比使用CPU时快了多达21倍。”

CPU可以灵活地处理难以被向量化的计量经济学工作负载,因此,许多金融机构仍然经常选择CPU而不是GPU作为首选硬件。IPU提供了CPU之外另一个可靠的选择,因为IPU可以通过提供与CPU相同的MIMD灵活性来加速这些工作负载,同时提供更高的flop率和处理速度。下文详细介绍了三种属于难以向量化类别的工作负载。

有条件终止工作负载——这些工作负载包含循环,会一直持续到满足某个条件,或完成一定数量的迭代(迭代数量由输入决定)。如果采用批处理,则必须先完成所有样本,然后才能将批次视为完成。例如可自动调用的期权定价模型,如果自动调用事件被触发,该模型就会被终止。

顺序工作负载——这些工作负载包括迭代、基于循环和递归的工作负载。在不需要多次运行的顺序工作负载的情况下,向量化是不可能的,因为当前操作的输出需要被用作下一个操作的输入。例如,迭代模拟哈密顿动力学(Hamiltonian dynamics)的哈密顿蒙特卡洛(Hamiltonian Monte Carlo)。

输入依赖的路由工作负载——这些是基于树的模型和使用条件语句(“如果”语句)的其他形式模型。如果对批次的每个元素执行的操作各不相同,那么就很难对这些工作负载进行向量化,具有可变深度的决策树就是一个有力的例子。

在这篇博客中,我们将研究一种被称为Cox-Ross-Rubinstein(CRR)模型的算法,这是一种二项式期权定价模型。CRR是一种流行的期权定价算法,它的灵活性使其能够处理广泛的工作条件,例如保障美式期权持有人在任何时候行使期权的权利。我们将对CRR模型的工作原理、向量化可能带来的一些复杂问题,以及如何在IPU上大规模实现在CRR模型进行讨论。

使用CRR模型的期权定价

Cox-Ross-Rubinstein(CRR)模型通过分析资产价格在估值日和到期日之间的离散数量的模拟时间步长(n)内的变化来为期权定价。模拟时间节点的数量越多,定价就越准确。

该模型分为两个阶段。在阶段1,即向前传递阶段,通过假设标的资产价格在每个模拟时间步长上以一个特定的倍数从当前现货价格S0增加或减少特定的因素来生成一个价格树。资产可能增加或减少的因素是作为资产的波动性和模拟时间节点的大小函数来计算的。

在阶段2,即向后传递的阶段中,期权的价值是回溯价格树迭代计算出来的。在每个时间步长,通过考虑该期权上涨或下跌的概率来计算前一个时间点的相关价值——这就是二项式值。

二项式参数p代表在任何特定模拟时间点上价格上涨的概率,p的设置使得它所代表的二项式分布将模拟资产的布朗运动,并具有测量波动率和假设贴现率。

需要注意的是,在针对欧式期权和美式期权进行实现时,算法的向后传递存在差异。这种差异通过利用CRR算法的灵活性实现了一个条件,该条件反映了美式期权持有人随时行使期权的能力。

向量化的副作用

CRR算法的强大之处在于用户能够在任何时间步长添加条件。在为美式期权定价时,添加了一个条件,即期权的价值不能低于立即行使期权所能产生的收益。

尽管存在这种条件,但仍有可能对CRR算法进行向量化,既可以在整个树的高度进行,也可以在一批期权之间进行,可以通过谷歌的tf-quant finance library,在tf-quant-finance/crr_binomial_tree中找到这样的实现。作者在美式期权和欧式期权混合的批次中对该算法进行了向量化,这意味着批次中的每个输入,无论是美式期权,还是欧式期权,都需要执行相同的操作。

欧式期权需要处理的操作要比美式期权少,因为它们不需要计算是否可以通过立即行使期权来获得更高的收益。然而,由于这种形式的向量化要求对美式期权和欧式期权的定价执行相同的操作,所以两者的吞吐量是相等的,这一点可详见图1。

图1:当作为标量化工作负载实施时,为欧式期权(蓝色)定价明显快于美式期权(橙色)定价。吞吐量标准以美式期权为准。[来源:Graphcore所指定的标准]

对于Cox-Ross-Rubinstein来说,通过维护两份代码(一份用于欧式期权,一份用于美式期权)就可以轻松解决这个问题,从而去除“如果”语句。然而,对于Cox-Ross-Rubinstein和其他计量经济学模型的变体来说,解决问题就没有那么简单了。

采用标量化实现而非向量化实现的另一个好处是,它们可以强制保障数据的本地性。当处理带有向量操化操作的批次时,数据很可能会在计算内核和低层缓存之间交换,为后续操作做准备。而标量化实现有可能可以避免这种情况,因为内核/线程之间不存在相互依赖关系。

IPU的MIMD架构可以在单一IPU上并行8832个期权定价

MIMD处理器,如CPU和Graphcore IPU,提供了比SIMD(GPU)处理器更高的灵活性。在IPU上,一个线程可以执行任何指令,无需理会其他线程在执行什么操作。而在SIMD处理器上,每个线程必须执行相同的指令,因此需要进行向量化。

在IPU处理器上进行标量化运算时,容纳输入依赖性的路由是微不足道的。不是计算一批样本,而是将每个样本分配到一个单独的线程,该线程可以自由地执行该样本需要的任何计算路径。这意味着如果样本已经收敛,处理将停止,线程就会返回给控制程序。如果由于该样本的属性,程序不需要执行某一段代码(“如果”语句),它就可以自由地跳过它。这种细粒度控制在GPU上的批处理中是不可能的。

在IPU编程模型中,通过将硬件视为子节点池,并将期权分配给每个子节点进行独立处理,便可轻松解决大规模的期权定价问题。一旦一个子节点完成了处理,它就会返回到控制程序中,并可以再次被派发给另一个期权。这个过程在IPU上的运作与在CPU上的类似。

与CPU相比,IPU是一款大规模并行的MIMD芯片:有1472个tile和8832个并行线程,可以独立于所有其他线程运行。这意味着,IPU和CPU一样,不需要依靠向量化程序来实现高性能,但IPU的内核数量比目前可用的服务器级CPU多1到2个数量级。

通过将单一期权映射到一个单独的处理器线程(每个IPU tile有6个线程),我们可以在单个IPU上对8832个期权进行并行定价。接下来,我们将其与一个拥有24个内核的标准服务器级CPU(2倍超线程提供48个线程)进行比较,后者可并行定价48个期权。图2是单个MK2 IPU和单个CPU(英特尔®至强® 铂金 8168 处理器)的吞吐量比较。

图2:当使用CRR算法为美式期权定价时,与服务器级CPU相比,IPU可提供高达21倍的吞吐量。[来源:Graphcore所指定的标准]

IPU提供的并行性并不是CRR算法在IPU上运行良好的唯一原因。CPU将价格树存储在片外DRAM中,可以以大约190GB/秒的读写速度进行访问,尽管这个速度可能通过使用存储器层次结构而得到一定改善。然而,IPU直接将整个价格树存储在其900MB的处理器内存储(SRAM)中,可以以47TB/秒的读写进行访问。

CRR算法是一个具有输入依赖性路由的工作负载的例子,而且我们已经证明,这种工作负载的流行向量化的缺点是以尽可能长的计算路径的速度运行。

结论

我们认为,由于可以灵活地处理那些难以被向量化的工作负载,CPU仍是许多金融机构的首选硬件。然而,Graphcore IPU可以通过提供与CPU相同的MIMD灵活性来加速这类工作负载,同时提供更高的flop率,从而提高处理速度。

More Posts

ChatGPT开源平替:OpenAssistant OASST1微调版Pythia-12B

Flan-T5:用更小且更高效的LLM实现出色效果

详细攻略:在IPU上以float16精度运行FLAN-T5-XL推理

较小模型,超高性能:DeBERTa和自然语言理解的未来

PackedBert:如何用打包的方式加速Transformer的自然语言处理任务

Pienso为企业提供由云上IPU支持的高效大型语言模型访问

获取最新的GRAPHCORE资讯

在下方注册以获取最新的资讯和更新:




    获取最新的GRAPHCORE资讯

    在下方注册以获取最新的资讯和更新: