Donard计划:利用NVMe设备实现点到点通信(一)

来源:互联网 发布:软件企业量化管理 编辑:程序博客网 时间:2024/06/03 13:35

Donard计划:利用NVMe设备实现点到点通信(一)

Stephen Bates (@stepbates)

简介

       八月份我参加了于加州Santa Clara举办的闪存峰会(FMS)。FMS可能是规模最大的NVM技术展示的会议,包括了技术论坛和宏大的展示区,此次盛会是与NVM的同行与专家进行密切交流的一个良好契机。

       PMC在此次闪存峰会上作出了充分展示。我公司一共呈述了八篇技术论文,发表了一次专题演讲,并推出了 Flashtec NVRAM 产品。我在会上做了题为“利用NVMeCUDA加速数据中心”的演讲,该演讲的内容是基于一项PMC CTO的代号为“Donard”的计划。本篇博文中我将更深刻地阐述该论文中的内容,并讲解该计划可能为数据中心环境中加速带来的影响。

为何提出Donard计划?

       众所周知,SSD的出现极大程度地改变了服务器各项指标之间的平衡关系。SSD出现以前,普遍使用的HDD最高性能可以达到数百MB/s。而今,一个基于PMC Flashtec 控制器的企业级PCIe SSD的性能可高达nGB/s,相当于4KB读写达到百万次IOPS。当CPU面临如此庞大的数据洪流的处理任务时,不可避免地将遭受灭顶之灾。除此以外,在数据处理之前,还需要CPUDRAM中对这些数据进行缓存处理(如图1所示),因而导致了以下三种不良后果:

1.     DRAM的一部分带宽纯粹消耗在数据流进缓存及出缓存处理上面。这些带宽因而无法用来处理更有用的任务。

2.     进缓存处理需要耗费DRAM中的一部分容量,这就意味着系统实际需要的DRAM容量比理想的要多。DRAM价格昂贵,在DC服务器中属于稀有资源,在一个大规模数据中心里,即便每台服务器只增加几GBDRAM容量,都可能意味着成本上数十万美元的加增,同时还带来了更为繁重的功耗及散热需求。

3.     单单为了实现DRAM的容量及带宽,实际所需的CPU就可能比理想的要更为强大。

1:当前的服务器架构,其中,所有进入的数据都必须由CPU及其内存子系统处理,

从而导致瓶颈及系统饱和

       Donard计划针对这一问题的解决办法是在PCIe网格中增加若干计算单元,从而实现所有PCIe设备之间的PCIe点到点(p2p)通信。这就导致了如图2所示的重新平衡后的方案,其中,数据不再需要流入CPU,或在DRAM中进行进缓存处理。取而代之的是,数据可以直接从SSD或网络设备流入数据处理单元。

       Donard计划的解决方案,我有一个很好的类比,就是CPU不再扮演乐队中所有乐师的角色,而改换成担当乐队的总指挥。CPU依然可以管理数据流、提供安全准则及服务质量要求和管理/可靠性方面的业务。但CPU本身不再位于数据通路之上,因此担当的任务远不如从前繁重。这一改变带来了一些有趣的结果:

1.     服务器可能只需要采用功能不那么强大的CPU,因此降低了成本、功耗和散热。

2.     服务器需要的DRAM可能减少了,因此降低了成本、功耗和散热。

3.     服务器的PCIe网格可能可以简化,因此降低了成本、功耗和散热。。

2: Donard解决方案中增加了处理单元,实现设备之间的点到点p2p通信,

CPU的职能变成了交响乐队中的指挥

Donard 实验

        PCIe设备之间实现点到点p2p通信虽非易事,但仍然十分可行。其实,诸如Nvidia这样的公司早已采用如GPU Direct的技术来实现某些种类的Nvidia GPU设备之间的点到点通信。此外,Nvidia还和Mellanox共同合作,证实了点到点通信在异构设备之间也是切实可行的。

       该篇论文中讲述了如何对一个块存储设备实行进出双向的点到点p2p通信,并且采用开源驱动(NVMe Linux 驱动)来实现,而非专用驱动。利用开源驱动的优点在于可以在整个开发者群体中实行共享共用,并且无需锁定任一特定硬件。事实上,我们在此提出的方案可以应用于任何NVM Express(NVMe)兼容的设备。

       为了实现NVMe SSD和其他PCIe设备之间的点到点通信,需要对Linux内核作出一定修改,并对NVMe驱动进行扩展,添加新的IOCTL,以与其他PCIe设备的p2p功能相对接。最初的试验是将一个NVMe SSD(基于PMCFlashtec控制器)与NvidiaK20c GPU卡相连。此次p2p实现的结果与常用办法的对比如图3所示。

3: Donard与采用常用方法进行数据传输的结果比较。Donard提升了带宽利用率,减少了DRAM使用

    从图3 可见,p2p方法既提升了带宽,同时还降低了从NVMe SSD传输数据到GPU时对 DRAM的要求。

后续博文

    下一篇博文将继续探究Donard的方案,并在整体架构中引入了RDMA。敬请持续关注。有任何评论,请与我联系。Twitter @stepbates

0 0
原创粉丝点击