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框架
只有软件
【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工具集加以合成 。
开源版本将会包括多种全功能实例加速器,为用户提供所需的起点和全端口声明,以便接收源数据并返回目标数据 。
推荐阅读
- 中文文档《SAME54 Curiosity Ultra开发板用户指南》
- 安富利推出MaaXBoard Mini单板计算机,加快物联网产品上市并降低开发成本
- 基于EVK1105开发平台设计的交互式机器人小车
- 能量饲料的开发、加工及营养特点
- 英特尔为XPU软件开发推出oneAPI工具包正式版本
- 一文教你读懂ZWS云的可视化开发
- Imagination发布PowerVR软件开发套件和工具包重要更新版本,含光线追踪代码示例
- 兆驰光元分拆上市,三雄极光开发多款教室照明产品
- 单片机开发板的用途介绍以及看电路图的方法
- 故宫未开发区域恐怖 故宫未开放冷宫照片