IEEE Toronto Section logo IEEE logo
2009 IEEE Toronto International Conference –
Science and Technology for Humanity
TIC-STH 2009
September 26-27, 2009
Ryerson University, 245 Church Street
Toronto, Ontario, Canada

TUTORIAL 3:

Title: An Introduction to CUDA: Harnessing Graphics Processing Units for High-Throughput General-Purpose Computation

Speaker: Lukasz Wawrzyniak
University of Guelph, Ontario

» Register here
Deadline: September 21, 2009, 11:59PM EDT

Date: Sunday, September 27, 2009
Time: 9:30 AM; Duration – 3 hours
Attend onsite: 245 Church St. (Ryerson University), Toronto
Attend online: Web conferencing option available

Cost

Conference Attendees: Free (requires registration ID number)
IEEE and/or PMI members: $55 (Canadian)
All others: $75 (Canadian)

Speaker

Lukasz Wawrzyniak obtained his BSc in Applied Computer Science from Ryerson University. He obtained his MSc in Computing and Information Science from the University of Guelph, where he is currently a PhD candidate. His research focuses on detecting significant high-density clusters in multidimensional data with applications to disease surveillance. One important avenue of this research concerns accelerating algorithms using graphics processing units and a variety of computing platforms including CUDA, ATI Stream, and OpenGL.

Course Overview

CUDA is a computing platform that exposes NVIDIA graphics cards as general-purpose compute devices. The computational capabilities of today's massively parallel graphics processing units (GPUs) can be harnessed to accelerate data-parallel algorithms. CUDA has been used successfully by researchers in a wide variety of disciplines including biochemistry, astrophysics, geology, visualization, and countless others. This tutorial is an introduction to the CUDA programming model. It examines a typical "Hello, World" application and introduces some of the more advanced features using increasingly sophisticated examples. The goal is to give the attendee a broad perspective on computing with CUDA as well as sufficient information to start developing simple CUDA applications.

What You Will Learn

  • Brief history of GPGPU (general-purpose computing on graphics processing units)
  • Conceptual overview of CUDA and its relation to other GPGPU approaches
  • The stream processing model
  • Using CUDA shared memory for inter-thread communication
  • Optimizing memory access patterns to accelerate applications
  • Evaluating performance
  • General optimization strategies

Prerequisites

This is an introductory tutorial and familiarity with any form of GPU programming is not required.  However, the code examples assume exposure to C programming.