Newsletter

Newsletter
 

Jacket Lectures

Torben's Corner

Jacket is used in course instruction at many universities around the world. Professors and course instructors use Jacket to provide engineering students with GPU acceleration of MATLAB algorithms and to bring HPC to MATLAB courses.

Below we share six lectures from Professor Torben Larsen at Aalborg University. These lectures contain great content and can provide a jump start to your lecture preparations. For more information, visit Torben's Corner.

Lecture 1 - Parallel HPC - Introduction

The objective of the course is to provide you with knowledge of GPU based computing. You will know about the strengths and weaknesses of the GPU computing paradigm. You will get hands on experience in programming single and multiple GPUs by use of MATLAB and Jacket. And you will learn to benchmark the code you develop.

Download

Lecture 2 - Jacket Introduction

Introduction topics include:
What is Jacket? Why use it? CPU vs GPU performance. MATLAB/CUDA/Jacket. Jacket Framework: Configurations, Product Types, Platform Design. Jacket Fundamentals: Data Types / Casting Variables, Pass-by-Value Semantics, Warm-Up Jacket and MATLAB, Lazy Computation. Initial Benchmarking Considerations. Case Study: Transfer of Data Between CPU and GPU Memory. Some Examples: Matrix/Matrix Multiplication, Vector/Vector Multiplication With Normalization.

Download

Lecture 3 - Basic Programming

Basic topics covered include programming methodology for organizing code, such as how to use functions and sub-functions and how to maintain CPU and GPU versions in 1-file. Also, efficient array indexing is explored for top performance. Different ways of acquiring system information are shown. Benchmarking MATLAB and Jacket functions is discussed. Running Jacket code on non-Jacket enabled MATLAB installations is explained. Computational threads are included as well as thoughts on handling scalars and how Jacket handles row vs column major arrays.

Download

Lecture 4 - Advanced Programming

Advanced topics include GPU characteristics, exploring architectures along with their strengths and weaknesses in relation to computing. Stop-Resume paradigm's are explored. GFOR loops are covered in-depth, including objectives, working principles, characteristics, memory, along with a case study. Handling large amounts of data is explored. Finally, a Jacobi and Hessian computational problem is used to motivate these lessons.

Download

Lecture 5 - Programming Multiple GPUs

Multi-GPU topics covered include SPMD ("Single Program Multiple Data"), with an intro, example, and overview. Mechanisms for selecting specific GPUs are explained. An example for simultaneous multi-GPU experiments is shared. A case study for multiple GPU computations is analyzed along with implementation and results.

Download

Lecture 6 - Benchmarking

This lecture explains best practices for timing Jacket and MATLAB code. The Objective: Measure the time it takes to run a certain function. Indicate speedup for Jacket relative to MATLAB. Requirements: 1) Results must be correct; measure what we actually want to measure, 2) Reproducible; we should be able to get the same result several 8mes if the conditions are the same, and 3) Easy to use; if it is easy to use we are more likely to use it.

Download