12
Performance Modeling in GPGPU By Arun Bhandari Course: HPC Date: 01/28/12

By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts

Embed Size (px)

Citation preview

Page 1: By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts

Performance Modeling in GPGPU

By Arun BhandariCourse: HPC

Date: 01/28/12

Page 2: By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts

GPU (Graphics Processing Unit)High performance many core processorsOnly used to accelerate certain parts of

the graphics pipeline.Performance pushed by game industry

Page 3: By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts

Introduction to GPGPU

Stands for General Purpose Graphics Processing Unit

Also called GPU computingUse of GPU to do general purpose computing Heterogeneous co-processing computing

model

Page 4: By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts

Why GPU for computing?GPU is fast

Massively parallelHigh memory Bandwidth

ProgrammableNVIDIA CUDA, OpenCL

Inexpensive desktop supercomputingNVIDIA Tesla C1060 : ~1 TFLOPS @

$1000

Page 5: By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts

GPU vs CPU (Computation)

Page 6: By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts

GPU vs CPU (Bandwidth)

Page 7: By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts

Applications of GPGPUMATLABStatistical physicsAudio Signal

processingSpeech processingDigital image

processingVideo processingGeometric

computingWeather forecasting

Climate researchBioinformaticsMedical imagingDatabase operationsMolecular modelingControl engineeringElectronic design

automationAnd many more……

Page 8: By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts

Programming ModelsData-parallel processingHigh arithmetic intensityCoherent data accessGPU programming languages

NVIDIA CUDA OpenCL

Page 9: By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts

CUDA vs OpenCLConceptually identical

work-item = threadwork-group = block

Similar memory modelGlobal, local, shared memory

Kernel , host programCUDA, highly optimized for NVIDIA GPUsOpenCL can be widely used for any GPUs/

CPUs.

Page 10: By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts

GPU OptimizationMaximize parallel execution

Use large inputsMinimize device to host memory overheadAvoid shared memory bank conflictUse less expensive operators

Division : 32 cycles, multiplication : 4 cycles *0.5 instead of /2.0

Page 11: By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts

ConclusionsGPU computing delivers high performanceMany scientific computing problems are

parallelizableFuture of today’s technology

IssuesEvery problem is not suitable for GPUsUnclear future performance growth of GPU

hardware

Page 12: By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts

Questions ???