CAPI SNAP开发及应用教程
扫描二维码
随时随地手机看文章
在之前的OpenPOWER欧洲峰会上,我们推出了全新的框架,旨在便于开发者开始采用CAPI加速其应用开发。CAPI存储、网络和分析编程框架,或者简称为CAPI SNAP,通过OpenPOWER成员的多家公司共同协作努力开发而成,如今将与多家前期应用合作伙伴展开内部测试。
但是CAPI SNAP到底是什么呢?为了回答这个问题,我希望为各位深入介绍一下CAPI SNAP的运行原理。该框架通过简化API(对加速功能的调用)和加速功能的编码,从而可以扩展CAPI技术。利用CAPI SNAP,通过FPGA加速可以提高您的应用性能,因为计算资源与海量数据的关系更加密切。
简洁的API
ISV尤其关注这个框架的编程支持功能。该框架API可以支持应用调用加速功能。创新的FPGA框架逻辑可以实施所有计算工程接口逻辑、数据移动、高速缓存和预取工作——让程序员只专注于加速器功能的开发。
没有框架,应用程序员必须创建运行时加速库,执行如图1所示的任务。
但现在借助CAPI SNAP,应用仅仅需要如图2所示的那样的调用功能。这种简洁的API拥有源数据(地址/位置),可以执行的特定加速操作,以及发送结果数据的目标(地址/位置)。
图2:使用CAPI SNAP调用加速功能该框架能够将数据移动到加速器,并储存结果。
拉近计算与数据的距离
API参数的简洁性兼具出色和强大的特点。源地址和目标地址不仅是凝聚系统内存单元,他们也是附加存储、网络或内存地址。例如,如果框架卡具有附加存储,应用可能会通过存储获得一个大型模块(或多个模块)的数据,对FPGA中的数据执行搜索、交叉或合并这样的操作,并将搜索结果发送给主系统内存的指定目标地址。与图3所示的标准软件方法相比,这种方法具有更大的性能优势。
图3:软件中的应用搜索功能(无加速框架)
图4所示为源数据通过QSFP+端口流入加速器的方式,其中FPGA执行搜索功能。该框架然后会将搜索结果转发给系统内存。
图4:采用加速框架搜索引擎的应用
该框架的性能优势提高了两倍:
1. 通过拉近计算与数据之间的距离(在这种情况下,即指搜索),FPGA可以提高访问存储的带宽。
2. FPGA的加速搜索比软件搜索速度更快。
表1的数据对比了两种方法,表明性能提高了3倍。通过拉近计算与数据之间的距离,与将整体数据移动到系统内存这种方法相比,FPGA提高了输入(或输出)速度。
POWER+CAPI SNAP框架
只有软件
输入100GB的数据
两个100Gb/s端口:4秒
一个PCI-E Gen3&TImes;8 NIC:12.5秒
执行搜索
<1微秒
<100微秒
发送结果到系统内存
<400纳秒
0
总时间
4.0000014秒
12.50001秒
简化加速操作的编程
编程API不仅是CAPI SNAP的唯一简化功能。该框架还简化了FPGA中“操作码”的编程。该框架能够检索源数据(无论是在系统内存、存储、网络等),并将结果发送到指定目标。使用高级语言(如C/C++或Go)编程的程序员只需要专注其数据转换或“操作”即可。与框架兼容的编译器可将高级语言转化为Verilog,然后利用Xilinx的Vivado工具集加以合成。
开源版本将会包括多种全功能实例加速器,为用户提供所需的起点和全端口声明,以便接收源数据并返回目标数据。