When

Thursday January 14, 2016 from 9:00 AM to 12:00 PM EST
Add to Calendar 

Where

Northwest Building, B1 Level 
52 Oxford Street
Cambridge, MA 02138
 

 
Driving Directions 

Contact

Harvard Paulson School 
Institute for Applied Computational Science
Sheila Coveney, Program Manager 

617-384-9091 
iacs-info@seas.harvard.edu 

 

IACS ComputeFest Workshop:
Introduction to GPU Programming with NVIDIA CUDA and OpenACC Part 1 of 2

Thursday, January 14, 2016
9:00am - 12:00pm

Presenter: Jonathan Bentz, NVIDIA
Facilitator: Barton Fiske, NVIDIA

NVIDIA GPUs are the world’s fastest and most efficient accelerators delivering world record scientific application performance. NVIDIA CUDA is the most pervasive parallel computing model, used by over 250 scientific applications and over 150,000 developers worldwide. This workshop will focus on introducing scientific computing and programming concepts utilizing NVIDIA GPUs to accelerate applications. The workshop will introduce programming techniques using CUDA and OpenACC paradigms as well as optimization, profiling, and debugging methods for GPU programming.

Topics covered include: GPU Architecture, OpenACC, Introduction to CUDA, CUDA Libraries, and CUDA performance tools such as NVIDIA Visual Profiler along with hands on examples using NVIDIA-provided cloud based GPU resources and development tools.

This Day 1 Morning Workshop will cover:

  • Introduction to GPU programming with NVIDIA CUDA and OpenACC
  • High Level Overview of GPU Architecture
    • OpenACC 2.0 Update
    • Introduction to OpenACC pragma compiler directives
    • Specify loops and regions of code in standard C, C++ and Fortran
    • Offloading from a host CPU to an attached accelerator.
  • Hands-On examples to focus on data locality
  • Basics of GPU Programming; An introduction to the CUDA C/C++ Language
  • Hands-On examples will Illustrate simple kernel launches and using threads 

Suggested pre-requisites for GPU and CUDA sessions:

*Laptop with wireless access and SSH client installed
*Basic Linux desktop and command line familiarity including use of a standard file editor such as VIM or Emacs.
*Familiarity with software development tools and concepts: compiling, linking and using GNUMake.
*Rudimentary programming experience in C/C++ (memory management using malloc/free, using pointers, etc)

Note: Part 2 of this workshop is offered on Friday, January 15 at 9:30am.  Sign up here for the Friday workshop.