Skip to main content

IBM Files Patent For GPU-Accelerated Databases

Instead of traditional disk-based queries and an approach that slows performance via memory latencies and processors waiting for data to be fetched from the memory, IBM envisions in-GPU-memory tables as technology that could, in addition to disk tables, significantly accelerate database processing. According to a patent filed by the company, "GPU enabled programs are well suited to problems that involve data-parallel computations where the same program is executed on different data with high arithmetic intensity."

Surprisingly, the patent does describe open high-level software architectures, such as OpenCL, in this patent filing, but mentions Nvidia's Compute Unified Device Architecture (CUDA) as only specific example to run GPU-accelerated databases: "CUDA toolkit exposes the underlying target hardware via a C-like API. CUDA is designed to increase performance in many data parallel applications by supporting execution of thousands of threads in parallel. As such, a compiled CUDA program may scale with the advances in hardware. There are at least two ways a GPU-enabled database may be implemented--a) in one embodiment, a full-fledged database system may be enabled, and b) a scratch pad for accelerating other database queries may be enabled, that is, a GPU-memory database for just executing database queries may be enabled."

However, IBM is not surprisingly trying to protect its patent, if granted, in other programming languages as in the key areas of:

- starting a GPU kernel
- hash partitioning the database relations by the GPU kernel
- loading the partitioned database relations into the GPU memory
- loading keyed partitions corresponding the hash partitioned database relations into the GPU memory
- building a hash table for a smaller of the hash partitioned database relations
- executing the query.

According to the patent applications, using GPU acceleration for databases "may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages." To cover all of its bases, IBM also states that the "program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server."

  • Parsian
    i love IBM.
    Reply
  • zeromikey
    Parsiani love IBM.same
    Reply
  • gokanis
    interesting and maybe even very useful considering a GPUs power, but did they develop it yet? You should not be able to patent it without a product. That is what is wrong with the system. If I patented slim, I could sue thousands of anorexics. Oh wait, apple has that one.
    Reply
  • me too
    even more after reading the book IBM and the holocaust.
    Reply
  • Filiprino
    Ermmm... that's how normal software works when ran on GPU.
    Reply
  • alidan
    gokanisinteresting and maybe even very useful considering a GPUs power, but did they develop it yet? You should not be able to patent it without a product. That is what is wrong with the system. If I patented slim, I could sue thousands of anorexics. Oh wait, apple has that one.
    did they pattent a process
    Reply
  • So, it relies on having a table already in GPU memory, that is small enough to fit into same GPU memory? Furthermore, have they figured out a way to make GPUs useful for that? Current GPUs are basically good at floating point calculations that are easily parallelized, not integer/logic operations. SQL is almost entirely integer/logic unless your query/insert contains an FP math equation, which probably isn't often.

    Barring the wrong tool for the job argument, it could work OK as long as you're entire database fits in one GPUs memory, or else you can at least fit one table per GPU, and you only have to query a single table at a time.
    Reply
  • killerclick
    They've been promising GPU based processing for five years at least, so far it hasn't made an impact anywhere. 3ds max uses it in a very limited way as does Photoshop.
    Reply
  • nikorr
    Had to get the patent thing done right first, or some one would sue.
    Reply
  • Killerclick: The number one thing holding it back is that it requires copying from main memory to the GPUs memory. Even things that can be made that parallel must still overcome the huge latency in copying it back and forth. That's why AMD Llano and all APUs going forward share memory with the CPU, and have direct links to the cores, to make GPGPU more feasible for the calculations that can benefit from it.
    Reply