Xilinx利用IBM POWER8与FPGA连接创建KVS的故事

IBM POWER8在去年8月份发布时,其中一个引人注目的新功能就是所谓的CAPI功能。

kobito.1398953260.546886.png

CAPI是Coherence Attache Processor Interface的缩写,它是一个接口,可以在外部硬件上以非常高的带宽维持内存和CPU缓存之间的一致性。值得注意的是,底部稍微提到了”FPGA或ASIC”作为外部硬件的选项。换句话说,IBM开发了一种将POWER8与外部FPGA或ASIC连接起来,并以接近CPU一部分的速度使用它的机制。

看到这个,嗯,用POWER8和FPGA相结合,一定会出现一些有趣的东西!正当我这样想的时候,就在不久前举办的IBM Impact 2014上,Xilinx和Altera展示了关于POWER8+FPGA的案例,@ogawa_tter告诉了我。下面是Xilinx的新闻稿。

kobito.1398954058.202357.png

使用POWER8+ FPGA实现Key Value Store。

在这个新闻稿中应该注意的部分是:

The Xilinx demonstration is a broadly applicable CAPI-based key value store workload acceleration engine (i.e. Memcached and NoSQL) that delivers significant performance/watt acceleration at substantially lower latency and compliments the OpenCL™ design environment for Xilinx devices. 

换句话说,就是采用FPGA实现Key Value Store的加速。Xilinx此前已经发布了能够以实际速率达到10Gbps的Memcached FPGA实现,并积极将FPGA应用于数据处理和应用处理。然而考虑到实际应用,仅依靠FPGA实现应用逻辑存在一定的局限性。例如在Memcache的情况中,要求实现的复杂逻辑包括内存区域管理和错误处理等,将所有这些都硬件实现是困难的,会导致严重的功能限制。

在这种情况下,关键是通过FPGA硬件实现和CPU软件实现的协作设计。在HP Labs/Facebook/ARM/Univ of Michigan提出的Thin Servers with Smart Pipes概念中,假设利用ARM+FPGA的异构多核架构,在该架构中,像get()这样的简单处理由FPGA完成,而像put()和异常处理等复杂处理则由CPU完成,这就是协作实现的提案。换句话说,POWER8的CAPI技术是期望这种软件加硬件协作实现将来会越来越常见而采用的技术。

kobito.1398955479.642090.png

Altera演示了通过蒙特卡洛进行金融风险分析的功能。

根据@ogawa_tter的信息,据说在IBM Impact 2014大会上Altera还发布了名为“使用CAPI加速器(蒙特卡罗)的金融风险模型”的演讲(但是没有找到相关资料)。可能的情况是,仅将蒙特卡罗模拟的部分通过FPGA硬件实现并在大规模并行中执行,前后处理由POWER8负责,这是我的猜想。

因此,今年的GW让人感受到了以CPU和FPGA为基础的硬件+软件协作实施的巨大浪潮正在远方逼近。


声明:此文章为个人观点。所述内容基于我的个人意见,并与我的雇主无关。

广告
将在 10 秒后关闭
bannerAds