CAPI SNAP:开发者应用CAPI的最简捷方式

作者:Bruce Wile,IBM Power Systems事业部CAPI首席工程师与杰出工程师

在之前的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调用加速功能该框架能够将数据移动到加速器,并储存结果

图2:使用CAPI SNAP调用加速功能该框架能够将数据移动到加速器,并储存结果。

拉近计算与数据的距离
API参数的简洁性兼具出色和强大的特点。源地址和目标地址不仅是凝聚系统内存单元,他们也是附加存储、网络或内存地址。例如,如果框架卡具有附加存储,应用可能会通过存储获得一个大型模块(或多个模块)的数据,对FPGA中的数据执行搜索、交叉或合并这样的操作,并将搜索结果发送给主系统内存的指定目标地址。与图3所示的标准软件方法相比,这种方法具有更大的性能优势。

图3:软件中的应用搜索功能(无加速框架)

图3:软件中的应用搜索功能(无加速框架)

图4所示为源数据通过QSFP+端口流入加速器的方式,其中FPGA执行搜索功能。该框架然后会将搜索结果转发给系统内存。

图4:采用加速框架搜索引擎的应用

图4:采用加速框架搜索引擎的应用

该框架的性能优势提高了两倍:
1. 通过拉近计算与数据之间的距离(在这种情况下,即指搜索),FPGA可以提高访问存储的带宽。
2. FPGA的加速搜索比软件搜索速度更快。

表1的数据对比了两种方法,表明性能提高了3倍。通过拉近计算与数据之间的距离,与将整体数据移动到系统内存这种方法相比,FPGA提高了输入(或输出)速度。


POWER+CAPI SNAP
框架

只有软件

输入100GB的数据

两个100Gb/s端口:4秒

一个PCI-E Gen3×8 NIC:12.5秒

执行搜索

<1微秒

<100微秒

发送结果到系统内存

<400纳秒

0

总时间

4.0000014秒

12.50001秒

简化加速操作的编程
编程API不仅是CAPI SNAP的唯一简化功能。该框架还简化了FPGA中“操作码”的编程。该框架能够检索源数据(无论是在系统内存、存储、网络等),并将结果发送到指定目标。使用高级语言(如C/C++或Go)编程的程序员只需要专注其数据转换或“操作”即可。与框架兼容的编译器可将高级语言转化为Verilog,然后利用Xilinx的Vivado工具集加以合成。

开源版本将会包括多种全功能实例加速器,为用户提供所需的起点和全端口声明,以便接收源数据并返回目标数据。

成就CAPI SNAP
您是否希望利用CAPI SNAP支持企业的数据分析?快来申请成为使用CAPI SNAP的前期用户吧,给我们直接发送电子邮件至:capi@us.ibm.com。务必提供您的名称、企业信息以及您希望使用CAPI SNAP运行加速工作负载的类型。

文章原文链接: http://www.openpowerfoundation.cn/member/newsDetail.do?newsId=2016LGPQzd...