PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

AMD Radeon Pro SSG分析:看NAND是如何改变GPU游戏规则的

[复制链接]
跳转到指定楼层
1#
mercuryfall 发表于 2016-8-16 17:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:7294|回复数:26
首先一提: 此类文档并不好找,所以本文80%的内容取自http://www.tomshardware.com/news/amd-radeon-pro-ssg,32365.html,我就是总结分享一下,权当是好久没做文字翻译的复健,其中有删改。
而且想了半天这东西扔在这里比放到隔壁显卡区更加合适,毕竟主题是NAND,GPU其实还是那块。

以下正文:

AMD上个月发布了他的Radeon Pro SSG,其在最新的工作站级GPU上集成了两个M.2 SSD。
其最初的研发工作开始于2013年5月,代号“Project Delta”,目标是在GPU上提供1T以上可直接访问的非易失性内存,穿透多层的软硬件系统交互,直接板载一个存储卷,为大规模数据运算提供明显的性能提升。
在发布时AMD提供了另一个令人印象深刻的Demo:普通的工作站级GPU(上一代FirePro)在标准的配置下渲染8K视频,可以达到17FPS的性能,而SSG能够实时渲染并达到92FPS。这玩意看上去就很有意思,想让人好好研究一下。

SSG的硬件结构

常规系统所使用的GPU(通常板载1-32G RAM)是独立于系统存储池之外的,他们通过PCIe来通讯。当GPU处理的数据量超过板载内存容量的时候,需要不断的从系统内存和主机存储池(硬盘)中传输过来,这就造成了系统开销,提高了延迟。

在硬盘和GPU之间传输数据首先需要CPU将数据导入到系统内存中,这不仅消耗了几个CPU周期,还占用了DRAM的容量和带宽。当前已经有一些技术可以减轻这些开销和延迟,比如NVMe SSD和GPU之间可以使用p2p技术通信而不经过主系统内存(PCIe协议本身支持两个PCIe设备之间不通过CPU直接传输,但通常有一定的硬件条件限制)。此类技术确实提供了更快的访问,但依然需要主板的PCIe总线来传输数据,还是会来带一定的性能损失。
顺带一提:Nvidia的NVLINK技术同样使用p2p来提升两个GPU之间的通讯能力,但与这里提到的p2p通信技术采用了不同的架构。

AMD的方案在硬件层面是很简单的,他们使用PEX8747 PCIe桥接芯片连接了两个M.2(PCIe3.0 x4)插槽,为GPU提供了一个独立的PCIe连接,并单独由GPU控制(无法由CPU直接访问)。AMD表示这可以提升x10的延迟表现,并减少对主板PCIe总线的占用。

SSG使用了两个512G三星950Pro SSD组成Raid 0,来提供总计1T的扩展空间。
目前的开发者套件中仅允许操作系统看到GPU存储池,但AMD表示将来开发者可以随意选择将这部分空间用于私有还是共享。

同样一个很有意思的事情是:AMD目前在APU上开发的HSA(异构计算)Framework上提供了很多方便手段来允许各种组件(CPU、GPU、内存)作为一个整体的异构单元来运行。其中最引人注目的功能就是可以让CPU和GPU在同一个内存区域内同时工作,节省数据搬运工作带来的延迟和性能损失。而这次的SSG理论上讲也是可以使用HSA技术来让GPU上面的硬盘被CPU和GPU同时访问,但AMD拒绝回答HSA能否应用于Radeon Pro SSG的问题。

系统瓶颈到底在哪?

AMD的Demo所使用的对比机型并不廉价,整套系统售价超过10000$,与Radeon Pro SSG一样搭载了两块512G 950pro组成的raid 0阵列(只不过是在主板上而不是在显卡上)。但这套系统在8K视频编辑时提供了17fps的性能,此时存储设备提供了848MB/s的吞吐量。
搭载SSG的系统在同样负载下提供了92FPS的性能,板载的Raid 0阵列提供了4.59GB/s的吞吐量(部分时候超过了4.6GB/s),而单个950Pro的持续读取速度能够达到2.5G/s,所以从结果上看AMD差不多实现了两块硬盘的线性提升。同时AMD还表示这个结果基于早期的软硬件版本,暗示他们觉得等平台成熟之后性能可以更高。

