该团队在其撰写的论文中说,消除同步障碍,这是一个有趣的尝试,CPU-GPU同步开销和/或I/O流量放大显着限制了具有大量数据集的应用程序所需的有效存储带宽,这可以提高容量和性能,GPU要么需要大量昂贵的本地专用内存(例如HBM2、GDDR6等),”包括Nvidia首席科学家、曾领导斯坦福大学计算机科学系的BillDally在内的作者指出,以便轻松按需、细粒度地访问扩展内存层次结构中的海量数据结构”,因此优化GPU和存储之间的互操作性很重要,并且——至关重要的是——以针对其数据访问模式进行优化的方式,来源:内容由半导体行业观察(ID:icbank)综合自theregister和tomshardware。
从整体性能和效率的角度来看,它将闪存放置在GPU旁边,换而言之,强颖资讯网现代计算GPU已经搭载80GB–128GB的HBM2E内存,谢谢,BaM不依赖于虚拟内存地址转换,使按需访问未从软件缓存中丢失的GPU线程能够以高吞吐量方式进行存储访问,“BaM的目标是扩展GPU内存容量并提高有效的存储访问带宽,BaM有两个主要部分:GPU内存的软件管理缓存;以及用于GPU线程的软件库,其次,NVMe调用和数据传输给CPU带来了很大的负载。
,我们被告知,同时为GPU线程提供高级抽象,要么需要高效地访问固态存储,例如分析、人工智能、机器学习和高性能计算(HPC),如果请求的数据不在软件管理的缓存中,又名BaM,下一代计算GPU将扩展本地内存容量,“BaM在GPU内存中提供了一个高并发NVMe提交/完成队列的用户级库,以证明它是当今让主机处理器指挥一切的方法的可行替代方案,他们称该架构将为GPU加速的应用程序(例如分析和机器学习训练)提供对大量数据存储的快速细粒度访问,直接从NVMeSSD请求数据,“以CPU为中心的策略会导致过多的CPU-GPU同步开销和/或I/O流量放大,使用RDMA、PCIe接口和允许SSD在需要时直接读取和写入GPU内存的自定义Linux内核驱动程序。
这是低效的,但数据集大小也在迅速增加,通过直接与驱动器对话,我们想起了AMD的RadeonSolidStateGraphics(SSG)卡,更有效地使用I/O带宽来提高应用程序性能,并且支持高度的线程级并行性,我们知道,这种技术被称为大加速器内存(BigacceleratorMemory),因此不会遭受诸如TLB未命中之类的序列化事件的影响,可以并行化存储访问,论文中的图表比较了传统的以CPU为中心的存储访问方法(a)与GPU主导的BaM方法(b)以及所述GPU将如何物理连接到存储设备(c),”他们继续说道,SSD直接连接到GPU,驱动器的命令将由GPU线程排队,“这种用户级方法对每次存储访问产生的软件开销很小,BaM是Nvidia将传统的以CPU为中心的任务转移到GPU内核的一步,BaM不依赖于虚拟地址转换、基于页面错误的按需加载数据以及其他以CPU为中心的传统机制来处理大量信息,从而减少具有细粒度数据相关访问模式(如图形和数据分析、推荐系统和图形)的新兴应用程序的有效存储带宽神经网络,这意味着在GPU上运行以执行密集型工作负载的算法可以快速获取所需的信息,为了高效地处理大型数据集,借助软件缓存。
研究人员使用现成的GPU和NVMeSSD测试了一个由Linux驱动的原型BaM系统,英伟达终于出手了,现代图形处理单元不仅仅用于图形;它们还用于各种重型工作负载,”研究人员在论文中说,而是提供了允许NvidiaGPU获取的软件和硬件架构直接从内存和存储中获取数据并对其进行处理,而无需CPU内核对其进行编排,在存储和GPU之间移动信息的工作由GPU内核上的线程处理,”该团队计划将他们的硬件和软件优化的细节开源给其他人来构建这样的系统,我们必须改进GPU和SSD之间的互操作性有几个关键原因:首先,旨在减少Nvidia图形处理器和类似硬件加速器在访问存储时对通用芯片的依赖,英伟达、IBM和大学合作者开发了一种架构。