作者:Bruce Ying,Xilinx工程师
FPGA在fintech领域的应用历史悠久,Virtex时代就可见高频交易的应用。FPGA由于其内部逻辑及计算单元的丰富性和灵活性,可定制低延时、高吞吐率的设计,基本上可以碾压软件实现的性能。但万物相生相克,其缺点也很显而易见,最明显的就是它的使用门槛实在太高,开发人员必须软硬兼施,写RTL和做验证耗时耗力。性能是好,可时间不允许啊,金融行业可是分秒必争。
不温不火的过了许久,终于有两样划时代的利器出世,他们将FPGA的开发难度从金字塔尖,拉到了塔底,从此,软硬件程序员开发FPGA应用可以信手拈来,再也不必受那分配管脚、手写RTL的苦。那么,这两件利器分别是什么呢?那就是Vivado HLS和Alveo板卡。为什么它们这么神奇呢?请听我细细道来。
HLS是将C/C++代码转化为RTL代码的自动工具,它自带验证、封装等功能。你只需要将你的顶层C/C++程序,配合你的C/C++验证代码,通过软件验证。然后,就可以将之用HLS转化为RTL代码。再则,工具可以用你原有的C/C++验证代码,协同生成的RTL代码,做仿真,验证功能的正确性。最后,可一键封装,生成IP,供Vivado工具或者SDAccel(Alveo板卡开发工具)平台使用。
这么简单?性能从何而来? 那就是HLS工具有强大的能力,利用指令流水线(PIPELINE),任务级流水(DATAFLOW),和操作展开(UNROLL)功能,实现所有操作在时间轴上片刻不停的运转。而这些你只需要轻点鼠标,插入几条指令(pragma)就能达到。
我们再来看看Alveo板卡能给我带来什么,强大在哪里。Alveo是Xilinx为适应灵活应变、万物智能的新时代而推出的带有标准PCIE、网口(可达100G)的系列板卡。Xilinx为之提供了整套部署及开发的软件堆栈,程序员可以安装软件包轻松将它部署。Xilinx提供了壳(SHELL)将PCIE、DMA等功能固化,你只需要开发最有创新性的、专有的核(kernel),使用标准的AXI-4接口,工具就能自动将它和壳(SHELL)相连,生成完整的平台硬件。在软件层,你只需要调用OpenCL或者Xilinx提供的API,就能完成所有的板卡调度、数据传输等任务。
Alveo的加速领域非常广阔,包括数据库、机器学习、图像处理、压缩解压缩、加解密、金融计算等等。每个领域都有出众的加速应用,下图展示的就是一些Xilinx及合作伙伴在多领域的应用,及加速性能。加速倍数随应用不同而不同,在一些适合并行的领域,更有惊人的表现,比如,在不损失精度的情况下,欧式期权定价可比CPU快3000倍以上。
如此,万事俱备!软件侧有SDAccel及调度库(Runtime),硬件侧有Alveo板卡和壳(SHELL),HLS可以开发定制化需求,Xilinx还提供了多样的实例和开源的实际应用,你可以轻松上手做开发。Xilinx还收购了Solarflare,可提供低延时网卡及金融领域定制化应用,大大增强了Xilinx在Fintech领域的竞争力。Xilinx培育Fintech领域的生态是全方位的,它自己在工具之外,还提供多种IP,有些金融领域的特殊需求如TOE(TCP/UDP Offload Engine),它还提供开源HLS实现。在HLS的基础库中,包括有定点库、数学函数库、线性代数库等。在更高层,Xilinx还实现了模块级及软件API级的HLS开源实现,比如矩阵运算库等。
除了自己提供全套工具及开源库外,Xilinx还与独立软件提供商(ISV)共同提供解决方案。这些ISV都有自己独特的解决方案,Xilinx会对他们的应用提供支持,以满足多领域的需求。在Fintech领域,这些应用包含了一键下单(Tic To Trade),交易前风控,解包发包,期权定价等,最快可以实现ns级的下单。在中国市场,从以太网收到交易所包到解包,到计算完成,可以在百ns级实现。
至此,我们迎来了Fintech的新时代,Fintech领域的开发人员不必要花太多精力在硬件平台搭建及基础支持工具的开发上,可以关注于自己的特长领域,用HLS快速实现Alveo板上定制化实现,追求低延时高吞吐率的极限。
说了这么多,有没有一款可以应用感受下?确实有这样一款产品,它简单易用容易上手,这就是我们的二叉树期权定价模型--https://github.com/Xilinx/BinomialModel,可实现相对12核CPU最大60.8倍的加速。详细介绍,敬请期待......
注意:本文内容来源于Xilinx工程师,如需转载,请写明出处作者及赛灵思论坛链接并发邮件至cncrc@xilinx.com,未经Xilinx及著作权人许可,禁止用作商业用途。
原文出处:赛灵思论坛