14-06-2012, 04:03 PM
High Performance Computing on Graphics Processing Units (GPUs)
Motivation
Explore the use of new parallel computing technology for addressing critical societal issues that require large computational resources
GPGPU
Graphics Processing Units – NVIDIA, ATI, IBM-Cell - Provides massive parallelism at low cost
Being applied to the following imaging applications
Hyperspectral Image Reconstruction – Reef health imaging
Breast Cancer Tomosynthesis Reconstruction – High resolution/contrast cancer screening
Cardiac CT Reconstruction – Identify vulnerable plague in heart
Phase Unwrapping for In-vitro Fertilization Studies – Reduce the number of birth defects
Trauma-Pod – searching for shrapnel from road side bombs in Iraq
CUDA-Strengths
Easy to program (small learning curve)
Success with several complex applications
At least 7X faster than CPU stand-alone implementations
Allows us to read and write data at any location in the device memory
More fast memory close to the processors (registers + shared memory)
CUDA-Limitations
Some hardwired graphic components are hidden
Better tools are needed
Profiling
Memory blocking and layout
Binary Translation
Difficult to find optimal values for CUDA execution parameters
Number of thread per block
Dimension and orientation of blocks and grid
Use of on-chip memory resources including registers and shared memory
How do you get started?
Download the NVIDIA GTX/CUDA emulator
Buy a GPU (~$500) – supercomputing performance at a fraction of the cost
Talk to someone from science or engineering about a large computational task that they want help on
Allows for many interdisciplinary projects
You can also utilize any GPU to realize the implementation (AMD/ATI and IBM/Cell has their own programming environment)