Skip to main content
QUICK REVIEW

[论文解读] ArborX: A Performance Portable Geometric Search Library

Damien Lebrun-Grandié, Andrey Prokopenko|arXiv (Cornell University)|Aug 16, 2019
Advanced Image and Video Retrieval Techniques参考文献 24被引用 6
一句话总结

ArborX 是一个为高性能计算(HPC)工作负载设计的性能可移植 C++ 几何搜索库,利用 Kokkos 实现跨 CPU 和 GPU 的可移植性。通过针对内存访问和线程发散进行优化的高并行化包围盒层次(BVH)算法,它在多核 CPU 和 GPU 上实现了具有竞争力的性能,超越了 nanoflann 和 Boost.Geometry.Index 等最先进的库。

ABSTRACT

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 生成,并经人工编辑审核。