gpu accelerated databases - amddeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · review...

28

Upload: nguyenkiet

Post on 05-Jun-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL
Page 2: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

GPU ACCELERATED DATABASESDatabase Driven OpenCL ProgrammingTim Child3DMashUpCEO

Page 3: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

4 | GPU Accelerated Databses | June 6, 2011

SPEAKERS BIO

Tim Child35 years experience of software developmentFormerly• VP Engineering, Oracle Corporation• VP Engineering, BEA Systems Inc.• VP Engineering , Informix• Leader at Illustra, Autodesk, Navteq, Intuit, …

30+ years experience in 3D, CAD, GIS and DBMS

Page 4: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

5 | GPU Accelerated Databses | June 6, 2011

OUTLINE

Speakers BiographyOutlineSolution GoalsOpenCL Programming ChallengeReview of GPU Accelerated DatabasesSwiss Army Knife of DataOpenCL Bindings to PostgreSQLChallengesExample Use CasesBenefits of the ApproachQ&A

Page 5: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

6 | GPU Accelerated Databses | June 6, 2011

GOALS

Develop New Applications– Develop new GPU Accelerated Database Applications that are computationally intensive.

Ease of Use– Make use GPU accelerated code easier to use– Make GPU accelerated code more mainstream to Information Technology

Data Scalability– Scale GPU application data size

Enhance existing database internal operations

Page 6: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

7 | GPU Accelerated Databses | June 6, 2011

OPENCL PROGRAMMING CHALLENGE

Write an OpenCL Application that :-– Reads data from DBMS or File– Publishes Results as Web Pages– Handles Frequent Data Updates– Data Size >> System RAM >> GPU RAM

Possible Solutions– C/C++ Binding using Web CGI– Java/Perl/Python Bindings in App Server– Other Choices ??

orDatabase Driven

GPU Programming

Page 7: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

8 | GPU Accelerated Databses | June 6, 2011

REVIEW OF GPU ACCELERATED DATABASE ARCHITECTURES

Page 8: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

9 | GPU Accelerated Databses | June 6, 2011

GPU CO-PROCESS

DBMSServer

GPU Language

Co-Process

IPC / RPC

GPGPUDataTables

PCI Bus

DBMSClient

TCP/IPGPGPUDRAM

Examples• 2004 Bandi, Sun, et al• Many others

Page 9: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

10 | GPU Accelerated Databses | June 6, 2011

GPU HOSTED DATA ARCHITECTURE

DBMS Sever

+ GPU Host

GPGPU

DataTables

PCI Bus

DBMSClient

TCP/IP

GPGPUDRAM Data

TablesCopy

Examples• 2008 Bakkum, Skardon• 2010 Palo OLAP• 2010 ParStream• 2011 Kaczmarski

DataIndicesCopy

Page 10: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

11 | GPU Accelerated Databses | June 6, 2011

PROCEDURAL LANGUAGE ARCHITECTURE

DataTables

PCI BusDBMSClient

TCP/IPGPGPUDRAM

DBMSServer

GPGPUHost

GPGPU

Examples• 1995 Illustra/Intel• 2010 3DMashUp

RAM Cache

QueriesResults

10G B

10T B

Page 11: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

12 | GPU Accelerated Databses | June 6, 2011

SWISS ARMY KNIFE OF DATA

Page 12: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

13 | GPU Accelerated Databses | June 6, 2011

SQL OPENCL TYPES

Vector Types– cl_charX– cl_ucharX– cl_shortX– cl_ushortX– cl_floatX– cl_doubleX

Images Types– image2d_t– Image3d_t

Create table opencltypes( id serial,

matrix cl_double4[4],image image2d

);Insert into opencltypes ( matrix) values

(‘ { ‘1,0,0,0’, 0,1,0,0’, ‘0,0,1,0’, ‘0,0,0,1’ }’ );

Page 13: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

14 | GPU Accelerated Databses | June 6, 2011

DATABASE DRIVEN OPENCL

PostgreSQL

PgOpenCLSQL

ProcedureWebServer

AppServer

WebBrowser

Data TablesPostgreSQLClient

SQL Statement

Disk I/O

TCP/IP

TCP/IP

HTTPPgOpenCL

SQLProcedure

GPGPU

PCIe x2 Bus

PostgreSQL Sever

Page 14: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

15 | GPU Accelerated Databses | June 6, 2011

OPENCL BINDINGS TO POSTGRESQL

CREATE or REPLACE FUNCTION VectorAdd(IN Id int[], IN a real[], IN B real[], OUT C real[] )AS $BODY$

$BODY$Language PgOpenCL;

Select VectorAadd(Id, a, c) from Vectors;

__kernel void VectorAdd( __global int * id,__global float *a, __global float *b, __global float *c)

{int i = get_global_id(0); /* Query OpenCL for the Array Subscript **/

c[i] = a[i] + b[i];}

Page 15: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

16 | GPU Accelerated Databses | June 6, 2011

