前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GPU是怎么勾搭NVMe的

GPU是怎么勾搭NVMe的

作者头像
冬瓜哥
发布2019-06-10 17:00:37
1.5K0
发布2019-06-10 17:00:37
举报
文章被收录于专栏:大话存储大话存储

广告:冬瓜哥新作《大话计算机》将于8月份出版,详细内容点击链接。

很久很久以前,CPU和内存是分离的,内存控制器位于北桥。CPU每次取数据都要经过北桥中转,CPU嫌太慢,于是,把内存控制器直接集成到了自己内部,而北桥则只保留PCIE控制器。再后来,嫌PCIE控制器也离得太远了,就也把它收归麾下,北桥成了光杆司令,于是退出了历史舞台。现在的主板上只有CPU和I/O桥在一唱一和。突然不知哪天,杀出来了个GPU,之前人们也未曾想过GPU除了渲染图像还能做更多事情,甚至被用来挖矿。GPU也要访问内存,但是现在访问内存要从CPU走一圈,GPU不干了,明明是我在计算,CPU只是控制,为啥我要不远万里从CPU那取数据。于是,GPU和NVMe盘开始勾搭上了。欲知详情,往下看。

本文组织:

  1. DELLEMC R840/R940xa服务器简介
  2. GPU和NVMe到底怎么勾搭的

1

R840/R940xa服务器简介

5月8日,DELLEMC宣布了两款新服务器: PowerEdge R840和R940xa。这两款服务器都是4路CPU机型,将于2018年第二季度上市。

R840支持多达24个直连(直连到CPU,未经过PCIE Switch)NVMe驱动器和2个GPU卡或FPGA卡作为CPU加速器。在Monte Carlo Risk Analysis模拟中,R840相比R820快3.5倍。支持OpenManage RESTful API管理和用于DevOps集成的IDRAC9。显然,R940xa和R840面向的市场除了传统高端服务器市场外还可以定位到人工智能(AI)、机器学习和数据分析场景。

此外R840最大支持48个DIMM内存槽,以及最高12个NVDIMM槽位。支持RDIMM /LRDIMM,最大速率2666MT/s,最大容量6TB。

R840前背板有24个2.5槽位,或者8个3.5槽位,对应着不同的背板可选。具体支持的选项如下:最多8个3.5” SAS SATA (HDDs/SSDs) ,或者最多24个2.5” SAS/SATA (HDDs/SSDs) ,或者最多24个 NVMe PCIe SSDs,或者SAS/SATA盘与NVMe盘混插(NVMe盘数量最多12个)。这些不同的选项对应了不同的背板选择。前面板还支持额外2个2.5 SAS/SATA盘位。

NVMe与SAS/SATA混插的具体场景,冬瓜哥很早之前就写过一篇文章介绍。有兴趣可以阅读:【冬瓜哥画PPT】最完整的存储系统接口/协议/连接方式总结 一文的后面部分。

R940xa为一款4U4路的机型。最大可支持4个双槽占位的GPU卡或者8个FPGA卡。硬盘槽位可达32个,其中4个可以用于SAS/SATA和NVMe混插。R940xa(“XA”代表“eXtreme Aggregation”),因为它的最大GPU:CPU为1:1。

2

GPU是怎么勾搭NVMe的

R840和R940xa这次无一例外的都支持大量NVMe槽位。GPU配NVMe,也算是好马配好鞍。由于GPU运算时可能需要吞吐大量数据,硬盘如果拖了后腿,那么就喂不饱GPU。但是,NVMe是连接到CPU上,而NVMe的数据也需要先到DDR RAM,然后才能被GPU访问。而DDR RRAM也是连接到CPU上。如下图所示。

看到上面的图,是不是感到,任何数据都要进CPU转一圈,只因为DDR controller被集成到CPU内部了。这完全多此一举。为何不能让GPU直接从NVMe读数据呢?其实是可以的,只要GPU内部跑一个NVMe驱动就可以了,并负责NVMe的枚举、初始化操作,这样就与CPU完全没什么关系了。但是这样做会让Mr.CPU感到很尴尬,没它啥事了。最好的办法是依然让Mr.CPU+OS来枚举初始化和配置NVMe,但是读写数据的时候可以让GPU与NVMe直接沟通。NVMe盘是带有DMA Engine的,只要将DMA目标地址设置为GPU BAR内的某个空间即可让NVMe盘将数据DMA到GPU BAR内,或者从GPU BAR拿出来。而GPU并不会把它内部所有存储器都映射到BAR里,只可以做到现用现分。所以要求对应的GPU必须支持这种P2P bypass CPU方式。

AMD GPU的DirectGMA技术便是这样一种技术。如上图所示,第一步通过GPU提供的编程库向GPU申请一块显存,GPU传回指针。第二步配置NVMe的DMA engine让其将数据DMA到对应指针处。第三步DMA数据,这一步直接bypass CPU/RAM,直接通过PCIE通道实现NVMe与GPU的直接勾搭,延迟下降一大截。第四步调用GPU编程库通知GPU开始计算。

实现上述的P2P传输过程需要一个部件的参与,那就是PCIE Switch。目前市场上主流产品为Microsemi公司提供的PCIE Switch产品。如下图所示,当采用了GPU到NVMe的P2P之后,其性能大幅提升。可节省host一端的投资,比如RAM使用量和性能可以下降,CPU规格可以下降,CPU与PCIE Switch的连接通道可以为x4甚至x2,节省PCIE通道的耗费量。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大话存储 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档