High Performance GPU Programming and Introduction to Deep Learning

    Wednesday, April 25, 2018 - 9:00am - Thursday, April 26, 2018 - 4:30pm
    Main Library, Integrated Learning Center, Room 112A

    Main Library
    1510 E University Blvd
    Tucson, AZ 85721


    Dates and times: April 25 and 26 from 9AM – 4:30PM

    Location: Main Library, Integrated Learning Center, Room 112A

    Audience: Undergraduate/Graduate students, Postdocs, Researchers, Data Scientists and Faculty

    Registration: Registration will be through UAccess Learning https://learning.uaccess.arizona.edu/psp/uazelprd/EMPLOYEE/ELM/c/LM_SS_LEARNING.LM_FIND_LEARNING.GBL
    Choose Learning, Find Learning, Search for “NVIDIA”

    Important: Seating is limited to the first 50 people

    Please bring your laptop to participate in hands-on exercises. 

    A GPU in your laptop is not required. For CUDA and OpenACC, no previous GPU programming experience is required. However, beginner-level C and Linux experience will be expected.

    Please also take the time to register at our CUDA developer site: 

     For more information on CUDA training: https://developer.nvidia.com/cuda-education-training


    NVIDIA GPUs are the world's fastest and most efficient accelerators delivering world record scientific application performance. NVIDIA's CUDA technology is the most pervasive parallel computing model, used by over 450 scientific applications and over 200,000 developers worldwide.  This two-day workshop will provide an introduction on how to accelerate applications across a diverse set of domains using OpenACC and CUDA as well as demonstrating GPUs for Deep Learning with Accelerated Frameworks using Google TensorFlow. A Hands-on Lab format will be used. 

    Speaker Bio(s): 

    Dr. Jonathan Bentz is a Solution Architect with NVIDIA, focusing on Higher Education and Research customers. In this role he works as a technical resource to customers and OEMs to support and enable adoption of GPU computing. He delivers GPU training such as workshops to train users and help raise awareness of GPU computing. He also works with ISV and customer applications to assist in optimization for GPUs through the use of benchmarking and targeted code development efforts. Prior to NVIDIA, Jonathan worked for Cray as a software engineer where he developed and optimized high performance scientific libraries such as BLAS, LAPACK, and FFT specifically for the Cray platform. Jonathan obtained his PhD in physical chemistry and his MS in computer science from Iowa State University.


    AGENDA: Day 1

    Introduction to GPU programming: 9AM - 4:30P

    • High level overview of GPU architecture
    • Access to University of Arizona HPC resources, particularly the Nvidia P100 GPU’s
    • OpenACC: an introduction on compiler directives to specify loops and regions of code in standard C, C++ and Fortran to be offloaded 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


    AGENDA: Day 2

    Performance and Optimization with an Intro to Deep Learning: 9AM - 4:30PM

    • Overview of Global and shared memory usage - Hands-on examples will illustrate a 1D Stencil and Matrix Transpose
    • Using NVIDIA Profiler to identify performance bottlenecks
    • Advanced Optimizations using Streams and Concurrency to overlap communication and computation - Hands-on examples will use CUBLAS with Matrix Multiply

    Intro to Deep Learning/Machine Learning

    • Deep Learning and the Engine of GPUs; an overview of Deep Learning


    Coffee, snacks, and drinks will be provided.