COMPARISON TABLE

Page 16: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

17 | GPU Accelerated Databses | June 6, 2011

DATABASE DRIVEN OPENCL

A

B

A B C

Select Table to Array

Unnest ArrayTo Table

Copy

Copy

100’s - 1000’s ofThreads (Kernels)

Table

Table

VectorAdd(A, B)Returns C+ =

�PU

C C C C C C CC C C C C C

Page 17: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

18 | GPU Accelerated Databses | June 6, 2011

OPENCL TIME SERIES TYPE

CL_UNSIGNED_INT,    CL_INTENSITY

CL_FLOAT,    CL_INTENSITY

Page 18: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

19 | GPU Accelerated Databses | June 6, 2011

TIME SERIES DATA

34 Years IBM data in 3NF = 8734 records

As Time Series = 34 Records, 6 Series Columns (~250 Values/Series)

Page 19: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

20 | GPU Accelerated Databses | June 6, 2011

EXAMPLE USE CASES

GPU Accelerated Time Series3D Content Management / GIS

– Spatial Selections– Coordinate Transformations– Image Processing

Bioinformatics– DNA & Protein Sequence Matching

Database Internal Operations– Joins– Sorting– Query Planning

Demo

Page 20: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

21 | GPU Accelerated Databses | June 6, 2011

DEMO SCREEN 1

Page 21: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

22 | GPU Accelerated Databses | June 6, 2011

DEMO SCREEN 2

Page 22: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

23 | GPU Accelerated Databses | June 6, 2011

DEMO SCREEN 3

Page 23: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

24 | GPU Accelerated Databses | June 6, 2011

DEMO SCREEN

Page 24: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

25 | GPU Accelerated Databses | June 6, 2011

DEMO SCREEN 5

Page 25: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

26 | GPU Accelerated Databses | June 6, 2011

CHALLENGES

Type Mapping– Extend SQL Types with

OpenCL Vectors TypesOpenCL Image Types

Setup –> RuntimeCaching kernel info

Data Transfer– CPU ↔ GPU

Still present– SQL Queries

+ ∆ Overhead ( < 4µs )Map – Array

– Bulk Data LoadersNew Task

Problem Size– DBMS Table Size >> GPU RAM– # Work Groups / # Work Items

Runtime Partitioning

Device Management– CPU vs. GPU

Runtime Selection

Concurrency– No Pre-emptive Multi-Tasking

Time-out Long QueriesPartitioning / Scheduling

Page 26: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

27 | GPU Accelerated Databses | June 6, 2011

BENEFITS OF THE APPROACH

DatabaseInternal

OperationsOpen SourceRelease

OpenCL

PostgreSQL

Page 27: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

28 | GPU Accelerated Databses | June 6, 2011

Q&APgOpenCL

Twitter @3DMashUpBlog www.scribd.com/3dmashup

OpenCL

www.khronos.org/opencl/www.amd.com/us/products/technologies/stream-technology/opencl/http://software.intel.com/en-us/articles/intel-opencl-sdkhttp://www.nvidia.com/object/cuda_opencl_new.html

Page 28: GPU ACCELERATED DATABASES - AMDdeveloper.amd.com/wordpress/media/2013/06/1738_final.pdf · Review of GPU Accelerated Databases Swiss Army Knife of Data OpenCL Bindings to PostgreSQL

31 | GPU Accelerated Databses | June 6, 2011

Disclaimer & AttributionThe information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors.

The information contained herein is subject to change and may be rendered inaccurate for many reasons, including but not limitedto product and roadmap changes, component and motherboard version changes, new model and/or product releases, product differences between differing manufacturers, software changes, BIOS flashes, firmware upgrades, or the like. There is no obligation to update or otherwise correct or revise this information. However, we reserve the right to revise this information and to make changes from time to time to the content hereof without obligation to notify any person of such revisions or changes.

NO REPRESENTATIONS OR WARRANTIES ARE MADE WITH RESPECT TO THE CONTENTS HEREOF AND NO RESPONSIBILITY IS ASSUMED FOR ANY INACCURACIES, ERRORS OR OMISSIONS THAT MAY APPEAR IN THIS INFORMATION.

ALL IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE ARE EXPRESSLY DISCLAIMED. IN NO EVENT WILL ANY LIABILITY TO ANY PERSON BE INCURRED FOR ANY DIRECT, INDIRECT, SPECIAL OR OTHER CONSEQUENTIAL DAMAGES ARISING FROM THE USE OF ANY INFORMATION CONTAINED HEREIN, EVEN IF EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

AMD, the AMD arrow logo, and combinations thereof are trademarks of Advanced Micro Devices, Inc. All other names used in this presentation are for informational purposes only and may be trademarks of their respective owners.

The contents of this presentation were provided by individual(s) and/or company listed on the title page. The information and opinions presented in this presentation may not represent AMD’s positions, strategies or opinions. Unless explicitly stated, AMD is not responsible for the content herein and no endorsements are implied.