We present ASH, a modern and high-performance framework for parallel spatial hashing on GPU. Compared to existing GPU hash map implementations, ASH achieves higher performance, supports richer functionality, and requires fewer lines of code (LoC) when used for implementing spatially varying operations from volumetric geometry reconstruction to differentiable appearance reconstruction. Unlike existing GPU hash maps, the ASH framework provides a versatile tensor interface, hiding low-level details from the users. In addition, by decoupling the internal hashing data structures and key-value data in buffers, we offer direct access to spatially varying data via indices, enabling seamless integration to modern libraries such as PyTorch. To achieve this, we 1) detach stored key-value data from the low-level hash map implementation; 2) bridge the pointer-first low level data structures to index-first high-level tensor interfaces via an index heap; 3) adapt both generic and non-generic integer-only hash map implementations as backends to operate on multi-dimensional keys. We first profile our hash map against state-of-the-art hash maps on synthetic data to show the performance gain from this architecture. We then show that ASH can consistently achieve higher performance on various large-scale 3D perception tasks with fewer LoC by showcasing several applications, including 1) point cloud voxelization, 2) dense volumetric SLAM, 3) non-rigid point cloud registration and volumetric deformation, and 4) spatially varying geometry and appearance refinement. ASH and its example applications are open sourced in Open3D (http://www.open3d.org).
翻译:与现有的 GPU hash 地图执行相比, ASH 实现了更高的性能, 支持更富有的功能, 并需要更少的代码线(LOC) 用于执行从体积几何重建到不同外观重建的空间不同操作。 与现有的 GPU hash 地图不同, ASH 框架提供了一个多功能高压接口, 向用户隐藏了低层次的详细信息。 此外, 与现有的 GPU hash 相比, ASH 提供了内部的 hash 数据结构以及缓冲中的关键值数据。 与现有的 GPU Hash 地图执行相比, ASH 实现了更高的性能, 与现有的 GPUPE 数据重建到不同, 与现有的高层次高层次相连接。 此外, 我们直接通过指数解析内部的 Outrickal 和低层次的地图应用, 与多维维度的D 级缩略图操作 。 我们第一次剖面图显示的是, 与高层次的地图 。