Paper Reading - A Cloud-Scale Acceleration Architecture

Fork me on GitHub
  

Purpose of the Paper

上一篇论文中设计了一种基于FPGA加速的结构, 但是由于架构上的限制( 6x8 FPGA连接比较复杂,能够直接通信的只有一个机架内的6x8个FPGA等 ), 这篇论文新提出了一种架构 – Configurable Cloud, 可以加速网络流, 存储过程,安全操作以及分布式应用。和之前架构主要不同点是FPGA和服务器的NIC接口直接相连,然后通过PCIe和CPU通信,这样,所有网络通信都可以先到FPGA里进行处理。 同时FPGA之间使用LTL( Lightweight Transport Layer )来低延时通信。

下图显示了Configurable Clound的基本结构: fpga server

使用这种架构,

  • 从CPU+FPGA角度看, FPGA可以当成CPU的本地加速器
  • 从整个数据中心看, FPGA可以看作是一个大规模加速资源池,可以作为远程FPGA资源

Method Introduced in the Paper

Hardware Design

基本的硬件包括 Altera Stratix V D5 FPGA, 4 GB DDR3, PCIe接口以及两个40G QSFP 端口,分别和服务器NIC和TOR网络通信。逻辑框图如下所示:

fpga server

上面的实际电路板如下图所示: fpga server

FPGA Design

和上一篇论文一样, FPGA设计也是分成ShellRole部分, 其中Shell部分设计如下图所示: fpga server

除了常规的带DMA的PCIe控制器, DDR3控制器和LTL Engine, 40G MAC控制器外,主要的是两个40G MAC之间的bypass mux, 可以将FPGA当成dump-in-the-wire, 网络数据直接从FPGA和NIC之间通过, 不需要CPU干预,FPGA可以直接检查修改网络包,同时NIC和FPGA都有独立的PCIe和CPU通信, 可以独立工作。

Application on Design

根据上面的架构, FPGA可以在数据中心被当作本地加速器, 网络加速器以及远程加速器

fpga server

  • 本地加速器时, 实现了和前一篇论文一样的Bing Search Ranking逻辑, 相比软件实现, 可以达到2.25倍的吞吐量提升。 下图是分别在FPGA和软件实现情况下连续五天的监控结果, 可以看到FPGA上实现了更小的时延 fpga server 下图是连续五天的负载和时延结果, 可以看到在相同负载下, FPGA能实现更低的时延 fpga server

  • 网络加速器时, 利用上面的bump-in-the-wire结构可以将网络数据的加密,解密功能在FPGA实现,不需要CPU的干预。

  • 远程加速器时, 可以利用上面的Lightweight Transport Layer和40G QPFS接口将FPGA组成一个资源池。 关键就是LTL的实现

LTL在FPGA中实现的框图如下所示:

Results of the Paper

论文最后总结, 使用论文提出的架构, 可以实现Hardware as a Service模型, 将FPGA当成一种资源来调度,类似于YARN来管理任务。

Reference

  
志飞 /
Published under (CC) BY-NC-SA