gpgpu general purpose programmability on graphic processors units

17
David Angulo Rubio FAMU CIS GradStudent

Upload: nile

Post on 05-Jan-2016

23 views

Category:

Documents


0 download

DESCRIPTION

David Angulo Rubio FAMU CIS GradStudent. GPGPU General Purpose Programmability on Graphic Processors Units. Introduction. GPU(Graphics Processing Unit) on video cards has evolved during the last years. They have become extremely powerful and flexible Programmability Precision Power - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: GPGPU General Purpose Programmability on Graphic Processors Units

David Angulo RubioFAMU CIS GradStudent

Page 2: GPGPU General Purpose Programmability on Graphic Processors Units

Introduction

GPU(Graphics Processing Unit) on video cards has evolved during the last years. They have become extremely powerful and flexible Programmability Precision Power

GPGPU computing is an emerging field which objective is to harness GPUs for general-purpose computation

Page 3: GPGPU General Purpose Programmability on Graphic Processors Units

GPU Performance Trends

Page 4: GPGPU General Purpose Programmability on Graphic Processors Units

Motivation: Flexible and Precise Modern GPUs are deeply

programmable Programmable pixel, vertex, video engines. Solidifying high level language support

Modern GPUs support high precision 32 bit floating point throughout the pipeline High enough for many (not all) applications Newest GPUs have 64bit support

Page 5: GPGPU General Purpose Programmability on Graphic Processors Units
Page 6: GPGPU General Purpose Programmability on Graphic Processors Units

Stream Programming Abstraction Streams

Collection of data records All data is expressed in streams

Kernels Inputs/outputs are streams Perform computation on streams Can be chained together

KERNEL

stream

stream

Page 7: GPGPU General Purpose Programmability on Graphic Processors Units

Stream Programming Abstraction

Dolphin Triangle Mesh

Page 8: GPGPU General Purpose Programmability on Graphic Processors Units

Stream Programming Abstraction Benchmark Funnel: In this

simulation, a cloth falls into a funnel and pass through it under the pressure of a ball. This model has 47K vertices, 92K triangles, and a lot of self-collisions. Our novel GPU-based CCD algorithm takes 4.4ms and 10ms per frame to compute all the collisions on a NVIDIA GeForce GTX 480 and a NVIDIA GeForce GTX 285, respectively.

Page 9: GPGPU General Purpose Programmability on Graphic Processors Units

Stream Programming Abstraction

Page 10: GPGPU General Purpose Programmability on Graphic Processors Units

Why Streams Ample computation by exposing parallelism

Streams expose data parallelism Multiple streams elements can be processed in parallel

Pipeline (task) parallelism Multiple tasks can be processed in parallel

Kernels yield high arithmetic intensity Efficient communication

Producer consumer locality Predictable memory access pattern

Optimize for throughput of all elements, not latency of one

Processing elements at once allows latency hiding

Page 11: GPGPU General Purpose Programmability on Graphic Processors Units

CPU GPU ANALOGIES

Stream/Data array = TextureMemory read= Texture Sample

Page 12: GPGPU General Purpose Programmability on Graphic Processors Units

Structuring a GPU Program Cpu assembles input data Cpu transfers data to GPU(GPU “main

memory” or “device memory”) Cpu calls GPU program (or set of

kernels).GPU runs out of GPU main memory.

When GPU finishes, CPU copies back results into CPU memory.

Recent interfaces allow overlap What lessons can we draw from this

sequence of operations

Page 13: GPGPU General Purpose Programmability on Graphic Processors Units
Page 14: GPGPU General Purpose Programmability on Graphic Processors Units
Page 15: GPGPU General Purpose Programmability on Graphic Processors Units
Page 16: GPGPU General Purpose Programmability on Graphic Processors Units

Kernels

CPU GPU

ADVECT

KERNEL / LOOP BODY / ALGORITHM STEP = Fragment Program

You write one program. It runs on every vertex/fragment.

Page 17: GPGPU General Purpose Programmability on Graphic Processors Units

Conclusion

Can we apply these techniques to more general problems?

GPUs should excel at tasks that : Require ample computation Regular computation Efficient communication