AMD GPU Programming Training Course
ROCm is an open-source platform designed for GPU programming that supports AMD GPUs while also offering compatibility with CUDA and OpenCL. ROCm provides developers with direct access to hardware details, granting complete control over the parallelization process. However, this approach demands a solid understanding of device architecture, memory models, execution models, and optimization techniques.
HIP serves as a C++ runtime API and kernel language, enabling the creation of portable code that can operate on both AMD and NVIDIA GPUs. By providing a lightweight abstraction layer over native GPU APIs like ROCm and CUDA, HIP allows developers to utilize existing GPU libraries and tools effectively.
This instructor-led, live training (available online or onsite) is designed for beginner to intermediate-level developers who want to leverage ROCm and HIP to program AMD GPUs and harness their parallel processing capabilities.
By the end of this training, participants will be able to:
- Configure a development environment that includes the ROCm platform, an AMD GPU, and Visual Studio Code.
- Develop a basic ROCm program that executes 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.
- Employ the HIP language to write kernels that execute on the GPU and manipulate data.
- Apply HIP built-in functions, variables, and libraries to perform common tasks and operations.
- Optimize data transfers and memory accesses by leveraging ROCm and HIP memory spaces, including global, shared, constant, and local memory.
- Control the threads, blocks, and grids that define parallelism using ROCm and HIP execution models.
- Debug and test ROCm and HIP programs using tools such as the ROCm Debugger and ROCm Profiler.
- Enhance the performance of ROCm and HIP programs through techniques such as coalescing, caching, prefetching, and profiling.
Course Format
- Interactive lectures and discussions.
- Extensive exercises and practical sessions.
- Hands-on implementation within a live laboratory environment.
Course Customization Options
- To request customized training for this course, please contact us to make arrangements.
Course Outline
Introduction
- What is ROCm?
- What is HIP?
- Comparison: 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 the ROCm API in the host program
- Using the ROCm API to query device information and capabilities
- Using the ROCm API to allocate and deallocate device memory
- Using the ROCm API to copy data between host and device
- Using the ROCm API to launch kernels and synchronize threads
- Using the ROCm API to handle errors and exceptions
HIP Language
- Understanding the role of the HIP language in the device program
- Using the 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 models 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 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 common errors and bugs in ROCm and HIP programs
- Using the Visual Studio Code debugger to inspect variables, breakpoints, call stacks, etc.
- 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
- Understanding 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 tools to measure and improve execution time and resource utilization
Summary and Next Steps
Requirements
- A solid understanding of C/C++ programming and parallel computing concepts.
- Basic knowledge of computer architecture and memory hierarchy.
- Experience using command-line tools and code editors.
Target Audience
- Developers looking to learn how to use ROCm and HIP to program AMD GPUs and exploit their parallelism.
- Developers aiming to write high-performance, scalable code that can run across various AMD devices.
- Programmers interested in exploring the low-level aspects of GPU programming and optimizing code performance.
Need help picking the right course?
southafrica@nobleprog.co.za or +27 (0)10 005 5793
AMD GPU Programming Training Course - Enquiry
Related Courses
Developing AI Applications with Huawei Ascend and CANN
21 HoursHuawei Ascend offers a family of AI processors engineered for high-performance inference and training tasks.
This instructor-led, live training session, available either online or onsite, is designed for intermediate-level AI engineers and data scientists aiming to develop and optimize neural network models using Huawei’s Ascend platform alongside the CANN toolkit.
Upon completing this training, participants will be equipped to:
- Set up and configure the CANN development environment.
- Create AI applications leveraging MindSpore and CloudMatrix workflows.
- Enhance performance on Ascend NPUs through the use of custom operators and tiling techniques.
- Deploy models into edge or cloud environments.
Course Format
- Interactive lectures coupled with group discussions.
- Practical application of Huawei Ascend and the CANN toolkit within sample applications.
- Guided exercises centered on model construction, training, and deployment.
Course Customization Options
- For customized training tailored to your specific infrastructure or datasets, please reach out to us to arrange a session.
Deploying AI Models with CANN and Ascend AI Processors
14 HoursCANN (Compute Architecture for Neural Networks) serves as Huawei's comprehensive AI compute stack designed to facilitate the deployment and optimization of AI models on Ascend AI processors.
This instructor-led training session, available either online or onsite, is tailored for intermediate-level AI developers and engineers. Participants will learn how to efficiently deploy trained AI models onto Huawei Ascend hardware by utilizing the CANN toolkit alongside established frameworks such as MindSpore, TensorFlow, or PyTorch.
Upon completing this training, participants will gain the ability to:
- Grasp the CANN architecture and its critical function within the AI deployment pipeline.
- Convert and adapt models from widely used frameworks into formats compatible with Ascend processors.
- Utilize utilities such as ATC, OM model conversion, and MindSpore for both edge and cloud-based inference tasks.
- Identify and resolve deployment challenges while optimizing performance on Ascend hardware.
Course Format
- Interactive lectures paired with live demonstrations.
- Practical laboratory exercises involving CANN tools and Ascend simulators or physical devices.
- Real-world deployment scenarios derived from actual AI models.
Customization Options
- For requests regarding customized training for this course, please reach out to us for arrangements.
AI Inference and Deployment with CloudMatrix
21 HoursCloudMatrix serves as Huawei's comprehensive AI development and deployment platform, engineered to facilitate scalable, production-ready inference pipelines.
This live training, led by an instructor (available online or on-site), targets beginner to intermediate AI professionals aiming to deploy and monitor AI models using the CloudMatrix platform, leveraging its integration with CANN and MindSpore.
Upon completion of this training, participants will be equipped to:
- Utilize CloudMatrix for model packaging, deployment, and serving.
- Convert and optimize models specifically for Ascend chipsets.
- Establish pipelines for both real-time and batch inference tasks.
- Monitor deployments and fine-tune performance within production environments.
Course Format
- Interactive lectures and discussions.
- Practical application of CloudMatrix through real-world deployment scenarios.
- Guided exercises centered on conversion, optimization, and scaling.
Customization Options
- For customized training tailored to your specific AI infrastructure or cloud environment, 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 with support for large-scale training and inference.
This instructor-led, live training (online or onsite) is aimed at intermediate-level to advanced-level developers who wish 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 Biren GPU architecture and memory hierarchy.
- Set up the development environment and use 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 for optimized inference and training in both edge and data center environments.
This instructor-led live training, available online or on-site, targets intermediate developers looking to build and deploy AI models using the BANGPy framework and Neuware SDK on Cambricon MLU hardware.
Upon completing this training, participants will be able to:
- Set up and configure the development environments for BANGPy and Neuware.
- 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 capabilities.
Course Format
- Interactive lectures and discussions.
- Hands-on practice with BANGPy and Neuware for development and deployment.
- Guided exercises focusing on optimization, integration, and testing.
Customization Options
- For customized training tailored to your specific Cambricon device model or use case, please contact us to arrange a session.
Introduction to CANN for AI Framework Developers
7 HoursCANN (Compute Architecture for Neural Networks) serves as Huawei's AI computing toolkit, designed to compile, optimize, and deploy AI models on Ascend AI processors.
This instructor-led live training, available either online or onsite, is tailored for beginner-level AI developers. The course aims to help participants understand how CANN integrates into the model lifecycle, from training through to deployment, and how it interacts with frameworks such as MindSpore, TensorFlow, and PyTorch.
Upon completion of this training, participants will be capable of:
- Comprehending the purpose and architectural structure of the CANN toolkit.
- Configuring a development environment utilizing both CANN and MindSpore.
- Converting and deploying a basic AI model to Ascend hardware.
- Acquiring foundational knowledge to support future CANN optimization or integration initiatives.
Course Format
- Interactive lectures and discussions.
- Practical labs focused on simple model deployment.
- Step-by-step guidance through the CANN toolchain and integration points.
Customization Options
- To request customized training for this course, please contact us to make arrangements.
CANN for Edge AI Deployment
14 HoursHuawei's Ascend CANN toolkit facilitates robust AI inference on edge devices like the Ascend 310. It provides critical tools for compiling, optimizing, and deploying models in environments where computing power and memory are limited.
This instructor-led, live training (available online or onsite) is designed for intermediate-level AI developers and integrators who aim to deploy and optimize models on Ascend edge devices using the CANN toolchain.
Upon completing this training, participants will be able to:
- Prepare and convert AI models for the Ascend 310 using CANN tools.
- Construct lightweight inference pipelines using MindSpore Lite and AscendCL.
- Enhance model performance in environments with constrained compute and memory.
- Deploy and monitor AI applications in real-world edge scenarios.
Course Format
- Interactive lectures and demonstrations.
- Practical lab exercises featuring edge-specific models and scenarios.
- Live deployment examples on virtual or physical edge hardware.
Customization Options
- To request customized training for this course, please contact us to arrange it.
Understanding Huawei’s AI Compute Stack: From CANN to MindSpore
14 HoursHuawei’s AI stack spans from the foundational CANN SDK to the advanced MindSpore framework, providing a seamlessly integrated environment for developing and deploying AI solutions optimized for Ascend hardware.
This instructor-led live training, available online or onsite, is designed for technical professionals at beginner to intermediate levels who aim to comprehend how CANN and MindSpore collaborate to manage the AI lifecycle and inform infrastructure strategies.
Upon completing this training, participants will be equipped to:
- Comprehend the layered architecture of Huawei’s AI compute stack.
- Recognize how CANN facilitates model optimization and hardware-level deployment.
- Assess the MindSpore framework and its toolchain against industry alternatives.
- Position Huawei's AI stack within enterprise or cloud/on-premises environments.
Course Format
- Interactive lectures and discussions.
- Live system demonstrations and case-based walkthroughs.
- Optional guided labs exploring the model flow from MindSpore to CANN.
Course Customization Options
- For customized training requests, please get in touch to arrange your session.
Optimizing Neural Network Performance with CANN SDK
14 HoursCANN SDK (Compute Architecture for Neural Networks) serves as Huawei’s foundational AI compute layer, enabling developers to fine-tune and maximize the performance of neural networks deployed on Ascend AI processors.
This instructor-led live training, available either online or onsite, targets advanced AI developers and system engineers looking to boost inference performance through CANN’s sophisticated toolset. Key areas of focus include the Graph Engine, TIK, and custom operator development.
\rUpon completing this training, participants will be equipped to:
- Grasp CANN's runtime architecture and its performance lifecycle.
- Utilize profiling tools and the Graph Engine for thorough performance analysis and optimization.
- Develop and optimize custom operators using TIK and TVM.
- Address memory bottlenecks and enhance model throughput.
Course Format
- Interactive lectures and discussions.
- Practical labs featuring real-time profiling and operator tuning.
- Optimization exercises utilizing edge-case deployment scenarios.
Customization Options
- For personalized training on this course, please reach out to us to make arrangements.
CANN SDK for Computer Vision and NLP Pipelines
14 HoursThe CANN SDK (Compute Architecture for Neural Networks) offers robust deployment and optimization tools for real-time AI applications in computer vision and NLP, particularly on Huawei Ascend hardware.
This instructor-led live training (available online or onsite) targets intermediate-level AI practitioners looking to build, deploy, and optimize vision and language models using the CANN SDK for production environments.
Upon completing this training, participants will be able to:
- Deploy and optimize CV and NLP models using CANN and AscendCL.
- Leverage CANN tools to convert models and integrate them into live pipelines.
- Enhance inference performance for tasks such as detection, classification, and sentiment analysis.
- Develop real-time CV/NLP pipelines for both edge and cloud-based deployment scenarios.
Course Format
- Interactive lectures and demonstrations.
- Hands-on lab sessions covering model deployment and performance profiling.
- Live pipeline design using real-world CV and NLP use cases.
Customization Options
- To request customized training for this course, please contact us to make arrangements.
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 onsite) targets advanced-level system developers looking to build, deploy, and tune custom operators for AI models by leveraging CANN’s TIK programming model and TVM compiler integration.
Upon completing 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.
Course Format
- Interactive lectures and demonstrations.
- Hands-on coding exercises involving operators via TIK and TVM pipelines.
- Testing and tuning performed on Ascend hardware or simulators.
Customization Options
- To request tailored training for this course, please contact us to make arrangements.
Migrating CUDA Applications to Chinese GPU Architectures
21 HoursChinese GPU architectures like Huawei Ascend, Biren, and Cambricon MLUs provide CUDA alternatives designed for local AI and high-performance computing markets.
This live training, led by an instructor (available online or onsite), is designed for advanced GPU programmers and infrastructure specialists looking to migrate and optimize their existing CUDA applications for deployment on Chinese hardware platforms.
Upon completing this training, participants will be able to:
- Assess the compatibility of current CUDA workloads with Chinese chip alternatives.
- Translate CUDA codebases into Huawei CANN, Biren SDK, and Cambricon BANGPy environments.
- Compare performance metrics and identify optimization opportunities across different platforms.
- Resolve practical challenges related to cross-architecture support and deployment.
Course Format
- Interactive lectures and discussions.
- Practical labs for code translation and performance benchmarking.
- Guided exercises focusing on multi-GPU adaptation strategies.
Course Customization Options
- To arrange customized training for this course tailored to your specific platform or CUDA project, please get in touch.
Performance Optimization on Ascend, Biren, and Cambricon
21 HoursAscend, Biren, and Cambricon represent some of the foremost AI hardware solutions in China, providing distinct acceleration capabilities and profiling utilities tailored for large-scale AI production environments.
This live, instructor-led training session, available both online and onsite, is designed for advanced AI infrastructure and performance engineers seeking to enhance model inference and training workflows across various Chinese AI chip ecosystems.
Upon completion of this course, participants will gain the ability to:
- Conduct benchmarks for models on Ascend, Biren, and Cambricon platforms.
- Pinpoint system bottlenecks and identify inefficiencies in memory and computing resources.
- Implement optimizations at the graph, kernel, and operator levels.
- Refine deployment pipelines to achieve better throughput and reduced latency.
Course Format
- Interactive lectures combined with discussions.
- Practical application of profiling and optimization tools across each respective platform.
- Guided exercises centered on real-world tuning scenarios.
Customization Opportunities
- For customized training aligned with your specific performance environment or model architecture, please reach out to us to make arrangements.