Algorithms based on spatial tree traversal are widely regarded as among the most efficient and flexible approaches for many problems in CPU-based high-performance computing (HPC). However, directly transferring these algorithms to GPU architectures often yields substantially smaller performance gains than expected in light of the high computational throughput of modern GPUs. The branching nature of tree algorithms leads to thread divergence and irregular memory access patterns -- both of which may severely limit GPU performance. To address these challenges, we propose a Morton (z-order) 'plane-based tree hierarchy' that is specifically designed for GPU architectures. The resulting flattened data layout enables efficient dual-tree traversal with collaborative execution across thread groups, leading to highly coalesced memory access patterns. Based on this framework we present implementations of two important spatial algorithms -- exact $k$-nearest neighbour search and friends-of-friends (FoF) clustering. For both cases, we observe more than an order-of-magnitude performance improvement over the closest competing GPU libraries for large problem sizes ($N \gtrsim 10^7$), together with strong scaling to distributed multi-GPU systems. We provide an open-source implementation, 'JZ-Tree' (JAX z-order tree), which serves as a foundation for efficient GPU implementations of a broad class of tree-based algorithms.


翻译:基于空间树遍历的算法被广泛认为是在CPU高性能计算中处理众多问题最高效、最灵活的方法之一。然而,将这些算法直接迁移至GPU架构时,由于其计算吞吐量远超预期,实际性能提升往往远小于预期。树算法的分支特性会导致线程发散和不规则内存访问模式,这两者均可能严重制约GPU性能。为解决上述挑战,我们提出一种专为GPU架构设计的莫顿(z-order)"平面树层级结构"。由此生成的扁平化数据布局支持跨线程组的协同双树遍历,实现了高度聚合的内存访问模式。基于该框架,我们实现了两种重要的空间算法——精确$k$近邻搜索与友邻聚类。针对大规模问题($N \gtrsim 10^7$),两种算法较同类最优GPU库均实现了超过一个数量级的性能提升,并展现出优异的分布式多GPU系统强扩展性。我们提供了开源实现"JZ树"(JAX z-order树),为基于树算法的广泛类别在GPU上的高效实现奠定了坚实基础。

0
下载
关闭预览

相关内容

智能数据库学习型索引研究综述
专知会员服务
23+阅读 · 2023年1月14日
专知会员服务
24+阅读 · 2021年1月30日
【AAAI2021】对比聚类,Contrastive Clustering
专知会员服务
78+阅读 · 2021年1月30日
盘点来自工业界的GPU共享方案
计算机视觉life
12+阅读 · 2021年9月2日
基于TensorFlow和Keras的图像识别
Python程序员
16+阅读 · 2019年6月24日
机器学习中的最优化算法总结
人工智能前沿讲习班
22+阅读 · 2019年3月22日
机器学习算法集锦:从贝叶斯到深度学习及各自优缺点
人工智能学家
11+阅读 · 2019年2月15日
深度学习TensorFlow实现集合
专知
10+阅读 · 2018年9月8日
机器学习的Pytorch实现资源集合
专知
11+阅读 · 2018年9月1日
深度学习的GPU:深度学习中使用GPU的经验和建议
数据挖掘入门与实战
11+阅读 · 2018年1月3日
从浅层模型到深度模型:概览机器学习优化算法
机器之心
27+阅读 · 2017年7月9日
国家自然科学基金
0+阅读 · 2017年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
9+阅读 · 2015年12月31日
国家自然科学基金
7+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
14+阅读 · 2008年12月31日
VIP会员
最新内容
综述 | 世界动作模型:少做梦,多行动
专知会员服务
4+阅读 · 6月23日
美以伊冲突:无人机与人工智能的运用
专知会员服务
7+阅读 · 6月23日
《特种部队在透明战场中的生存力》最新报告
专知会员服务
4+阅读 · 6月23日
综述 | 3D场景图:开放挑战与未来方向
专知会员服务
8+阅读 · 6月22日
21世纪的无人机战争
专知会员服务
4+阅读 · 6月22日
《量子技术的军事任务技术适配与利用》
专知会员服务
5+阅读 · 6月22日
相关VIP内容
智能数据库学习型索引研究综述
专知会员服务
23+阅读 · 2023年1月14日
专知会员服务
24+阅读 · 2021年1月30日
【AAAI2021】对比聚类,Contrastive Clustering
专知会员服务
78+阅读 · 2021年1月30日
相关资讯
盘点来自工业界的GPU共享方案
计算机视觉life
12+阅读 · 2021年9月2日
基于TensorFlow和Keras的图像识别
Python程序员
16+阅读 · 2019年6月24日
机器学习中的最优化算法总结
人工智能前沿讲习班
22+阅读 · 2019年3月22日
机器学习算法集锦:从贝叶斯到深度学习及各自优缺点
人工智能学家
11+阅读 · 2019年2月15日
深度学习TensorFlow实现集合
专知
10+阅读 · 2018年9月8日
机器学习的Pytorch实现资源集合
专知
11+阅读 · 2018年9月1日
深度学习的GPU:深度学习中使用GPU的经验和建议
数据挖掘入门与实战
11+阅读 · 2018年1月3日
从浅层模型到深度模型:概览机器学习优化算法
机器之心
27+阅读 · 2017年7月9日
相关基金
国家自然科学基金
0+阅读 · 2017年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
9+阅读 · 2015年12月31日
国家自然科学基金
7+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
14+阅读 · 2008年12月31日
Top
微信扫码咨询专知VIP会员