GDS加速HPFS存储访问(1) GDS简介 GPUDirect Storage(GDS)是NVIDIA推出的一项关键技术,用于实现GPU显存与兼容存储系统之间的直接数据通路,从而绕过CPU和系统内存拷贝。该技术旨在解决高性能计算与AI训练场景中,存储I/O可能成为整体性能瓶颈的问题。其主要优势包括: 1. 降低数据访问延迟:缩短GPU等待数据的时间。 2. 提高有效带宽:最大化GPU从存储读取和写入数据的吞吐量。 3. 释放CPU资源:减少CPU在I/O路径上的介入,使其更专注于计算任务。 天翼云高性能并行文件服务HPFS已支持GPUDirect Storage技术。用户可在基于NVIDIA GPU的主机上,部署支持GDS的应用程序,并通过cuFile API直接访问HPFS文件系统。实测表明,相较于传统的POSIX API标准访问方式,此项优化可带来约30% 的吞吐性能提升,显著加速GPU数据处理流水线。 GDS原理 通过传统的POSIX API读取流程如下: plaintext int fd open(...) void sysmembuf, gpumembuf; sysmembuf malloc(bufsize); cudaMalloc(gpumembuf, bufsize); pread(fd, sysmembuf, bufsize); cudaMemcpy(sysmembuf, gpumembuf, bufsize, H2D); cuStreamSynchronize(0); 使用GDS API可以绕过CPU直接从HPFS读取,使得数据不经过内存直接从HPFS复制GPU显存,大幅提升性能: plaintext int fd open(filename, ODIRECT,...) CUFileHandlet fh; CUFileDescrt desc; desc.typeCUFILEHANDLETYPEOPAQUEFD; desc.handle.fd fd; cuFileHandleRegister(&fh, &desc); void gpumembuf; cudaMalloc(gpumembuf, bufsize); cuFileRead(&fh, gpumembuf, bufsize, ...);
来自: