学习理财博客空间

理财鱼

您现在的位置是:理财鱼 > 理财方法 >

理财方法

英伟达要「甩开」CPU

发布时间:2022-03-22 13:32理财方法 评论

加速器类似于图像处理单元(GPU)已经越来越多地用在现代的数据中心,因为他们拥有高计算能力和高带宽。传统来说这些加速器依赖于“主应用代码”和运行在CPU上的操作系统来控制他们对存储设备的访问。CPU控制GPU对存储设备的访问在典型的GPU应用上都有比较出色的表现,比如稠密的神经网络训练,其中数据访问的模板预定义的很好,有规律的,而且稠密,独立于数据值,能使CPU把存储数据粗粒化,并且能使存储数据访问和与加速器的数据交互有效协同。不幸的是,这种以CPU为中心的策略导致了CPU-GPU过度的同步,并且IO阻塞恶化,减少了需要细粒度的存储访问模板的新兴中的访存带宽,例如图和数据分析,推荐系统,图神经网络。在我们的工作中,我们提出了一种能达到细粒度,高吞吐率的GPU内存访问方法来访问NVMe固态存储硬盘(SSDs)通过一个新的叫BaM的系统结构。BaM缓和了IO阻塞恶化通过使用GPU线程来读或者写少量的需要计算的数据。

我们展示了(1)运行在GPU上的BaM基础软件可以识别并细粒度,高效率地对底层存储设备进行访问。(2)即使是消费级地SSD,BaM系统和贵很多的只用DRAM地方案相比也可以支持应用性能。(3)减少的IO阻塞可以带来更大的性能收益。这些结果是通过引入高吞吐率的GPU数据结构类似碎裂和软件缓存来实现GPU中大量的进程级并行来解决SSDs访问的长延迟。我们已经简历了一个BaM系统原型并且在一些应用和数据集上面使用不同的SSD类型估算了它的性能。和最先进的解决方案相比,BaM原型提供了平均的0.92x和1.72x端到端加速倍数,载荷为BFS和CC图分析,使用了4个Intel Optane SSD硬盘和高达4.9倍的数据分析负载,使用了一个Optane SSD。

简 介

近年来GPU的计算吞吐率快速增长,举个例子,如表1中所示,GPU的计算吞吐量从G80到A100在13年的跨度中增长了452倍。可以看到的是,A100的吞吐量已经比它的暂存CPU高出了1~2个数量级。尽管GPU内存带宽的增长没有如此引人注目,表1中提出的18倍,但A100的内存带宽也比它的暂存CPU高出一个数量级。一个相同趋势也趁现在AMD的各代GPU上。因为拥有这种级别的计算吞吐量和内存带宽,GPU已经变成了流行的高性能计算应用设备,占据了神经网络训练计算设备的主要位置。

表1.从NVIDIA G80到A100的性能进步

新兴的高价值的数据中心负载比如图和数据分析,图神经网络,还有推荐系统,能潜在地受益于GPU的高计算吞吐量和高内存带宽。然而,这些工作负载必须涉及到大量的典型的数十GB到数十TB的数据结构,在预测中,未来将增长迅速。如表1中所示,A1000的内存容量,虽然和G80相比增加了53倍,但是也仅有80GB,和这些工作负载所要求的容量相比相差甚远。

对于存储这些大容量数据结构而GPU内存容量不足的问题,一个可行的解决方案是把多个GPU的内存容量合并来满足存储需求,并使用快速的共享内存互联类似NVLink来连接多个GPU,使得他们能访问每一块的内存。整个数据结构首先会被分片存到GPU的内存中,之后算法会识别并且访问他们实际使用的部分。这个方法有两个缺点。首先,整个数据结构需要从存储空间移动到GPU的内存中,即使仅有一块被访问到,这会显著增加应用的启动延迟。其次,数据大小取决于应用所需求的GPU格式,它会导致需要储备的计算资源严重超出当前的工作负载。

使用主存,目前典型的范围在128GB~2TB大小,来帮助存储分片后的数据结构可以减少所使用的总GPU数。我们把这种使用主存来扩展GPU内存的方式称之为DRAM-only解决方案。因为多个GPU可能倾向于使用相同的CPU和主存在数据中心的服务器中,对于每个GPU的内存容量来说,这些DRAM-only解决方案仅仅增加了主存的几分之一的内存。举个例子,在英伟达DGX A100系统中,每个主存被8个GPU共享,因此,使用主存仅仅把每个GPU的内存扩展了主存大小的1/8。

