[论文解读] ArborX: A Performance Portable Geometric Search Library
ArborX 是一个为高性能计算(HPC)工作负载设计的性能可移植 C++ 几何搜索库,利用 Kokkos 实现跨 CPU 和 GPU 的可移植性。通过针对内存访问和线程发散进行优化的高并行化包围盒层次(BVH)算法,它在多核 CPU 和 GPU 上实现了具有竞争力的性能,超越了 nanoflann 和 Boost.Geometry.Index 等最先进的库。
Searching for geometric objects that are close in space is a fundamental component of many applications. The performance of search algorithms comes to the forefront as the size of a problem increases both in terms of total object count as well as in the total number of search queries performed. Scientific applications requiring modern leadership-class supercomputers also pose an additional requirement of performance portability, i.e. being able to efficiently utilize a variety of hardware architectures. In this paper, we introduce a new open-source C++ search library, ArborX, which we have designed for modern supercomputing architectures. We examine scalable search algorithms with a focus on performance, including a highly efficient parallel bounding volume hierarchy implementation, and propose a flexible interface making it easy to integrate with existing applications. We demonstrate the performance portability of ArborX on multi-core CPUs and GPUs, and compare it to the state-of-the-art libraries such as Boost.Geometry.Index and nanoflann.
研究动机与目标
- 解决现代 HPC 架构(包括 CPU 和 GPU)中缺乏性能可移植的几何搜索库的问题。
- 在需要百亿亿次计算性能和可移植性的科学应用中,实现高效、可扩展的邻近搜索。
- 设计一个仅包含头文件的 C++ 库,通过灵活的接口简化在现有 HPC 应用中的集成。
- 通过最小化并行实现中的内存访问和线程发散,在多种硬件上实现高性能。
- 通过支持 APU 和 FPGA 等不断演进的架构,为未来百亿亿次系统提供可移植性。
提出的方法
- 使用 Kokkos 性能可移植层实现并行包围盒层次(BVH)数据结构,以支持 CPU 和 GPU。
- 通过内存高效的节点布局优化内存访问模式,并减少并行树遍历和构建中的线程发散。
- 使用单一接口抽象支持 CPU 和 GPU 执行,最大限度减少代码重复。
- 利用 Kokkos 的执行策略和内存空间,在异构架构上表达可移植的内核。
- 将库设计为仅头文件形式,以简化集成并支持编译器优化。
- 专注于低维空间搜索和静态数据结构,避免增量更新以提升性能。
实验结果
研究问题
- RQ1如何使几何搜索库在多核 CPU 和 GPU 等多样化 HPC 架构上实现高性能和可移植性?
- RQ2在数据结构和算法实现中,哪些设计选择能够实现几何搜索中的高效并行性和内存访问模式?
- RQ3在现代超级计算机上,ArborX 与 nanoflann 和 Boost.Geometry.Index 等成熟库相比性能如何?
- RQ4单一接口和实现在 CPU 和 GPU 上能否实现具有竞争力的性能?
- RQ5当前实现的可扩展性极限是什么?如何为百亿亿次规模的分布式工作负载解决这些问题?
主要发现
- 在单线程 CPU 工作负载中,ArborX 在最近邻和空间搜索操作中与 nanoflann 和 Boost.Geometry.Index 实现了具有竞争力的性能。
- 在 OLCF Summit 系统上,单个 V100 GPU 在较大问题规模下性能优于 42 个 POWER9 CPU 核心的完整节点,展示了强大的加速器可扩展性。
- 在大多数问题规模下,POWER9 CPU 的 SMT4 模式性能优于 SMT1 或 SMT2,尤其在较大工作负载中表现更优。
- 在使用 CUDA 的 GPU 上,库实现了显著的加速,对于大规模数据集,空间搜索性能最高达到 CPU 的 5.5 倍,最近邻查询最高达到 6.44 倍。
- ArborX 中基于 BVH 的实现减少了内存访问和线程发散,从而在 CPU 和 GPU 上均实现了高效率。
- 该库具有良好的可扩展性,适合通过基于 MPI 的分布式搜索实现未来扩展,但当前在节点间负载均衡和数据分布方面仍存在挑战。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。