Analysis of GPU-Libraries for Rapid Prototyping Database Operations : A look into library support for database operations

2021 
Using GPUs for query processing is still an ongoing research in the database community due to the increasing heterogeneity of GPUs and their capabilities (e.g., their newest selling point: tensor cores). Hence, many researchers develop optimal operator implementations for a specific device generation involving tedious operator tuning by hand. On the other hand, there is a growing availability of GPU libraries that provide optimized operators for manifold applications. However, the question arises how mature these libraries are and whether they are fit to replace handwritten operator implementations not only w.r.t. implementation effort and portability, but also in terms of performance.In this paper, we investigate various general-purpose libraries that are both portable and easy to use for arbitrary GPUs in order to test their production readiness on the example of database operations. To this end, we develop a framework to show the support of GPU libraries for database operations that allows a user to plug-in new libraries and custom-written code. Our experiments show that the tested GPU libraries (ArrayFire, Thrust, and Boost.Compute) do support a considerable set of database operations, but there is a significant diversity in terms of performance among libraries. Furthermore, one of the fundamental database primitives – hashing and, thus, hash joins – is currently not supported, leaving important tuning potential unused.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    26
    References
    0
    Citations
    NaN
    KQI
    []