在当今科技前沿,随着GPU处理能力的显著提升及其规模的不断壮大,AI基础设施正经历两大关键趋势:数据集的规模化与集群扩展。尽管近期讨论聚焦于大型语言模型(LLM),但AI在各行各业的实际应用却展现了更为广泛的多样性,对数据访问的需求随之激增。
在非LLM应用场景中,GPU不仅作为强大的计算引擎,也是高效的数据存储访问工具,能够处理精细层次的数据。以往讨论的“10万用户”问题,指的是提供给大量用户并发访问的能力。然而,在当前指数级增长的算力背景下,单个GPU集群达到10万级别并发访问已成为常态,不论是计算还是存储都面临前所未有的挑战。
Nvidia对GPU应用的分类揭示了数据集的分布情况,表明随着数据集规模的扩大,传统的内存处理模式已不足以应对,需要采取更为复杂的数据集管理策略,包括数据集的分区、缓存优化及节点间的通信协同。此外,错误处理机制也需升级,以适应大数据环境下的需求,这在一定程度上类似于构建传统的大数据系统,但性能指标大相径庭。
近年来,GPUDirect Storage技术的出现,显著提升了GPU与存储之间的直接交互效率,减少了对CPU的依赖,实现了无额外内存复制的数据访问。随着GPUDirect Async Kernel Initiated Storage技术的引入,GPU可以直接向内核发起存储请求,进一步降低了CPU与GPU间的同步开销,使得单次访问变得极其高效。
在Nvidia的CUDA生态系统中,NVSHMEM技术已经实现了GPU间内存数据通信,屏蔽了不同传输实现的具体细节,极大地提高了GPU集群协同计算的效率。然而,存储层面的API和实现尚未跟进,使得GPU在处理大数据集时面临特定的存储传输和协同问题。为此,亟需开发一套全新的API来解决大规模数据集的访问难题。
每个GPU线程作为独立的数据访问单元,随着并发度的提升,面对基于图数据节点遍历等场景时,如何高效地处理PCIe存储IO成为亟待解决的问题。
现有GNN框架在处理无法完全容纳在内存的数据集时,通过内存映射特征向量文件至CPU虚拟地址空间,实现了一种动态的虚拟内存概念。然而,这种方法在节点特征聚合阶段导致了性能瓶颈,尤其是在CPU访问不在页面缓存中的特征时引发页面错误。这一过程成为了训练流程中的显著瓶颈,特别是在大规模图数据处理中,内存不足的额外成本显著影响了数据准备与模型训练的效率平衡。
为提高GNN训练性能,关键在于加速特征聚合阶段,即数据准备阶段,以减少训练过程中因内存限制而产生的性能损失。这一挑战的解决,将有望推动更多新兴应用领域的发展,如GNN中的图与特征存储、向量搜索与数据库、NeMo Retriever、NVIDIA RAFT在RAG-LL等场景。
随着技术的持续演进与创新,上述挑战的解决将为AI基础设施带来更高效、更具弹性的数据处理能力,推动AI技术在各个领域的广泛应用。