Data management on GPUs has become increasingly relevant due to a tremendous rise in processing power and available GPU memory. Just like in the CPU world, there is a need for performant GPU-resident index structures to speed up query processing. Unfortunately, mapping indexes efficiently to the highly parallel and hard-to-program hardware is challenging and often fails to yield the desired performance and flexibility. Therefore, we advocate to take a different route. Instead of proposing yet another hand-tailored index, we investigate whether we can exploit an indexing mechanism that is already built into modern GPUs: The raytracing hardware accelerator provided by NVIDIA RTX cards. To do so, we re-phrase database indexing as a raytracing problem, where we express the dataset to be indexed as primitives in a scene, and queries as rays. In this combination, coined RX in the following, lookups are performed as intersection tests in hardware by dedicated raytracing cores. To analyze the pros, cons, and usefulness of the raytracing pipeline for database indexing, we carefully evaluate RX along twelve dimensions: We first identify the optimal setup of the pipeline by evaluating different options regarding (1) how to express keys, (2) which primitives to use for that, (3) how to formulate point/range queries against these, and (4) how to update the index. Continuing with the best setup, we compare RX against a set of software-implemented GPU-resident index structures while varying (5) the number of inserts and queries, (6) the order of the data, (7) the batch size, (8) the hit/miss ratio, (9) the selectivity of range queries, (10) the key size, and (11) the distribution of inserts and queries. Finally, we evaluate (12) the impact of three different GPU generations on the performance. Our results show that RX is competitive against traditional counterparts in a variety of situations.
翻译:GPU 的数据管理由于处理力和可用的 GPU 内存的大幅上升而变得日益重要。 正如在CPU 世界上一样,我们需要运行性能的 GPU - 居民指数结构来加速查询处理。 不幸的是,对高度平行和硬到程序硬件的有效绘制索引具有挑战性,而且往往无法产生预期的性能和灵活性。 因此, 我们主张采用不同的路线。 我们不提议另一个手工定制的指数, 我们调查我们是否可以利用一个已经建在现代 GPU 中的索引机制: NVDIA 的 RPU - 居民指数卡所提供的光学硬件加速器。 为了做到这一点, 我们重新将数据库索引作为光学问题重新使用, 我们把数据集作为原始版的指数, 以及作为光线性能。 在这种组合中, 硬体的RX 硬体的变异性测试, 我们的变异性核心的变异性测试, 我们的变异性测试管道的变异性数据, 和变异性数据序列的变异性变异性变异性数据 。</s>