Datalog is a declarative logic-programming language used for complex analytic reasoning workloads such as program analysis and graph analytics. Datalog's popularity is due to its unique price-point, marrying logic-defined specification with the potential for massive data parallelism. While traditional engines are CPU-based, the memory-bound nature of Datalog has led to increasing interest in leveraging GPUs. These engines beat CPU-based engines by operationalizing iterated relational joins via SIMT-friendly join algorithms. Unfortunately, all existing GPU Datalog engines are built on binary joins, which are inadequate for the complex multi-way queries arising in production systems such as DOOP and ddisasm. For these queries, binary decomposition can incur the AGM bound asymptotic blowup in time and space, leading to OOM failures regardless of join order. Worst-Case Optimal Joins (WCOJ) avoid this blowup, but their attribute-at-a-time intersections map poorly to SIMT hardware under key skew, causing severe load imbalance across Streaming Multiprocessors (SMs). We present SRDatalog, the first GPU Datalog engine based on WCOJ. SRDatalog uses flat columnar storage and two-phase deterministic memory allocation to avoid the OOM failures of binary joins and the index-rebuild overheads of static WCOJ systems. To mitigate skew and hide hardware stalls, SRDatalog further employs root-level histogram-guided load balancing, structural helper-relation splitting, and stream-aligned rule multiplexing. On real-world program-analysis workloads, SRDatalog achieves geometric-mean speedups of 21x to 47x.


翻译:Datalog是一种声明式逻辑编程语言,用于程序分析和图分析等复杂分析推理工作负载。Datalog的流行源于其独特的价值定位,即结合了逻辑定义的规范性与大规模数据并行处理的潜力。尽管传统引擎基于CPU,但Datalog受内存约束的特性使其越来越受益于GPU的采用。这些引擎通过采用SIMT友好的连接算法实现迭代关系连接,从而在性能上超越CPU引擎。然而,现有所有GPU Datalog引擎均基于二元连接构建,这无法应对生产系统(如DOOP和ddisasm)中出现的复杂多路查询。对于此类查询,二元分解可能导致时间与空间上的AGM界渐近膨胀,无论连接顺序如何,都会引发内存溢出故障。最坏情况最优连接可避免这种膨胀,但其逐属性交集操作在键倾斜条件下难以高效映射到SIMT硬件,导致流多处理器间严重的负载不均衡。我们提出SRDatalog,首个基于最坏情况最优连接的GPU Datalog引擎。SRDatalog采用扁平列式存储与两阶段确定性内存分配,以规避二元连接的内存溢出故障及静态最坏情况最优连接系统的索引重建开销。为缓解倾斜并隐藏硬件停顿,SRDatalog进一步采用根级直方图引导的负载均衡、结构辅助关系拆分和流对齐规则复用。在真实程序分析工作负载上,SRDatalog实现了21倍至47倍的几何平均加速比。

0
下载
关闭预览

相关内容

【LoG2024报告】整合大型语言模型与图神经网络,62页ppt
专知会员服务
50+阅读 · 2024年12月1日
DataFun,就这?!
DataFunTalk
38+阅读 · 2020年9月27日
清华178页深度报告:一文看懂AI数据挖掘
人工智能学家
10+阅读 · 2019年2月18日
NLP-Progress记录NLP最新数据集、论文和代码: 助你紧跟NLP前沿
中国人工智能学会
12+阅读 · 2018年11月15日
最全数据科学学习资源:Python、线性代数、机器学习...
人工智能头条
12+阅读 · 2018年5月14日
深度学习的GPU:深度学习中使用GPU的经验和建议
数据挖掘入门与实战
11+阅读 · 2018年1月3日
国家自然科学基金
9+阅读 · 2017年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Arxiv
0+阅读 · 5月4日
Arxiv
0+阅读 · 4月23日
VIP会员
最新内容
非对称防御中的自组织临界性:俄乌战争
专知会员服务
7+阅读 · 8月10日
《战争中的大语言模型监管》
专知会员服务
7+阅读 · 8月10日
《边缘计算关键技术分析及美军作战实践应用》
边缘计算的军事应用
专知会员服务
11+阅读 · 8月9日
一种考虑资源机动性的武器目标分配混合算法
专知会员服务
12+阅读 · 8月8日
相关VIP内容
【LoG2024报告】整合大型语言模型与图神经网络,62页ppt
专知会员服务
50+阅读 · 2024年12月1日
相关资讯
DataFun,就这?!
DataFunTalk
38+阅读 · 2020年9月27日
清华178页深度报告:一文看懂AI数据挖掘
人工智能学家
10+阅读 · 2019年2月18日
NLP-Progress记录NLP最新数据集、论文和代码: 助你紧跟NLP前沿
中国人工智能学会
12+阅读 · 2018年11月15日
最全数据科学学习资源:Python、线性代数、机器学习...
人工智能头条
12+阅读 · 2018年5月14日
深度学习的GPU:深度学习中使用GPU的经验和建议
数据挖掘入门与实战
11+阅读 · 2018年1月3日
相关基金
国家自然科学基金
9+阅读 · 2017年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员