GPU programming is a technique that leverages the parallel processing power of GPUs to accelerate applications that require high-performance computing, such as artificial intelligence, gaming, graphics, and scientific computing. There are several frameworks that enable GPU programming, each with its own advantages and disadvantages. OpenCL is an open standard that can be used to program CPUs, GPUs, and other devices from different vendors, while CUDA is specific to NVIDIA GPUs. ROCm is a platform that supports GPU programming on AMD GPUs, and also provides compatibility with CUDA and OpenCL.This instructor-led, live training (online or onsite) is aimed at beginner-level to intermediate-level developers who wish to use different frameworks for GPU programming and compare their features, performance, and compatibility.By the end of this training, participants will be able to:
- Set up a development environment that includes OpenCL SDK, CUDA Toolkit, ROCm Platform, a device that supports OpenCL, CUDA, or ROCm, and Visual Studio Code.
- Create a basic GPU program that performs vector addition using OpenCL, CUDA, and ROCm, and compare the syntax, structure, and execution of each framework.
- Use the respective APIs to query device information, allocate and deallocate device memory, copy data between host and device, launch kernels, and synchronize threads.
- Use the respective languages to write kernels that execute on the device and manipulate data.
- Use the respective built-in functions, variables, and libraries to perform common tasks and operations.
- Use the respective memory spaces, such as global, local, constant, and private, to optimize data transfers and memory accesses.
- Use the respective execution models to control the threads, blocks, and grids that define the parallelism.
- Debug and test GPU programs using tools such as CodeXL, CUDA-GDB, CUDA-MEMCHECK, and NVIDIA Nsight.
- Optimize GPU programs using techniques such as coalescing, caching, prefetching, and profiling.
Format of the Course
- Interactive lecture and discussion.
- Lots of exercises and practice.
- Hands-on implementation in a live-lab environment.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
Read more...