但这样的性能差距其实是有猫腻的,因为大多数M.2 SSD阵列的瓶颈在于芯片组的性能,并不能完全发挥。数据在PCH和CPU之间通过DMI总线连接,Haswell平台被限制在PCIe 2.0 x4,最新的Skylake平台提升到了PCIe 3.0 x4,但依然不够。少数主板通过将M.2 PCIe通道直接与CPU相连来解决PCH/DMI总线的速度瓶颈,但这个技术并没有被广泛应用,而且目前貌似并没有哪个主板把两个M.2插槽都是用这个技术连接到CPU上。

这个锅必须甩给Intel,不论i7还是E3v5,CPU上一共只有16条PCIe 3.0通道,分给其他设备之后势必影响显卡的接口速度,M.2占用一个x4直接导致显卡变成x8,虽然可以通过加桥接芯片解决,但总归x16的总带宽没变,所以其他设备只能走PCH芯片,又会受到DMI总线速度的限制。而如果想摆脱这点,需要上到E5v4或更强的CPU才行。

不过,虽然DMI总线限制了板载Raid 0的性能,但依然可以通过PCIe扩展卡的形式来解决这个问题,甚至还可以在相邻的PCIe插槽上放一个专门被GPU读取的PCIe SSD,同样可以跳过DMI总线的速度问题。不过AMD答复表示它们的SSG方案即使对比通过p2p连接的PCIe SSD依然更快,因为后者依然存在PCIe总线争抢的问题,而且有更大的延迟。

而且Raid 0在提供了更快的速度、更大的容量同时,也带来了更大的数据风险。当然我们可以说SSD的Raid 0比HDD要稳定的多,但两块SSD的Raid 0显然比单独一块SSD具有更大的损坏几率。
商业运算使用了大量的工作站级GPU,它们处理的数据都是有着商业意义的,这些消费者可不会随随便便的就接受数据丢失风险的提升。提高存储池可恢复性的办法很多,比如Raid 5或者Raid 6,但这时候两块SSD就不够了,对空间紧张的显卡来说可能是个问题。同时更加复杂的Raid会占用更多的性能,这对于GPU来说或许不是问题,但依然会稍微拖慢整张卡的速度,增加延迟,并减少的可用容量。

所以,这玩意到底算硬盘还是内存?

其实业内已经开始尝试使用非易失性存储,比如3D XPoint和NAND,作为总存储池之上的附加层,并将它们作为常规RAM的附件映射为一个扁平化的内存模型来使用。此时系统将识别出一个非常大的RAM空间,而实际上这其中的大部分容量来自于NAND或3D XPoint,而不是真正的RAM。
的确,当系统需要访问的内容正好在NAND中而不在GDDR5中时(缓存未命中),会导致一定的性能下降。但比起提升了几十倍的可寻址空间来说,这点性能损失不算啥。

多亏了Intel的3D XPoint,使用非易失性存储器作为RAM变成了一个热门话题,Linux(pmem.io)和Windows(Server2016)都将提供这方面的支持,允许它们同系统内存串联使用。绝大多数的实现方式都是把非易失性存储设备扔到RAM总线上,比如NVDIMMs、UltraDIMMs、Memory1等,当然也有基于NVMe协议传输但同时也作为内存映射来使用的设备,比如PMC-Sierra Flashtec NVRAM(但这货的容量就……)。他们的共同特点就是相比于ECC内存$8/GB的价格来说便宜得多,空间密度也大得多。(比如Memory1的256GB Diablo,同样适用DIMM插槽,价格差不多$0.3/GB)

