CMPT454 GPU Managed Database · GPGPU: General Purpose GPU, using GPU for usual CPU usage. Outline...
Transcript of CMPT454 GPU Managed Database · GPGPU: General Purpose GPU, using GPU for usual CPU usage. Outline...
CMPT454
GPU Managed Database
Wong, Pok Wai(Boris)
Terminology
GPU: Graphic Processing Unit
CPU: Central Processing Unit
CUDA: NVidia’s GPU process environment
OpenCL: Open compute language
GPGPU: General Purpose GPU, using GPU for usual CPU usage
Outline
1. GPU VS CPU
2. GPU Implementation
3. Products
4. Future Holds
GPU VS CPU
GPU VS CPU
GPU:
1. >1000 CUDA Cores
2. Lower Clock Speed
3. Higher Memory Bandwidth
4. Faster Main Memory(DDR5)
CPU:
1. 2,4,8… Cores
2. Higher Clock Speed For Repetitive Process
3. Consume Less Power
4. Easy to implement
GPU
Pros
Access more records when the algorithm parallelized
Easy to scale up, hardware wise
Efficiency when the algorithm moderate to low flow control
Efficiency for large amount of data set
GPU
Cons
No pre-emptive multi-tasking
Limited memory
Hard to implement
Not good at General Purpose(GPGPU)
GPU Implementation
CUDA:
Benefits
Parallel computing architecture
Unified memory
Faster read back from memory
Support for integer and bitwise operation
Limitation
New C dialect
Only works on NVidia hardware
GPU Implementation
OpenCL
Open standard/source
Access all computer resource
Supported on more than one platform
Efficient parallel programming language
Rich set of built-in function
Hard to implement
GPU parallel computing is not mature in OpenCL
Products
SQream
GPU-accelerated data warehouse for analytics
Uses the GPU to perform database operations
Limited operating data which can fit in GPU RAM
Takes the maximum advantages from GPU
Good implementation with CUDA
Uses Thrust(C++)
High level library for CUDA
Future Holds
Pre-emptive Multi-tasking
Virtual Memory for GPU
Mature Tools(algorithm, language or DBMS)
Hybrid
Tendency: Multi-cores
Referencing
1. Acceleration of data-management using the power of a GPU
https://www.youtube.com/watch?v=Q_WmeJUcTkY
2. Introducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child
https://wiki.postgresql.org/images/6/65/Pgopencl.pdf
3. Implementing SQL on GPUs 1/2
https://sqream.com/implementing-sql-on-gpus-part-1/
4. Implementing SQL on GPUs 2/2
https://sqream.com/implementing-sql-on-gpus-part-2/
5. CUDA
https://en.wikipedia.org/wiki/CUDA
6. Thrust
https://thrust.github.io/