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区域的排序。