不过AMD表示他们目前并没使用上面提到的技术将NAND作为内存映射来使用(喂),但硬件上完全可以做到,并且也确实是一个可行的发展方向,他们也确实收到了不少开发者要求提供一个扁平内存模型。虽然当前AMD将整个空间都作为存储设备使用,但将来会允许将其中的一部分(或全部)划分成内存来操作,这会为很多新的架构设计提供可能。同时Radeon Pro SSG附带的1T SSD空间也并不是绝对的,AMD表示存储管理能力不是问题,随着M.2 SSD容量和技术的提升,将来会提供每个M.2 SSD 10TB容量的版本。

当然对存储空间的需求是无止境的,不管多么大都不能保证完全够用,所以决定哪些文件被缓存到NAND中也是很重要的。如果GPU需要的内容连NDND中都找不到,就需要再去主系统硬盘上找,这样的Cache miss会带来很大的性能损失,通常会导致卡顿甚至暂停运算。
所以算法设计在这里会变得很关键,在正确的时候取到正确的数据将是开发者关注的重点,而主系统与此同时也使用的NAND作为内存的方案,那就会让整个系统变得更加复杂。适时的清除不需要的数据,会变得同自动检测常用数据(热数据)并将它们预取到板载Raid 0阵列中一样重要,因为这会提供更大的可用空间。

不过这方面其实并不用太过担心,目前对于缓存命中方面的算法研究是很成熟的。不仅有针对一次缓存未命中的改进读取策略、还有类似机器学习的算法参考过去的使用记录预测下一步的读取趋势,更可以针对实际的应用场景制定详细的QoS计划对数据传输的优先级排序。
AMD同时也提供了一个接口允许开发者指定将部分数据写入板载的SSD,这需要开发者单独为其编写代码来实现性能的最大化,但同时也存在一些技术可以将这些基础的缓存优化技术抽象出来,将开发者从代码优化中解放,随着生态系统的发展我们可以期待这样的策略被广泛应用。

那么写入寿命怎么办?

在AMD眼中,当前SSG最棒的一点就是搭载的SSD的维护不需要外界干预,SSD本身就已经具备了磨损平衡、垃圾回收等功能。同时AMD表示M.2和NVMe都是成熟的技术平台,使用它们不仅可以加速产品研发速度,更可以为将来的产品提供兼容性,比如3D XPoint和其他更加先进的存储介质。

AMD表示在目前采用了很多手段来增强SSD的性能和可靠性,但并没有给出具体的数据。单块512G 950pro本身具备400TBW的寿命,两块加起来就是800TBW,而且大部分数据在使用中都是读取为主,还可以靠GPU的优化,用GDDR5吸收一部分写入量、将随机数据转换成连续写入又可以增加一部分写入寿命,同时AMD显然会加入一些类似SMART监控之类的功能,在硬盘出现异常时提醒更换。

需要考虑功率和发热问题?

SSD特别是M.2 SSD对热量是很敏感的,高温下很容易出现过热降速的情况,更何况现在将M.2 SSD扔到了GPU这个发热大户旁边。

需要说明的是,虽然M.2规范中并没有关于散热器的标准,但依然有比如浦科特M8Pe这样的产品提供了散热外壳(其实还有带水冷的)。AMD表示它们并没有遇到SSD过热降速的情况,同时也说了他们的主动散热器可以用来给SSD降温,也就是说GPU散热片跟SSD是连在一起的。大部分SSD在85摄氏度的时候开始降速,GPU散热器做的好的话完全可以保证SSD在这个温度以下。

功率方面,三星950pro的最大功率为5.1W,这相比于工作站级的GPU来说微乎其微。要知道目前板载显存的功耗也是不容小视的,根据AMD自己的测试:R9-290x上的显存功耗为30W,而且这个数字随着带宽和容量的增加并不是线性提升的,而是加速提升,如果将来GPU都使用NAND反而会有助于减轻功耗问题,提供更大的寻址范围。

这货到底有啥用?

