Implementing SQL on GPUs 1/2

Running SQL on GPUs- Part 1
The idea of running SQL on GPUs has been around for more than a decade. But there are many questions about the viability of this. Is it possible? Is it too difficult? Can it be more than a technology demo? What about the PCI bus transfer bottleneck, or the relatively limited about of memory on graphics cards?
In this first blog post, I will share some ideas about running SQL on GPUs, to give a little more of an idea of how it can be done. I will focus on queries which are typical for ‘analytic columnar databases’, such as the well known and sometimes-liked TPC-H benchmark (you can see the TPC-H queries here).

SQL on GPUs

These sorts of queries are interesting to run on GPUs for a few reasons. Here are a two:
  1. It’s true that some of these kinds of queries are IO bound, but many are CPU bound, even when running on clusters with a lot of expensive CPUs.
  2. The implementation of many of these queries matches the kind of code which runs well on GPUs.
I will start with a few ideas about a toy engine which works on data which fits into the GPU memory, and extend it with some ideas on how to be able to operate on much bigger data sizes. In a follow up blog post, I will finish with a few ideas about how to optimize a system like this run a bit faster.
Implementing SQL on GPUs 1/2 Implementing SQL on GPUs 1/2 Reviewed by Your Edu on July 28, 2018 Rating: 5

No comments:

Powered by Blogger.