摘要
图形处理单元(GPU)是并行模具代码的高效架构;然而,较小的设备(即GPU)内存容量(几十GB)需要使用非核心计算来处理多余的数据。手工实现高效的非核心模具代码需要大量编程工作。为了减轻这种编程负担,出现了基于定向的框架,如流水线加速器(PACC);然而,它们通常缺乏特定的优化来减少数据传输。在本文中,我们使用两种以数据为中心的优化来扩展PACC,以解决数据传输问题。第一种是直接映射方案,它消除了主机(即CPU)缓冲区,后者介于原始数据缓冲区和设备缓冲区之间。第二种是区域共享方案,它大大减少了主机到设备的数据传输。将扩展后的PACC应用于声波传播器,自动将原始序列码的长度延长2.3倍,以获得核外码。实验结果表明,在特斯拉V100 GPU上,生成的代码的运行速度分别是基于OpenMP、Unified Memory和以前的PACC的实现速度的41.0、22.1和3.6倍。生成的代码还证明了在适合设备容量的小型数据集上的实用性,其运行速度是内核内实现的1.3倍。