Personal tools
You are here: Home Workshop and short courses Short Course: "Introduction to Programming with CUDA" by Martin Purschke (BNL)
Document Actions

Short Course: "Introduction to Programming with CUDA" by Martin Purschke (BNL)

In recent years, a new trend in high-performance computing has evolved, which makes use of commodity graphics processors (GPUs) for massively parallel computing tasks. The increase of the processing power of GPUs, driven by high-end computer gaming, can easily be put to use for other CPU-intensive tasks. Off-the-shelf systems providing multiple TeraFlops of processing power are available at commodity price levels today.

This 3-hour course is meant to provide an introduction to the CUDA technology, which is NVIDIA's framework for GPU programming. I will try to briefly put CUDA into perspective with the equivalent toolkit for ATI cards and the still-emerging OpenCL standard, which is designed to provide a generic framework for programming GPUs.

We will start with the prerequisites on the main platforms (Linux, Mac, Windows), and progress to simple examples to show the relative ease of  use. We will demonstrate some common pitfalls and show how to avoid  them, touch on some special considerations for multi-threaded programs on the CPU, and, given time and interest, progress to some advanced  topics. At the end of the course you should be able to write simple CUDA programs and be able to study advanced topics on your own.

If you have a laptop capable of running CUDA programs, such as the later-model MacBooks with NVIDIA graphics chips, or a Windows or Linux laptop with a CUDA-capable chipset, you are encouraged to pre-install the free CUDA software ahead of time and bring your laptop to the course. You should be able to run most of the examples on the spot.

Speaker: Dr. Martin Purschke is a permanent staff physicist at the  Brookhaven National Laboratory. He is the Data Acquisition Coordinator  of the PHENIX Experiment at the Relativistic Heavy Ion Collider, and has written substantial portions of the online and offline software in use in the PHENIX experiment. He is also a member in the RatCAP Pet-Imaging project at BNL. Most of his CUDA programming takes place in the framework of the image reconstruction for the PET detectors.


Powered by Plone CMS, the Open Source Content Management System