Radeon SSG的使用场景还是很多的,比如基因组测序、多媒体渲染、医学成像、石油和天然气勘探等等。
石油和天然气勘探会使用大规模的地质数据,增加几个数量级的内存容量可以将地质分析的窗口从几英里扩大到整个地区,不仅提高生产力,而且增强了对地质趋势的分析能力。
现代医学图像处理技术会对人体成像数据进行实时处理(比如心跳),与静态的2D照片相比能够提供无法相提并论的视野。医学图像的可视化可以显著提升医疗人员的诊断能力,但数据量太大导致目前仅能显示几秒的数据,而使用Radeon Pro SSG将有可能将其增加到几分钟。
数据中心领域的用处就更大了,当前GPU被广泛用于机器学习、数据库加速等场景,增加一个明显更大的存储空间将会明显提升这些场景的性能。

结语:内存和硬盘之间的界限将越来越模糊

操作系统本身制约了很多数据传输操作的性能,所以将文件直接扔到GPU当中变成了AMD轻松提升大数据运算性能的手段。同时减少数据在PCIe总线上的实时传输减轻了对总线的占用,这对其他设备的使用也有好处。

目前来说仅仅是将SSD作为一个额外的存储设备扔在了GPU上,但随着技术的进步内存映射模型的开发,性能将变得更加可观。存储设备的爱好者长期以来对目前使用NAND的方式都非常不满,因为经过5年的半主流应用我们依然没能利用到NAND技术的全部潜能。然而随着行业内的开发者创新性的将NAND与内存相融合,我们将很快意识到它的真正实力。部分顶级的计算界大牛通过将NAND挪到PCIe或DIMM总线的方式让数据离CPU更近了一步,而AMD在Radeon Pro SSG上做的不过是类似的将数据搬到了GPU的旁边。NAND比DRAM便宜得多,也比GDDR5要省电的多,这都是制约供应商提供更大容量的限制条件。更低的价格和功耗明显取得了胜利,我们期待这个技术更快的发展。

AMD的开发者套装会在2017年上市,考虑到这是一个非常前沿的产品,其引入高端游戏市场显然还需要一段时间,但不过是迟早的事情。目前GDDR5的容量对于1080p的游戏还是没问题的,但将来4K/8K分辨率变成主流的时候就不一定了。
而对于VR来说,这个技术的意义就非常大了。从目前的时间表上看,等搭载NAND的GPU进入高端游戏市场的时候,我们应该看到4TB的M.2 SSD上市了。而且可以肯定的说,第一个板载SSD的高端游戏显卡一定会是专门瞄准VR市场而研发的。

至于Radeon Pro SSG的将来,AMD明显在考虑在硬件设备上使用扁平内存模型,同时他们也很直白的表示SSG的基础是建立在将来容量更大、更快、更可靠的存储技术上的,比如3D XPoint。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1绝对值 +1 收起 理由
xeon_phi + 1 很给力!

查看全部评分

2#
nighttob 发表于 2016-8-16 18:08 | 只看该作者
我不认为这玩意算存储子系统,所以还是移显卡区了

PCIe设备间的P2P访问要通过switch,所以AMD直接加一颗PLX实现
我是觉得如果AMD真想折腾这玩意的话,不如核心内置switch或者bridge,甚至直接集成一个NVMe主控,考虑到AMD一直喜欢在GPU里集成全家福显存控制器,所以我觉得这点事想办也不是不行

但从另外一个角度来说,未来是软件定义xx的时代,硬件只要提供计算器、存储器和通道就行,所以SSG也就是解决一个阶段所需的产物
3#
inSeek 发表于 2016-8-16 19:08 | 只看该作者
真猜对了,PLX加持的。
所以理论上,任何板载PLX的主板,在同一颗PLX下 接GPU+NVMe SSD,外加软件层面的驱动支持,就能实现这套系统了的样子?
4#
FlankerWang 发表于 2016-8-16 19:14 | 只看该作者
inSeek 发表于 2016-8-16 19:08
真猜对了,PLX加持的。
所以理论上,任何板载PLX的主板,在同一颗PLX下 接GPU+NVMe SSD,外加软件层面的驱 ...

