GPU ACCELERATED
HIGH PERFORMANCE
COMPUTING PRIMER
G RAJA SUMANT
ASHOK ASHWIN
//early draft copy
CONTENTS
1. INTRODUCTION
2.WHY USE GPU?
3.CPU ARCHITECTURE
4.GPU ARCHITECTURE
5.WHY PYTHON FOR GPU
6.HOW GPU ACCELERATION ...
INTRODUCTION
GPU-accelerated computing is the use of a graphics
processing unit (GPU) together with a CPU to
accelerate sc...
WHY USE GPU?
GPU-accelerated computing offers unprecedented
application performance by offloading compute-
intensive porti...
CPU ARCHITECTURE
Design target for CPUs:
1)Focus on Task parallelism
2)Make a single thread very fast
3)Hide latency throu...
GPU ARCHITECTURE
The GPU architecture of AMD
GPU ARCHITECTURE
NVIDIA ARCHITECTURE
GPU ARCHITECTURE
WHY PYTHON FOR GPU
Go to a terminal , type python
>> import this
read the output
WHY PYTHON FOR GPU
GPUs are everything that scripting languages are not.
>Highly parallel
>Very architecture-sensitive
>Bu...
http://www.nvidia.com/object/what-is-gpu-computing.html
TECHNOLOGIES AVAILABLE
TODAY FOR GPU COMPUTING
Open computing language (OpenCL)
> Many vendors: AMD, Nvidia, Apple, Intel,...
CUDA + PYTHON
PyCUDA
>You still have to write your kernel in CUDA C
>. . . but integrates easily with numpy
>Higher level ...
PyCUDA sample code
>> open helloCUDA.py in editor
look and analyse the code
CUDAMAT
The aim of the cudamat project is to make it easy to perform basic matrix
calculations on CUDA-enabled GPUs from P...
GNumpy
Module gnumpy contains class garray, which behaves
much like numpy.ndarray
Module gnumpy also contains methods like...
References
● http://documen.tician.de/pycuda/tutorial.html
● http://on-demand.gputechconf.com/gtc/2010/presentations/S1204...
Pycon2014 GPU computing
Pycon2014 GPU computing
Upcoming SlideShare
Loading in …5
×

Pycon2014 GPU computing

521 views

Published on

Published in: Engineering, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
521
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Pycon2014 GPU computing

  1. 1. GPU ACCELERATED HIGH PERFORMANCE COMPUTING PRIMER G RAJA SUMANT ASHOK ASHWIN //early draft copy
  2. 2. CONTENTS 1. INTRODUCTION 2.WHY USE GPU? 3.CPU ARCHITECTURE 4.GPU ARCHITECTURE 5.WHY PYTHON FOR GPU 6.HOW GPU ACCELERATION WORKS 7.TECHNOLOGIES AVAILABLE TODAY FOR GPU COMPUTING 8.CUDA+PYTHON 9.PyCuda sample code
  3. 3. INTRODUCTION GPU-accelerated computing is the use of a graphics processing unit (GPU) together with a CPU to accelerate scientific, engineering, and enterprise applications. Pioneered in 2007 by NVIDIA, GPUs now power energy-efficient datacenters in government labs, universities, enterprises, and small-and-medium businesses around the world.
  4. 4. WHY USE GPU? GPU-accelerated computing offers unprecedented application performance by offloading compute- intensive portions of the application to the GPU, while the remainder of the code still runs on the CPU. From a user's perspective, applications simply run significantly faster.
  5. 5. CPU ARCHITECTURE Design target for CPUs: 1)Focus on Task parallelism 2)Make a single thread very fast 3)Hide latency through large caches 4)Predict, speculate
  6. 6. GPU ARCHITECTURE The GPU architecture of AMD
  7. 7. GPU ARCHITECTURE NVIDIA ARCHITECTURE
  8. 8. GPU ARCHITECTURE
  9. 9. WHY PYTHON FOR GPU Go to a terminal , type python >> import this read the output
  10. 10. WHY PYTHON FOR GPU GPUs are everything that scripting languages are not. >Highly parallel >Very architecture-sensitive >Built for maximum FP/memory throughput >complement each other CPU: largely restricted to control >tasks (1000/sec) >Scripting fast enough >Python + CUDA = PyCUDA >Python + OpenCL = PyOpenCL
  11. 11. http://www.nvidia.com/object/what-is-gpu-computing.html
  12. 12. TECHNOLOGIES AVAILABLE TODAY FOR GPU COMPUTING Open computing language (OpenCL) > Many vendors: AMD, Nvidia, Apple, Intel, IBM... > Standard CPUs may report themselves as OpenCL capable >Works on most devices, but >Implemented feature set and extensions may vary Compute unified device architecture (CUDA) >One vendor: Nvidia (more mature tools) >Better coherence across a limited set of devices
  13. 13. CUDA + PYTHON PyCUDA >You still have to write your kernel in CUDA C >. . . but integrates easily with numpy >Higher level than CUDA C, but not much higher >Full CUDA support and performance gnumpy/CUDAMat/cuBLAS >gnumpy: numpy-like wrapper for CUDAMat >CUDAMat: Pre-written kernels and partial cuBLAS wrapper >cuBLAS: (incomplete) CUDA implementation of BLAS
  14. 14. PyCUDA sample code >> open helloCUDA.py in editor look and analyse the code
  15. 15. CUDAMAT The aim of the cudamat project is to make it easy to perform basic matrix calculations on CUDA-enabled GPUs from Python. cudamat provides a Python matrix class that performs calculations on a GPU. At present, some of the operations the GPU matrix class supports include: Easy conversion to and from instances of numpy.ndarray. Limited slicing support. Matrix multiplication and transpose, Elementwise addition, subtraction, multiplication, and division. open cudamat examples.
  16. 16. GNumpy Module gnumpy contains class garray, which behaves much like numpy.ndarray Module gnumpy also contains methods like tile() and rand(), which behave like their numpy counterparts except that they deal with gnumpy.garray instances, instead of numpy.ndarray instances. gnumpy builds on cudamat
  17. 17. References ● http://documen.tician.de/pycuda/tutorial.html ● http://on-demand.gputechconf.com/gtc/2010/presentations/S12041-PyCUDA-Simpler-GPU-Programming-Python.pdf ● http://www.tsc.uc3m.es/~miguel/MLG/adjuntos/slidesCUDA.pdf ● http://femhub.com/docs/cuda_en.pdf ● http://www.ieap.uni-kiel.de/et/people/kruse/tutorials/cuda/tutorial01p/web01p/tutorial01p.pdf ● http://conference.scipy.org/static/wiki/scipy09-pycuda-tut.pdf

×