By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many...

Preview:

Citation preview

Performance Modeling in GPGPU

By Arun BhandariCourse: HPC

Date: 01/28/12

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

the graphics pipeline.Performance pushed by game industry

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

Why GPU for computing?GPU is fast

Massively parallelHigh memory Bandwidth

ProgrammableNVIDIA CUDA, OpenCL

Inexpensive desktop supercomputingNVIDIA Tesla C1060 : ~1 TFLOPS @

$1000

GPU vs CPU (Computation)

GPU vs CPU (Bandwidth)

Applications of GPGPUMATLABStatistical physicsAudio Signal

processingSpeech processingDigital image

processingVideo processingGeometric

computingWeather forecasting

Climate researchBioinformaticsMedical imagingDatabase operationsMolecular modelingControl engineeringElectronic design

automationAnd many more……

Programming ModelsData-parallel processingHigh arithmetic intensityCoherent data accessGPU programming languages

NVIDIA CUDA OpenCL

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.

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

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

Questions ???