GPUProgramming Talk
GPUProgramming Talk
Boston University
GPU Programming
Triangles, Lines,
Shading, Texturing
Points
GPU Programming
GPGPU
1999-2000 computer scientists from various fields started using
GPUs to accelerate a range of scientific applications.
GPGPU timeline
In November 2006 Nvidia launched CUDA, an API that allows to
code algorithms for execution on Geforce GPUs using C
programming language.
CPU GPU
2008 2013
1 x 50 50
Supercomputer Supercomputers
GPU Acceleration
Applications
GPU-accelerated OpenACC Programming
libraries Directives Languages
Seamless linking to GPU- Simple directives for easy Most powerful and flexible
enabled libraries. GPU-acceleration of new way to design GPU
and existing applications accelerated applications
cuFFT, cuBLAS,
C/C++, Fortran,
Thrust, NPP, IMSL, PGI Accelerator
Python, Java, etc.
CULA, cuRAND, etc.
GPU Programming
cuBLAS
6x to 17x faster performance than the latest
MKL BLAS
Fortran binding
GPU Programming
OpenACC Directives
• Simple compiler directives
• Works on multicore CPUs & many core
GPUs
• Future integration into OpenMP
Program myscience
CUDA
Programming language extension to C/C++ and FORTRAN;
• GPU-enabled MATLAB functions such as fft, filter, and several linear algebra
operations
• CUDA kernel integration in MATLAB applications, using only a single line of MATLAB
code
A=rand(2^16,1); A=gpuArray(rand(2^16,1));
B=fft(A); B=fft(A);
GPU Programming