提升GPU运行性能,Big Accelerator Memory正式出炉将开放源码

就在日前微软宣布DirectStorage API已进入PC,可借由这项技术让NVMe SSD绕过CPU和内置内存,直接向显卡内存提供数据的情况下,可大幅降低软件的加载时间之后,GPU大厂英伟达和蓝色巨人IBM,以及美国康奈尔大学也找到了一种方式,可以让GPU与SSD等的存储设备无缝运行,而且不需要专有API来支持。而这项被称为Big Accelerator Memory(BaM)的架构,未来有可能会应用在各种运算任务上,对于大型资料运算的工作负载将能有进一步提升。

根据外媒《TomsHardware》报道,随着GPU的不断发展,现代的GPU已不再局限于绘图图片方面的应用,还会用在各种大型信息的工作负载上,加上GPU在可程序化的功能方面也越来越接近CPU。因此,需要直接取得大型存储设备资料的需求也逐渐提升。而为了更高效率的处理数据,GPU一般都配备了高速的大容量显示内存,但其成本非常高。以英伟达旗下的Ampere架构的新款A100运算卡来说,就配置了80GB的HBM2e显示内存,速率为3.2 Gbps,提供了2 TB/s的显示内存带宽。不过,随着GPU处理的资料量的快速增长,现有的方式远远跟不上资料处理量的需求,这使得优化GPU与存储设备之间的相互操作性显得更加迫切且重要。

而要改进GPU和存储设备之间的连接,其关系着一些关键因素,包括SSD NVMe调用和资料传输给CPU带来的很大负担。这从整体性能和效率来看,是很低效率的做法。其次,CPU与GPU之间的不断操作,其也大大限制了需要大数据传输的应用程序所需要的有效存储带宽。对此,Big Accelerator Memory新架构的目标就是扩展GPU内存容量,并提高有效的存储带宽,同时让GPU更容易地取得扩展内存中的大量资料。

报道指出,Big Accelerator Memory新架构本质上就是让英伟达GPU能够直接从系统内存和存储设备中获取资料,而且不需要经过CPU的参与。GPU将自身配备的显示内存作为软件管理的暂存,另使用PCIe接口、RDMA和定制的Linux核心驱动程序来移动资料,使SSD在需要时直接读写GPU的显示内存。如果没有所需的数据,GPU执行续会将SSD的命令排序。Big Accelerator Memory新架构不需使用虚拟内存地址转换,因此不会出现TLB缺失等串行化等的状况。而英伟达及其合作伙伴计划将该驱动程序公开,以允许其他人使用Big Accelerator Memory概念。

英伟达表示,通过Big Accelerator Memory新架构能让GPU执行续按需读取或写入少量数据,这取决于计算情况。由于每次储访问得的数据消耗很小,并且支持高度执行序级并行性,可以有效缓解和控制I/O流量。在GPU上运行BaM基础架构软件可以充分利用底层存储设备,即便使用的是消费级SSD,Big Accelerator Memory新架构也会带来具有竞争力的性能优势。Big Accelerator Memory新架构是GPU获得大容量存储空间,并独立于CPU的一种方式,相比现有的解决方案,新方案使得运算加速器更加独立。

(首图来源:NVIDIA)