云计算、大数据与不平衡数据集分类的技术探索
1. GPU加速平台上树结构查询重组问题
在当今数据处理领域,GPU凭借其高片上内存带宽和数千个处理核心带来的高指令吞吐量,成为加速大型数据集处理的经济高效选择。在GPU中,核心由流式处理器(SMs)管理,任务被划分为块并调度到SMs并行执行。
然而,在执行前,每个任务会在全局和本地内存之间传输数据,而全局内存延迟可能是本地内存的数十倍,因此减少对全局内存的访问是提升性能的关键。同时,内存访问模式对执行性能影响显著,合并内存访问能有效提升内存性能。而且,块中的任务一次执行一条指令,不同分支路径的任务需要相互等待,这会延长执行时间,所以避免分支分歧对于充分利用计算资源至关重要。
近期,有研究尝试利用GPU加速树状结构的查询,但需要一个系统模型来找到最优解。为此,我们提出了一个正式模型,将性能优化问题转化为一个分配问题,旨在最小化全局内存访问次数。
以下是GPU执行相关操作的流程:
1. 任务划分:将任务划分为块。
2. 任务调度:将块调度到SMs。
3. 数据传输:任务执行前在全局和本地内存间传输数据。
4. 指令执行:块中的任务依次执行指令。
1.1 树结构上的查询加速
树结构在现代应用中至关重要,但在树结构中加速查询面临挑战。查询遍历不同路径会导致分支分歧问题,且每个路径步骤都需要多次全局内存访问,而全局内存带宽低于本地内存。不过,有研究表明将任务安排成块可以提高查询性能。
例如,假设有四个查询q(2)、q(30)、q(35)和q(1),最初分为两组g1 = {q(2), q(30)}和g2 = {q(35),
超级会员免费看
订阅专栏 解锁全文
639

被折叠的 条评论
为什么被折叠?



