AMD GPU Programming Training Course
ROCm is an open-source platform designed for GPU programming that supports AMD GPUs and also ensures compatibility with CUDA and OpenCL. ROCm provides programmers with direct access to hardware details, giving them full control over the parallelization process. However, this level of control requires a solid understanding of device architecture, memory models, execution models, and optimization techniques.
HIP is a C++ runtime API and kernel language that enables developers to write portable code capable of running on both AMD and NVIDIA GPUs. HIP offers a thin abstraction layer over native GPU APIs like ROCm and CUDA, allowing users to leverage existing GPU libraries and tools effectively.
This instructor-led, live training (available online or onsite) is targeted at beginner to intermediate-level developers who are interested in using ROCm and HIP for programming AMD GPUs and harnessing their parallel capabilities.
By the end of this training, participants will be able to:
- Set up a development environment that includes the ROCm Platform, an AMD GPU, and Visual Studio Code.
- Create a basic ROCm program that performs vector addition on the GPU and retrieves results from GPU memory.
- Utilize the ROCm API to query device information, manage device memory allocation and deallocation, transfer data between host and device, launch kernels, and synchronize threads.
- Write HIP language kernels that execute on the GPU and manipulate data.
- Leverage HIP built-in functions, variables, and libraries for common tasks and operations.
- Optimize data transfers and memory accesses using ROCm and HIP memory spaces such as global, shared, constant, and local.
- Control threads, blocks, and grids to define parallelism using ROCm and HIP execution models.
- Debug and test ROCm and HIP programs using tools like the ROCm Debugger and ROCm Profiler.
- Optimize ROCm and HIP programs using techniques such as coalescing, caching, prefetching, and profiling.
Format of the Course
- Interactive lectures and discussions.
- Extensive exercises and practice sessions.
- Hands-on implementation in a live-lab environment.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
Course Outline
Introduction
- What is ROCm?
- What is HIP?
- ROCm vs CUDA vs OpenCL
- Overview of ROCm and HIP features and architecture
- Setting up the Development Environment
Getting Started
- Creating a new ROCm project using Visual Studio Code
- Exploring the project structure and files
- Compiling and running the program
- Displaying the output using printf and fprintf
ROCm API
- Understanding the role of ROCm API in the host program
- Using ROCm API to query device information and capabilities
- Using ROCm API to allocate and deallocate device memory
- Using ROCm API to copy data between host and device
- Using ROCm API to launch kernels and synchronize threads
- Using ROCm API to handle errors and exceptions
HIP Language
- Understanding the role of HIP language in the device program
- Using HIP language to write kernels that execute on the GPU and manipulate data
- Using HIP data types, qualifiers, operators, and expressions
- Using HIP built-in functions, variables, and libraries to perform common tasks and operations
ROCm and HIP Memory Model
- Understanding the difference between host and device memory models
- Using ROCm and HIP memory spaces, such as global, shared, constant, and local
- Using ROCm and HIP memory objects, such as pointers, arrays, textures, and surfaces
- Using ROCm and HIP memory access modes, such as read-only, write-only, read-write, etc.
- Using ROCm and HIP memory consistency model and synchronization mechanisms
ROCm and HIP Execution Model
- Understanding the difference between host and device execution models
- Using ROCm and HIP threads, blocks, and grids to define the parallelism
- Using ROCm and HIP thread functions, such as hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, etc.
- Using ROCm and HIP block functions, such as __syncthreads, __threadfence_block, etc.
- Using ROCm and HIP grid functions, such as hipGridDim_x, hipGridSync, cooperative groups, etc.
Debugging
- Understanding the common errors and bugs in ROCm and HIP programs
- Using Visual Studio Code debugger to inspect variables, breakpoints, call stack, etc.
- Using ROCm Debugger to debug ROCm and HIP programs on AMD devices
- Using ROCm Profiler to analyze ROCm and HIP programs on AMD devices
Optimization
- Understanding the factors that affect the performance of ROCm and HIP programs
- Using ROCm and HIP coalescing techniques to improve memory throughput
- Using ROCm and HIP caching and prefetching techniques to reduce memory latency
- Using ROCm and HIP shared memory and local memory techniques to optimize memory accesses and bandwidth
- Using ROCm and HIP profiling and profiling tools to measure and improve the execution time and resource utilization
Summary and Next Steps
Requirements
- An understanding of C/C++ language and parallel programming concepts
- Basic knowledge of computer architecture and memory hierarchy
- Experience with command-line tools and code editors
Audience
- Developers who wish to learn how to use ROCm and HIP to program AMD GPUs and exploit their parallelism
- Developers who wish to write high-performance and scalable code that can run on different AMD devices
- Programmers who wish to explore the low-level aspects of GPU programming and optimize their code performance
Need help picking the right course?
AMD GPU Programming Training Course - Enquiry
AMD GPU Programming - Consultancy Enquiry
Related Courses
Developing AI Applications with Huawei Ascend and CANN
21 HoursHuawei Ascend is a range of AI processors designed for efficient inference and high-performance training.
This instructor-led, live training (available online or onsite) is targeted at intermediate-level AI engineers and data scientists who aim to develop and optimize neural network models using Huawei’s Ascend platform and the CANN toolkit.
By the end of this training, participants will be able to:
- Set up and configure the CANN development environment effectively.
- Develop AI applications leveraging MindSpore and CloudMatrix workflows.
- Enhance performance on Ascend NPUs through the use of custom operators and tiling techniques.
- Deploy models to edge or cloud environments seamlessly.
Format of the Course
- Interactive lecture and discussion sessions.
- Practical hands-on use of Huawei Ascend and the CANN toolkit in sample applications.
- Guided exercises focused on building, training, and deploying models.
Course Customization Options
- For a customized training tailored to your infrastructure or datasets, please contact us to arrange.
Deploying AI Models with CANN and Ascend AI Processors
14 HoursCANN (Compute Architecture for Neural Networks) is Huawei’s AI computing stack designed for deploying and optimizing AI models on Ascend AI processors.
This instructor-led, live training (available online or onsite) is targeted at intermediate-level AI developers and engineers who aim to deploy trained AI models efficiently on Huawei Ascend hardware using the CANN toolkit and tools such as MindSpore, TensorFlow, or PyTorch.
By the end of this training, participants will be able to:
- Understand the architecture of CANN and its role in the AI deployment pipeline.
- Convert and adapt models from popular frameworks into Ascend-compatible formats.
- Utilize tools like ATC, OM model conversion, and MindSpore for edge and cloud inference.
- Diagnose deployment issues and optimize performance on Ascend hardware.
Format of the Course
- Interactive lecture and demonstration.
- Hands-on lab work using CANN tools and Ascend simulators or devices.
- Practical deployment scenarios based on real-world AI models.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
GPU Programming on Biren AI Accelerators
21 HoursBiren AI Accelerators are high-performance GPUs designed for AI and HPC workloads, supporting large-scale training and inference.
This instructor-led, live training (available online or on-site) is targeted at intermediate to advanced developers who want to program and optimize applications using Biren’s proprietary GPU stack, with practical comparisons to CUDA-based environments.
By the end of this training, participants will be able to:
- Understand the architecture and memory hierarchy of Biren GPUs.
- Set up the development environment and utilize Biren’s programming model.
- Translate and optimize CUDA-style code for Biren platforms.
- Apply performance tuning and debugging techniques.
Format of the Course
- Interactive lecture and discussion.
- Hands-on use of Biren SDK in sample GPU workloads.
- Guided exercises focused on porting and performance tuning.
Course Customization Options
- To request a customized training for this course based on your application stack or integration needs, please contact us to arrange.
Cambricon MLU Development with BANGPy and Neuware
21 HoursCambricon MLUs (Machine Learning Units) are specialized AI chips designed to optimize inference and training in both edge and datacenter environments.
This instructor-led, live training (available online or onsite) is tailored for intermediate-level developers who aim to build and deploy AI models using the BANGPy framework and Neuware SDK on Cambricon MLU hardware.
By the end of this training, participants will be able to:
- Set up and configure the BANGPy and Neuware development environments.
- Develop and optimize Python- and C++-based models for Cambricon MLUs.
- Deploy models to edge and data center devices running the Neuware runtime.
- Integrate machine learning workflows with MLU-specific acceleration features.
Format of the Course
- Interactive lecture and discussion sessions.
- Hands-on use of BANGPy and Neuware for development and deployment tasks.
- Guided exercises focused on optimization, integration, and testing.
Course Customization Options
- To request a customized training based on your specific Cambricon device model or use case, please contact us to arrange.
Introduction to CANN for AI Framework Developers
7 HoursCANN (Compute Architecture for Neural Networks) is Huawei’s AI computing toolkit designed to compile, optimize, and deploy AI models on Ascend AI processors.
This instructor-led, live training (available online or onsite) is targeted at beginner-level AI developers who want to understand how CANN integrates into the model lifecycle from training to deployment, and how it works with frameworks such as MindSpore, TensorFlow, and PyTorch.
By the end of this training, participants will be able to:
- Comprehend the purpose and architecture of the CANN toolkit.
- Set up a development environment using CANN and MindSpore.
- Convert and deploy a simple AI model on Ascend hardware.
- Acquire foundational knowledge for future CANN optimization or integration projects.
Format of the Course
- Interactive lectures and discussions.
- Hands-on labs involving simple model deployment.
- Step-by-step guidance through the CANN toolchain and integration points.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
CANN for Edge AI Deployment
14 HoursHuawei's Ascend CANN toolkit facilitates robust AI inference on edge devices like the Ascend 310. This toolkit offers essential tools for compiling, optimizing, and deploying models in environments with limited compute and memory resources.
This instructor-led, live training (available both online and onsite) is designed for intermediate-level AI developers and integrators who want to deploy and optimize models on Ascend edge devices using the CANN toolchain.
By the end of this training, participants will be able to:
- Prepare and convert AI models for deployment on the Ascend 310 using CANN tools.
- Construct lightweight inference pipelines with MindSpore Lite and AscendCL.
- Enhance model performance in settings with constrained compute and memory.
- Deploy and monitor AI applications in practical edge use cases.
Format of the Course
- Interactive lectures and demonstrations.
- Hands-on lab work with models and scenarios specific to edge devices.
- Live deployment examples on either virtual or physical edge hardware.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
Understanding Huawei’s AI Compute Stack: From CANN to MindSpore
14 HoursHuawei’s AI stack, ranging from the low-level CANN SDK to the high-level MindSpore framework, provides a seamless and integrated environment optimized for AI development and deployment on Ascend hardware.
This instructor-led, live training (available both online and onsite) is designed for technical professionals at beginner to intermediate levels who want to gain a comprehensive understanding of how CANN and MindSpore work together to support the entire AI lifecycle management and infrastructure decisions.
By the end of this training, participants will be able to:
- Grasp the layered architecture of Huawei’s AI compute stack.
- Recognize how CANN facilitates model optimization and hardware-level deployment.
- Assess the MindSpore framework and toolchain in comparison to industry alternatives.
- Integrate Huawei's AI stack into enterprise or cloud/on-prem environments effectively.
Format of the Course
- Interactive lectures and discussions.
- Live system demonstrations and case studies.
- Optional guided labs focusing on the model flow from MindSpore to CANN.
Course Customization Options
- For a customized training tailored to your specific needs, please contact us to arrange.
Optimizing Neural Network Performance with CANN SDK
14 HoursCANN SDK (Compute Architecture for Neural Networks) is Huawei’s AI computing foundation that enables developers to fine-tune and optimize the performance of deployed neural networks on Ascend AI processors.
This instructor-led, live training (online or onsite) is designed for advanced-level AI developers and system engineers who want to enhance inference performance using CANN’s advanced toolset, including the Graph Engine, TIK, and custom operator development.
By the end of this training, participants will be able to:
- Comprehend CANN's runtime architecture and performance lifecycle.
- Utilize profiling tools and the Graph Engine for performance analysis and optimization.
- Develop and optimize custom operators using TIK and TVM.
- Address memory bottlenecks and improve model throughput.
Format of the Course
- Interactive lectures and discussions.
- Hands-on labs with real-time profiling and operator tuning.
- Optimization exercises using edge-case deployment scenarios.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
CANN SDK for Computer Vision and NLP Pipelines
14 HoursThe CANN SDK (Compute Architecture for Neural Networks) offers robust tools for deploying and optimizing real-time AI applications in computer vision and natural language processing, particularly on Huawei Ascend hardware.
This instructor-led, live training (available both online and onsite) is designed for intermediate-level AI practitioners who aim to build, deploy, and optimize vision and language models using the CANN SDK for production scenarios.
By the end of this training, participants will be able to:
- Deploy and optimize computer vision (CV) and natural language processing (NLP) models using CANN and AscendCL.
- Utilize CANN tools for model conversion and integration into live pipelines.
- Enhance inference performance for tasks such as detection, classification, and sentiment analysis.
- Construct real-time CV/NLP pipelines suitable for edge or cloud-based deployment scenarios.
Format of the Course
- Interactive lecture with demonstrations.
- Hands-on lab sessions focusing on model deployment and performance profiling.
- Live pipeline design using practical CV and NLP use cases.
Course Customization Options
- For a customized training session tailored to your specific needs, please contact us to arrange.
Building Custom AI Operators with CANN TIK and TVM
14 HoursCANN TIK (Tensor Instruction Kernel) and Apache TVM facilitate advanced optimization and customization of AI model operators for Huawei Ascend hardware.
This instructor-led, live training (available online or on-site) is designed for advanced-level system developers who aim to build, deploy, and fine-tune custom operators for AI models using CANN’s TIK programming model and TVM compiler integration.
By the end of this training, participants will be able to:
- Write and test custom AI operators using the TIK DSL for Ascend processors.
- Integrate custom operations into the CANN runtime and execution graph.
- Utilize TVM for operator scheduling, auto-tuning, and benchmarking.
- Debug and optimize instruction-level performance for custom computation patterns.
Format of the Course
- Interactive lecture and demonstration.
- Hands-on coding of operators using TIK and TVM pipelines.
- Testing and tuning on Ascend hardware or simulators.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
Migrating CUDA Applications to Chinese GPU Architectures
21 HoursChinese GPU architectures like Huawei Ascend, Biren, and Cambricon MLUs provide CUDA alternatives specifically designed for the local AI and HPC markets.
This instructor-led, live training (online or onsite) is targeted at advanced-level GPU programmers and infrastructure specialists who want to migrate and optimize existing CUDA applications for deployment on Chinese hardware platforms.
By the end of this training, participants will be able to:
- Assess the compatibility of existing CUDA workloads with Chinese chip alternatives.
- Adapt CUDA codebases to Huawei CANN, Biren SDK, and Cambricon BANGPy environments.
- Evaluate performance and pinpoint optimization opportunities across platforms.
- Tackle practical challenges in supporting and deploying cross-architecture solutions.
Format of the Course
- Interactive lectures and discussions.
- Hands-on code translation and performance comparison labs.
- Guided exercises focusing on multi-GPU adaptation strategies.
Course Customization Options
- To request a customized training for this course based on your specific platform or CUDA project, please contact us to arrange.
Performance Optimization on Ascend, Biren, and Cambricon
21 HoursAscend, Biren, and Cambricon are prominent AI hardware platforms in China, each providing specialized acceleration and profiling tools designed for large-scale AI workloads.
This instructor-led, live training (available online or on-site) is tailored for advanced AI infrastructure and performance engineers who aim to optimize model inference and training workflows across various Chinese AI chip platforms.
By the end of this training, participants will be able to:
- Evaluate models on Ascend, Biren, and Cambricon platforms.
- Pinpoint system bottlenecks and inefficiencies in memory and computation.
- Implement optimizations at the graph level, kernel level, and operator level.
- Adjust deployment pipelines to enhance throughput and reduce latency.
Format of the Course
- Interactive lecture and discussion sessions.
- Practical use of profiling and optimization tools on each platform.
- Guided exercises focused on real-world tuning scenarios.
Course Customization Options
- To request a customized training program based on your specific performance environment or model type, please contact us to arrange.