但你这系统的内部通信会占用pcie插槽的带宽
5#
inSeek 发表于 2016-8-16 19:17 | 只看该作者
另外好奇的是,GPU-PLX-SSD主控-NAND颗粒 的延迟会比 GPU-PCIE控制器-IMC-RAM 还小?
6#
inSeek 发表于 2016-8-16 19:18 | 只看该作者
本帖最后由 inSeek 于 2016-8-16 19:20 编辑
FlankerWang 发表于 2016-8-16 19:14
但你这系统的内部通信会占用pcie插槽的带宽

可能是我没表述好?
我上面描述的整个硬件的构架和这AMD卡没差别啊,都是PLX8747下接SSD和GPU。差别是,我说的方案,PLX和SSD是在主板PCB上;AMD这卡,PLX和SSD是在显卡PCB上而已。

这PLX支持peer-to-peer。


7#
nighttob 发表于 2016-8-16 19:47 | 只看该作者
inSeek 发表于 2016-8-16 19:17
另外好奇的是,GPU-PLX-SSD主控-NAND颗粒 的延迟会比 GPU-PCIE控制器-IMC-RAM 还小? ...

因为你想要的数据不一定在DRAM里面,都是要从NAND存储里面读取,绕过主机DMA这一段当然延迟会有明显下降
8#
inSeek 发表于 2016-8-16 20:15 | 只看该作者
nighttob 发表于 2016-8-16 19:47
因为你想要的数据不一定在DRAM里面,都是要从NAND存储里面读取,绕过主机DMA这一段当然延迟会有明显下降
...

这个倒是理解。但DMA的延迟和SSD存取的延迟比,太小了啊...
另外这方案赤果果的就是一个软件方案么...
9#
nighttob 发表于 2016-8-16 20:27 | 只看该作者
inSeek 发表于 2016-8-16 20:15
这个倒是理解。但DMA的延迟和SSD存取的延迟比,太小了啊...
另外这方案赤果果的就是一个软件方案么...
...

AMD给的数据当然是特别理想的情况
显然是软件方案,AMD现在又没在GPU里面集成SSD主控

10#
fisherwei 发表于 2016-8-16 22:09 | 只看该作者
本帖最后由 fisherwei 于 2016-8-16 22:11 编辑
inSeek 发表于 2016-8-16 19:18
可能是我没表述好?
我上面描述的整个硬件的构架和这AMD卡没差别啊,都是PLX8747下接SSD和GPU。差别是,我 ...

plx实质就是一个switch

你可以用ethernet switch想想一下:

1、你的PC和你的NAS之间用一台switch A连接,switch A上联一个更大的switch B,若干邻居的PC连接到switch B上,这就相当于amd的方案

2、你的pc和若干邻居的pc都连接在一个switch B上,nas也连到B上,这是你的方案。

方案2的性能,取决于switch B的性能,而这个性能是显卡制造商不能把控的,
所以,索性,我不管你switch B快不快,我先给我自己的pc和nas之间的switch A上个10G的交换机再说。
11#
inSeek 发表于 2016-8-16 23:22 | 只看该作者
fisherwei 发表于 2016-8-16 22:09
plx实质就是一个switch

你可以用ethernet switch想想一下:

厄... 你说的我理解,但是我说的你没理解-。-

我再更细的解释一遍试试...

首先这卡上是一颗PLX8747,那种有PLX的主板用的也是PLX8747,这颗switch是支持点对点传输的,这也是AMD这卡支持GPU直接从SSD IO数据的基础。
这么在这点上,我说的方案和AMD这卡的方案,硬件基础上是一样的。即:都是在一颗PLX下接GPU和M.2

那么唯一的纠结的点在于,PLX->CPU这边的带宽。那,这是2个方案都不能控制的。所以可以不管。

算了我画个图吧,可能有助于理解...
左边是AMD的卡,右边是我上头说的方案


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
12#
fisherwei 发表于 2016-8-17 00:05 | 只看该作者
inSeek 发表于 2016-8-16 23:22
厄... 你说的我理解,但是我说的你没理解-。-

我再更细的解释一遍试试...

你画的这个图确实和amd的方案一样

