本文主要是对《Pump Up the Volume: Processing Large Data on GPUs with Fast Interconnects》的阅读,同时记录了自己的一些想法。
本文针对GPU的NVLink进行进一步研究,阅读下来感觉非常前沿,能学习很多insight。所以我将本文总结出来,加深自己的理解,也方便读者阅读。
本文为SIGMOD’20的文章,感兴趣的同学可以下载来自行阅读。
一、前沿与背景
1 背景
贡献:
1 分析NVLink 2.0并理解其性能以及新特性;
2 对接口的传输速度进行实验探究,并采取最后的数据传输策略;
3 提出新的方案使得GPU-CPU能更好的协同工作;
4 测试;
背景部分需要我们了解哈希join算法,文章中使用的无分区的哈希合并,由于该算法能够很好的测试GPU与CPU的性能,所以全文以该算法贯穿,并在NVLink2.0的基础上对该算法进行重设计,使其更高效。
2、PCIe-3.0知识
PCIe具有两种数据传输的原语,memory-mapped I/O(MMIO)以及DMA。其中MMIO将GPU的显存与GPU地址空间相连。CPU使用load和store指令对数据进行访问。
DMA是的GPU能直接访问CPU的内存,而与MMIO的不同点是DMA能直接访问pinned memory。(在我理解来,就是普通的malloc与cudamalloc的区别ÿ