Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
Introduction
- Overview of ROCm
- Understanding HIP
- Comparison of ROCm, CUDA, and OpenCL
- Overview of ROCm and HIP features and architecture
- Differences between ROCm for Windows and ROCm for Linux
Installation
- Installing ROCm on Windows
- Verifying the installation and checking device compatibility
- Updating or uninstalling ROCm on Windows
- Troubleshooting common installation issues
Getting Started
- Creating a new ROCm project using Visual Studio Code on Windows
- Exploring the project structure and associated files
- Compiling and running the program
- Displaying output using printf and fprintf
ROCm API
- Utilizing the ROCm API within the host program
- Querying device information and capabilities
- Allocating and deallocating device memory
- Copying data between host and device
- Launching kernels and synchronizing threads
- Handling errors and exceptions
HIP Language
- Using the HIP language within the device program
- Writing kernels that execute on the GPU and manipulate data
- Using data types, qualifiers, operators, and expressions
- Leveraging built-in functions, variables, and libraries
ROCm and HIP Memory Model
- Utilizing different memory spaces, such as global, shared, constant, and local
- Working with different memory objects, such as pointers, arrays, textures, and surfaces
- Applying different memory access modes, such as read-only, write-only, and read-write
- Understanding the memory consistency model and synchronization mechanisms
ROCm and HIP Execution Model
- Using different execution models, such as threads, blocks, and grids
- Employing thread functions, such as hipThreadIdx_x, hipBlockIdx_x, and hipBlockDim_x
- Utilizing block functions, such as __syncthreads and __threadfence_block
- Using grid functions, such as hipGridDim_x, hipGridSync, and cooperative groups
Debugging
- Debugging ROCm and HIP programs on Windows
- Using the Visual Studio Code debugger to inspect variables, set breakpoints, and review the call stack
- Using the ROCm Debugger to debug ROCm and HIP programs on AMD devices
- Using the ROCm Profiler to analyze ROCm and HIP programs on AMD devices
Optimization
- Optimizing ROCm and HIP programs on Windows
- Applying coalescing techniques to enhance memory throughput
- Using caching and prefetching techniques to minimize memory latency
- Leveraging shared and local memory techniques to optimize memory access and bandwidth
- Employing profiling and profiling tools to measure and improve execution time and resource utilization
Summary and Next Steps
Requirements
- A solid understanding of the C/C++ language and core parallel programming concepts
- Familiarity with computer architecture and memory hierarchy structures
- Proficiency with command-line tools and modern code editors
- Working knowledge of the Windows operating system and PowerShell
Target Audience
- Developers seeking to learn how to install and utilize ROCm on Windows to program AMD GPUs and exploit their parallel capabilities
- Engineers aiming to write high-performance, scalable code compatible with various AMD devices
- Programmers interested in exploring the low-level intricacies of GPU programming and optimizing code performance
21 Hours