但是我觉得更多的情况是主板上的架构是稀奇古怪的,比如万一是 x8 x8 x8 x8 的话,这显卡的x8口就又得和ssd通信,又得和cpu通信了
13#
inSeek 发表于 2016-8-17 11:01 | 只看该作者
fisherwei 发表于 2016-8-17 00:05
你画的这个图确实和amd的方案一样

但是我觉得更多的情况是主板上的架构是稀奇古怪的,比如万一是 x8 x8 x ...

你这说的又是另外一码事情了啊...
14#
mercuryfall  楼主| 发表于 2016-8-18 10:28 | 只看该作者
本帖最后由 mercuryfall 于 2016-8-18 11:04 编辑
inSeek 发表于 2016-8-16 23:22
厄... 你说的我理解,但是我说的你没理解-。-

我再更细的解释一遍试试...

AMD答复过他们的方案在实际使用中依然比你提到的方案要快,而且在硬件上具备实现扁平模型的条件,同时并不能由CPU直接访问。
所以我考虑他的拓扑结构可能并不是你写的那样,而是这样:

同时还需要考虑的是,如果主板不带桥接芯片两个插槽同时插显卡和SSD会导致显卡变成PCIe 3.0 x8,以及主板上可能还有其他PCIe设备的问题。
所以我感觉AMD相当于提供了一个更加稳定的一体化解决方案。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
15#
jleemi 发表于 2016-8-18 10:31 | 只看该作者
然并卵。。。。。。
16#
inSeek 发表于 2016-8-18 10:53 | 只看该作者
本帖最后由 inSeek 于 2016-8-18 10:55 编辑
mercuryfall 发表于 2016-8-18 10:28
AMD答复过他们的方案在实际使用中依然比你提到的方案要快,而且在硬件上具备实现扁平模型的条件,同时并 ...

你说的有可能性。但我觉得可能性不大
原因是:
1. 这么做显然GPU要自带root complex
2. 既然1都实现了,为啥不搞一个2-port的root complex,直连2个SSD,而非要搞一个PLX来空加成本、功耗、系统复杂性和125ns的延迟呢
3. AMD只说CPU不能访问,那把随卡的SSD搞成非标准SSD设备,系统自己不能认出设备,自然就无法存取;然后只能通过AMD的驱动来驱动,不就能实现这个了么...

17#
mercuryfall  楼主| 发表于 2016-8-18 14:04 | 只看该作者
inSeek 发表于 2016-8-18 10:53
你说的有可能性。但我觉得可能性不大
原因是:
1. 这么做显然GPU要自带root complex

想了一下你说的也对,目前用的Fiji芯片,就算AMD真想重新做也应该是GCN4.0或更高架构的东西,没道理拿上一代的修改。

不过SSD方面,AMD强调SSD是随便插的,这里的950pro只是演示用的搭配,并不是定制版,所以大概是文件系统的不同。
18#
nighttob 发表于 2016-8-18 14:29 | 只看该作者
mercuryfall 发表于 2016-8-18 14:04
想了一下你说的也对,目前用的Fiji芯片,就算AMD真想重新做也应该是GCN4.0或更高架构的东西,没道理拿上 ...

这种方案还存在文件系统这种概念么?
我认为就是两个SSD R0作为一个pool,这个pool用来扩展显存

19#
mercuryfall  楼主| 发表于 2016-8-18 14:35 | 只看该作者
nighttob 发表于 2016-8-18 14:29
这种方案还存在文件系统这种概念么?
我认为就是两个SSD R0作为一个pool,这个pool用来扩展显存

哦,是我表述不清,当然不存在文件系统这种概念。
20#
fisherwei 发表于 2016-8-18 19:38 | 只看该作者
本帖最后由 fisherwei 于 2016-8-18 19:40 编辑
inSeek 发表于 2016-8-17 11:01
你这说的又是另外一码事情了啊...

不啊,你说的是任何一个用同样型号的switch芯片的主板都可以,4个x8显然就不对了呀,更多奇奇怪怪的组合也是不行的对么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部