1. Select

2. Sub aggregation

- 并行对key1进行排序;
- flag标记:key1的值与上一个值不同时标记为1,相同标记为0;
- 根据flag的值计算前缀和presum;
- 根据flag、下标、presum计算出每个sub区域的开始位置,offset;
- 根据offset分块计算sub aggregation,例如每个CUDA block做一个sub区域的aggregation的计算。
3. 2列sort

- 并行对key1进行排序;
- flag标记:key1的值与上一个值不同时标记为1,相同标记为0;
- 根据flag的值计算前缀和presum;
- 根据flag、下标、presum计算出每个sub区域的开始位置,offset;
- 根据offset分块计算sub sort,例如每个CUDA block做一个sub区域的排序。

本文探讨了如何利用GPU并行化处理数据库中的Select操作和多列排序。首先,针对Select操作,通过Sub aggregation实现对key1的排序,使用flag和前缀和presum确定sub区域,进而进行分块计算。接着,介绍2列sort的并行化方法,同样基于flag计算offset,然后用CUDA block执行sub区域的排序任务。
最低0.47元/天 解锁文章
1739

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



