GPU Programming with CUDA Training Course
CUDA is an open standard for GPU programming that enables code to run on NVIDIA GPUs, which are widely used for high-performance computing, artificial intelligence (AI), gaming, and graphics. CUDA exposes the programmer to the hardware details and gives full control over the parallelization process. However, this also requires a good understanding of the device architecture, memory model, execution model, and optimization techniques.
This instructor-led, live training (online or onsite) is aimed at beginner-level to intermediate-level developers who wish to use CUDA to program NVIDIA GPUs and exploit their parallelism.
By the end of this training, participants will be able to:
- Set up a development environment that includes CUDA Toolkit, an NVIDIA GPU, and Visual Studio Code.
- Create a basic CUDA program that performs vector addition on the GPU and retrieves the results from the GPU memory.
- Use CUDA API to query device information, allocate and deallocate device memory, copy data between host and device, launch kernels, and synchronize threads.
- Use CUDA C/C++ language to write kernels that execute on the GPU and manipulate data.
- Use CUDA built-in functions, variables, and libraries to perform common tasks and operations.
- Use CUDA memory spaces, such as global, shared, constant, and local, to optimize data transfers and memory accesses.
- Use CUDA execution model to control the threads, blocks, and grids that define the parallelism.
- Debug and test CUDA programs using tools such as CUDA-GDB, CUDA-MEMCHECK, and NVIDIA Nsight.
- Optimize CUDA 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.
- 96% of clients satisfied
Course Outline
Introduction
- What is CUDA?
- CUDA vs OpenCL vs SYCL
- Overview of CUDA features and architecture
- Setting up the Development Environment
Getting Started
- Creating a new CUDA project using Visual Studio Code
- Exploring the project structure and files
- Compiling and running the program
- Displaying the output using printf and fprintf
CUDA API
- Understanding the role of CUDA API in the host program
- Using CUDA API to query device information and capabilities
- Using CUDA API to allocate and deallocate device memory
- Using CUDA API to copy data between host and device
- Using CUDA API to launch kernels and synchronize threads
- Using CUDA API to handle errors and exceptions
CUDA C/C++
- Understanding the role of CUDA C/C++ in the device program
- Using CUDA C/C++ to write kernels that execute on the GPU and manipulate data
- Using CUDA C/C++ data types, qualifiers, operators, and expressions
- Using CUDA C/C++ built-in functions, such as math, atomic, warp, etc.
- Using CUDA C/C++ built-in variables, such as threadIdx, blockIdx, blockDim, etc.
- Using CUDA C/C++ libraries, such as cuBLAS, cuFFT, cuRAND, etc.
CUDA Memory Model
- Understanding the difference between host and device memory models
- Using CUDA memory spaces, such as global, shared, constant, and local
- Using CUDA memory objects, such as pointers, arrays, textures, and surfaces
- Using CUDA memory access modes, such as read-only, write-only, read-write, etc.
- Using CUDA memory consistency model and synchronization mechanisms
CUDA Execution Model
- Understanding the difference between host and device execution models
- Using CUDA threads, blocks, and grids to define the parallelism
- Using CUDA thread functions, such as threadIdx, blockIdx, blockDim, etc.
- Using CUDA block functions, such as __syncthreads, __threadfence_block, etc.
- Using CUDA grid functions, such as gridDim, gridSync, cooperative groups, etc.
Debugging
- Understanding the common errors and bugs in CUDA programs
- Using Visual Studio Code debugger to inspect variables, breakpoints, call stack, etc.
- Using CUDA-GDB to debug CUDA programs on Linux
- Using CUDA-MEMCHECK to detect memory errors and leaks
- Using NVIDIA Nsight to debug and analyze CUDA programs on Windows
Optimization
- Understanding the factors that affect the performance of CUDA programs
- Using CUDA coalescing techniques to improve memory throughput
- Using CUDA caching and prefetching techniques to reduce memory latency
- Using CUDA shared memory and local memory techniques to optimize memory accesses and bandwidth
- Using CUDA 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 CUDA to program NVIDIA GPUs and exploit their parallelism
- Developers who wish to write high-performance and scalable code that can run on different CUDA devices
- Programmers who wish to explore the low-level aspects of GPU programming and optimize their code performance
Open Training Courses require 5+ participants.
GPU Programming with CUDA Training Course - Booking
GPU Programming with CUDA Training Course - Enquiry
GPU Programming with CUDA - Consultancy Enquiry
Upcoming Courses
Related Courses
Developing AI Applications with Huawei Ascend and CANN
21 HoursHuawei Ascend is a suite of AI processors engineered for high-performance training and inference tasks.
This instructor-led live training session (available online or on-site) targets intermediate-level data scientists and AI engineers interested in developing and optimizing neural network models using Huawei's CANN toolkit and Ascend platform.
Upon completion, participants will be capable of:
- Configuring and setting up the CANN development environment.
- Building AI applications utilizing CloudMatrix workflows and MindSpore.
- Enhancing performance on Ascend NPUs through tiling and custom operators.
- Deploying models to cloud or edge environments.
Course Format
- Interactive discussions and lectures.
- Practical application of Huawei Ascend and the CANN toolkit in sample projects.
- Guided exercises centered on deployment, training, and model construction.
Customization Options
- For tailored training aligned with your specific infrastructure or datasets, please reach out to arrange a session.
Deploying AI Models with CANN and Ascend AI Processors
14 HoursCANN (Compute Architecture for Neural Networks) serves as Huawei's AI compute infrastructure designed for deploying and enhancing AI models on Ascend AI processors.
This guided, live training session (available online or at your location) targets intermediate AI developers and engineers seeking to efficiently deploy trained models onto Huawei Ascend hardware utilizing the CANN toolkit alongside tools like MindSpore, TensorFlow, or PyTorch.
Upon completion of this training, participants will be equipped to:
- Grasp the CANN architecture and its function within the AI deployment workflow.
- Transform and adapt models from leading frameworks into Ascend-compatible formats.
- Leverage tools such as ATC, OM model conversion, and MindSpore for both edge and cloud inference.
- Identify deployment challenges and enhance performance on Ascend hardware.
Course Format
- Interactive lectures combined with practical demonstrations.
- Hands-on exercises using CANN tools with Ascend simulators or physical devices.
- Real-world deployment scenarios grounded in actual AI models.
Customization Options for the Course
- For customized training arrangements, please reach out to us to coordinate.
AI Inference and Deployment with CloudMatrix
21 HoursCloudMatrix is Huawei’s unified AI development and deployment platform engineered to support scalable, production-grade inference pipelines.
This instructor-led, live training (available online or onsite) is tailored for beginner to intermediate-level AI professionals aiming to deploy and monitor AI models using the CloudMatrix platform integrated with CANN and MindSpore.
Upon completing this training, participants will be able to:
- Utilize CloudMatrix for model packaging, deployment, and serving.
- Convert and optimize models for Ascend chipsets.
- Establish pipelines for both real-time and batch inference tasks.
- Monitor deployments and fine-tune performance in production environments.
Course Format
- Interactive lectures and discussions.
- Hands-on experience with CloudMatrix in real-world deployment scenarios.
- Guided exercises focusing on model conversion, optimization, and scaling.
Customization Options
- To request customized training for this course based on 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 computing and data center environments.
This instructor-led live training, available online or onsite, is targeted at intermediate-level developers looking to build and deploy AI models using the BANGPy framework and Neuware SDK on Cambricon MLU hardware.
Upon completion 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 ML workflows with MLU-specific acceleration features.
Course Format
- Interactive lectures and discussions.
- Hands-on development and deployment using BANGPy and Neuware.
- Guided exercises focused on optimization, integration, and testing.
Course Customization Options
- To request a customized training session for this course 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 both online and onsite, targets beginner-level AI developers looking 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:
- Grasp the purpose and architecture of the CANN toolkit.
- Set up a development environment using CANN and MindSpore.
- Convert and deploy a simple AI model to Ascend hardware.
- Acquire foundational knowledge to support future CANN optimization or integration projects.
Course Format
- Interactive lectures and discussions.
- Hands-on labs focused on simple model deployment.
- Step-by-step walkthroughs of 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. CANN offers the necessary tools to compile, optimize, and deploy models in environments where computational power and memory are limited.
This instructor-led, live training (available online or onsite) is designed for intermediate-level AI developers and integrators looking to deploy and optimize models on Ascend edge devices using the CANN toolchain.
Upon completion of this training, participants will be able to:
- Prepare and convert AI models for the Ascend 310 using CANN tools.
- Construct lightweight inference pipelines utilizing MindSpore Lite and AscendCL.
- Enhance model performance for scenarios with restricted compute and memory.
- Deploy and monitor AI applications in practical edge use cases.
Course Format
- Interactive lectures and demonstrations.
- Hands-on labs featuring edge-specific models and scenarios.
- Live deployment examples on virtual or physical edge hardware.
Course Customization Options
- To request 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, spanning from the low-level CANN SDK to the high-level MindSpore framework, provides a tightly integrated environment for AI development and deployment, specifically optimized for Ascend hardware.
This instructor-led, live training (available online or onsite) targets beginner to intermediate technical professionals seeking to comprehend how CANN and MindSpore components collaborate to manage the AI lifecycle and support infrastructure decisions.
Upon completion of this training, participants will be able 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 toolchain in comparison to 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 covering the model flow from MindSpore to CANN.
Course Customization Options
- To request customized training for this course, please contact us to arrange.
Optimizing Neural Network Performance with CANN SDK
14 HoursThe CANN SDK (Compute Architecture for Neural Networks) serves as Huawei’s foundational AI compute platform, enabling developers to refine and maximize the performance of neural networks deployed on Ascend AI processors.
This instructor-led live training, available both online and onsite, targets advanced AI developers and system engineers looking to boost inference performance through CANN’s sophisticated toolset, which includes the Graph Engine, TIK, and custom operator development capabilities.
Upon completion of this training, participants will be equipped to:
- Comprehend the runtime architecture and performance lifecycle of CANN.
- Utilize profiling tools and the Graph Engine for effective 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 based on edge-case deployment scenarios.
Customization Options for the Course
- For customized training arrangements, please reach out to us.
CANN SDK for Computer Vision and NLP Pipelines
14 HoursThe CANN SDK (Compute Architecture for Neural Networks) delivers robust deployment and optimization capabilities for real-time AI solutions in computer vision and natural language processing, particularly on Huawei Ascend hardware.
This instructor-led live training, available online or onsite, targets intermediate-level AI professionals looking to construct, deploy, and refine vision and language models using the CANN SDK for real-world production scenarios.
Upon completion of this training, participants will be equipped to:
- Deploy and optimize computer vision and NLP models utilizing CANN and AscendCL.
- Leverage CANN utilities to transform models and seamlessly integrate them into live processing pipelines.
- Enhance inference performance for applications such as detection, classification, and sentiment analysis.
- Construct real-time CV and NLP pipelines suitable for edge or cloud deployment environments.
Course Format
- Interactive lectures combined with live demonstrations.
- Practical laboratory sessions focused on model deployment and performance profiling.
- Designing live pipelines through real-world CV and NLP use cases.
Course Customization Options
- For personalized training arrangements, please contact us directly.
Building Custom AI Operators with CANN TIK and TVM
14 HoursCANN TIK (Tensor Instruction Kernel) and Apache TVM facilitate the advanced optimization and customization of AI model operators tailored for Huawei Ascend hardware.
This instructor-led, live training session (available online or on-site) targets advanced system developers looking to construct, deploy, and fine-tune custom operators for AI models using CANN’s TIK programming model alongside TVM compiler integration.
Upon completion of this training, participants will be able to:
- Develop and test custom AI operators utilizing the TIK DSL for Ascend processors.
- Seamlessly integrate custom operations into the CANN runtime and execution graph.
- Leverage TVM for operator scheduling, auto-tuning, and benchmarking.
- Debug and optimize instruction-level performance for custom computation patterns.
Course Format
- Interactive lectures combined with live demonstrations.
- Hands-on coding exercises for operators using TIK and TVM pipelines.
- Practical testing and tuning on Ascend hardware or simulators.
Course Customization Options
- To request a customized training version of this course, please reach out to us to arrange.
Migrating CUDA Applications to Chinese GPU Architectures
21 HoursChinese GPU architectures, including Huawei Ascend, Biren, and Cambricon MLUs, provide CUDA alternatives specifically designed for local AI and HPC markets.
This instructor-led live training (available online or onsite) targets advanced GPU programmers and infrastructure specialists aiming to migrate and optimize existing CUDA applications for deployment on Chinese hardware platforms.
By the end of this training, participants will be able to:
- Evaluate the compatibility of existing CUDA workloads with Chinese chip alternatives.
- Port CUDA codebases to Huawei CANN, Biren SDK, and Cambricon BANGPy environments.
- Compare performance and identify optimization points across platforms.
- Address practical challenges in cross-architecture support and deployment.
Format of the Course
- Interactive lecture and discussion.
- Hands-on code translation and performance comparison labs.
- Guided exercises focused on multi-GPU adaptation strategies.
Course Customization Options
- To request a customized training for this course based on your platform or CUDA project, please contact us to arrange.
Performance Optimization on Ascend, Biren, and Cambricon
21 HoursAscend, Biren, and Cambricon represent some of the foremost AI hardware ecosystems in China, each providing distinct acceleration capabilities and profiling utilities designed for large-scale AI production environments.
This instructor-led live training, available either online or onsite, targets experienced AI infrastructure and performance engineers who aim to enhance model inference and training workflows across various Chinese AI chip architectures.
Upon completing this training, participants will be equipped to:
- Execute benchmarks on Ascend, Biren, and Cambricon platforms.
- Diagnose system bottlenecks and identify inefficiencies in memory and compute resources.
- Implement optimizations at the graph, kernel, and operator levels.
- Refine deployment pipelines to significantly boost throughput and reduce latency.
Training Format
- Engaging lectures paired with interactive discussions.
- Practical application of profiling and optimization tools specific to each platform.
- Guided exercises centered on real-world tuning scenarios.
Customization Options
- For tailored training based on your specific performance environment or model architecture, please contact us to arrange a session.