COVID-19 Update: Information and resources can be found here.

GPU Programming for Medical Physics and Medical Imaging Research

Sponsor: Department of Radiation Oncology, University of Texas Southwestern Medical Center (UTSW), Dallas, TX 75235
Date: TBD
Place: University of Texas Southwestern Medical Center

Course Description

Recent advances in general purpose GPU computing provide for an unprecedented increase in data processing speed for solving scientific problems using numerical methods. In particular, a number of computational tasks in medical physics and imaging can be solved orders of magnitude faster than previous methods using a GPU architecture. The complexity of GPU hardware, however, brings about a new environment with programming challenges not seen with CPUs.

This two-day GPU programming course, taught by faculty and researchers at the Department of Radiation Oncology at UT Southwestern Medical Center, is designed to provide the basics of GPU programming, with an emphasis on solving problems in medical physics and imaging. Participants will learn CUDA and OpenCL programming as well as code optimization techniques. The course consists of comprehensive didactic lectures with corresponding programming labs designed to apply concepts of GPU programming to relevant problems. Lecture notes and a number of sample codes will be provided. Previous programming experience with C/C++ language is a prerequisite. Working knowledge on Unix/Linux-based system is expected for lab sessions.

The course will emphasize hands-on experience. It will take place in a well-equipped computer training classroom at UTSW. Each student will have his/her own desktop computer. Every two students will have exclusive access to a dedicated NVIDIA GPU card. Multiple TAs will be available to answer questions during labs. All the course materials will be given to students. Some GPU codes developed at UTSW will also be provided. A certificate of completion will be offered at the end of the course.

Course Schedule

Day 1

8:15–9 a.m.   Registration and breakfast
9– 9:10 a.m.   Opening remarks
9:10–9:40 a.m. 1 Lecture: Introduction to GPU and GPU programming
9:40–10:10 a.m. 2 Lecture: CUDA programming (I)
10:10–10:30 a.m.   Coffee break
10:30 a.m.–Noon 3 Lecture: CUDA programming (II)
Noon–1:30 p.m.   Lunch
1:30–2:15 p.m. 4 Lecture/Lab: Vector addition
2:15–3:50 p.m. 5 Lecture/Lab: Matrix multiplication
3:50–4:10 p.m.   Coffee break
4:10–5:10 p.m. 6 Lecture/Lab: CUDA libraries
5:10–5:45 p.m. 7 Lecture: CUDA with MATLAB
6 p.m.   Happy hour and dinner

Day 2

8:30–9 a.m.   Breakfast
9–10:20 a.m. 8 Lecture/Lab: FDK CBCT reconstruction (I)
10:20–10:40 a.m.   Coffee break
10:40–Noon 9 Lecture/Lab: FDK CBCT reconstruction (II)
Noon–1:30 p.m.   Lunch
1:30–2:30 p.m. 10 Lecture: Advanced topics in CUDA programming
2:30–3:30 p.m. 11 Lecture: Introduction to OpenCL programming
3:30–3:50 p.m.   Coffee break/ Group photo
3:50–4:20 p.m. 12 Lecture: Introduction to UTSW codes
4:20 p.m.   Closing remarks

Registration and Cancellation Policy

To facilitate hands-on experience, enrollment will be limited. Registration will be strictly on a first-come basis. The course registration fee is $1,500 for early birds (before 9/1/2014) and $1,800 for standard. Fees cover the facility rental, course materials, two lunches, dinner, happy hour, and refreshments. Graduate students, postdoctoral fellows, and residents will pay a discounted rate ($1,000/$1,200).

A one-week cancellation notice is required for you to receive a credit, minus a $100 handling fee. We reserve the right to cancel the course due to insufficient enrollment or unforeseen circumstances. Registrants will be notified prior to the event and full refunds will be issued by check or by credit to your charge card.