对于它们最近的在延迟,吞吐率,花费,密度和耐久度上的提升,SSDs有理由成为实现另一种内存层次的候选方案。在这篇文章中,我们提出了使用GPU来使用本地的或者远端的SSD来扩展GPU的内存作为一种更低成本和更加具有可伸缩性的方案。我们将比较该方案和目前最好的解决方案的性能。

方案:我们提出了一种新的系统接口叫做BaM(大型加速器内存)。BaM的目标是来扩展GPU的内存容量,并有效地增加存储器访问带宽,同时提供高层次的GPU进程抽象,使得GPU线程能完成按需的,细粒化的访存请求,来扩展内存层次。在这篇paper中,我们提出并且估计了一些关键点,并且整个BaM的设计提出了三个重要的技术挑战来有效地支持这些加速应用的按需访存请求。

首先,对于按需的访存请求来说,传统的内存映射的文件抽象方式以来虚拟地址转换来计算当前待访存数据的位置。然而,应用稀疏地访问大型数据结构会导致过度地TLB缺失,而且串行化并行访问请求会导致大量的GPU线程。BaM提出了一种高并发,高吞吐量的软件缓存来对它进行替代。这个缓存是高度参数化的,可以让开发者根据他们应用的需求进行设置。有了软件缓存,BaM不依赖于虚拟地址转换,因此就不会被出串行化的事件影响比如TLB缺失。

其次,基于内存映射的文件抽象使用缺页处理进行维护,并且运行在传统的CPU上的文件系统服务有数据搬运的需求。以CPU为中心的模型,这里指通过CPU来处理缺页时的数据搬运,对于OS的缺页处理函数来说受制于底层的CPU进程级并行性是否可行。为了解决这个问题,BaM提供了一个用户级的库用于在GPU内存中实现高并发的NVMe提交/完成队列,这使得按需访问的GPU线程在软件缓存未命中的情况下仍然能高吞吐量地完成访存。这种用户级别的方式使得软件每次访存的开销较小,并且支持高级别的进程级并行。

第三,为了避免虚拟地址转换和缺页处理的高开销,应用程序员采取了对数据进行分块并且根据每种计算方式控制数据搬运的方式。传统文件系统服务中这样的CPU-GPU同步带来的高代价迫使开发者粗粒度地搬运数据。不幸地是,由于对我们目标程序的数据访问倾向于无规律和稀少的。这些粗粒度的数据搬运导致SSD和CPU/GPU的内存中很多有无用的字节,一个现象是I/O扩大。如参考文献中所述的工作,I/O扩大减少了关键资源的有效带宽例如PCIe链路。

表1中,对于A100,访存带宽受限于PCIe Gen4的x16带宽,它是32GB/s,仅仅约为A100内存带宽的2%。更严重的访存由于I/O扩大引起的访存带宽的丢失可以认为是应用性能丢失的一个重要信号。在BaM中SSD使用并行队列和多个SSD,我们实现的系统中GPU可以足够快速地进行细粒度的I/O请求,来完全使用SSD的设备并且明显地减少I/O扩大地级别。

共8页: 上一页下一页

>相关《英伟达要「甩开」CPU》内容:


1、 英伟达收购失败后,ARM计划裁员15%,主要集中在英美两国

理财鱼小提示:英伟达收购失败后,ARM计划裁员15%,主要集中在英美两国 据BBC新闻报道,继美国英伟达(Nvidia)收购失败后,软银集团(SoftBank Group)旗下安谋(ARM)计划裁员15%。 总部位于英国的安谋在全球约有6400名员工。据报道,裁员将主要集中在英国和...【继续阅读】


2、 英伟达退出并购交易后 Arm计划将其六千员工裁减一千

在英伟达斥资400亿美元收购交易失败后,英国芯片设计商Arm计划裁减多达1000个工作岗位,占其员工总数的15%。 Arm发言人周二告诉媒体,“像任何企业一样,Arm正在不断审查其业务计划,以确保公司在机会和成本之间取得适当的平衡。不幸的是,其中就包括在全...【继续阅读】


3、 英伟达新款 MX550 测试出炉:R7 6800H 核显水平

今天,数码博主 " 金猪升级包 " 放出了英伟达新款 MX550 2GB 独显的测试数据。 跑分方面,MX550 在 3DMark FireStrike 上得分 6058 分,不及 R7 6800H 核显的 7573 分。 在游戏实测中,MX550 在《战争机器战略版》《全面战争 传奇特洛伊》《F1 2018》《CS...【继续阅读】