Join us for an informative introduction to GPU Programming. The session will begin with a brief overview of CUDA and data-parallelism before focusing on the GPU programming model. We will explore the fundamentals of GPU kernels, host and device responsibilities, CUDA syntax and thread hierarchy. A programming demonstration of a simple CUDA kernel will be provided. Introduction to GPU Programming - CUDA overview - Data-parallelism - GPU programming model o GPU kernels o Host vs. device responsibilities o CUDA syntax o Thread hierarchy - Programming Demo: Simple CUDA Kernels
Explore the memory model of the GPU. The first part of the session covers task parallelism and thread cooperation in GPU computing. The second part focuses on the different memory types available on the GPU. We will define shared, constant and global memory and discuss the best locations to store your application data for optimized performance. A programming demonstration of shared memory will be delivered. Introduction to the GPU Architecture and Memory Model - Task parallelism - Thread cooperation in GPU computing - GPU memory model o Shared memory o Constant memory o Global memory - Programming Demo: Shared Memory
Get the low down on debugging your GPU program. This session includes discussion on debugging techniques and tools to help you identify issues in your kernels. The latest debugging tools provided in CUDA 4.1 including Parallel NSight, cuda-gdb and cuda-memcheck will be discussed. A programming demonstration of Parallel NSight will be provided. Debugging GPU Programs - Debugging tools and techniques - cuda-gdb - Parallel NSight - cuda-memcheck - Programming Demo: Parallel NSight
Learn how to optimize and profile your algorithms for the GPU. This session will cover the essentials of code optimization and will include: arithmetic optimizations, warps, branching efficiency, memory latency/occupancy and memory performance optimizations. Real life commercial examples will be discussed to highlight the critical aspects of GPU optimization techniques. A programming demonstration using the NVIDIA Visual Profiler will be included. Introduction to Optimizations and Profiling - Arithmetic optimizations - Warps - Branching efficiency - Memory latency/Occupancy - Memory performance optimizations - Programming Demo: Visual Profiler
Find out about the newest method for Marine Hydrocarbon Exploration. In this session we will profile the use of Finite Difference Time Domain (FDTD) technique in combination with Mittet's method and GPUs to produce faster, cheaper, more accurate forward modeling for electromagnetic imaging (Controlled Source Electromagnetic or CSEM). Unlike many frequency domain CSEM techniques this accelerated method does not require simplifying assumptions to reduce the memory and computational burden and has excellent scaling properties (essentially linear) across clusters of GPU accelerated nodes. CSEM is used in the industry to enhance confidence in hydrocarbon reservoir discoveries.