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 the 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 the CUDA API to query device information, allocate and deallocate device memory, copy data between host and device, launch kernels, and synchronize threads.
- Use the 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 the 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 the CUDA API in the host program
- Using the CUDA API to query device information and capabilities
- Using the CUDA API to allocate and deallocate device memory
- Using the CUDA API to copy data between host and device
- Using the CUDA API to launch kernels and synchronize threads
- Using the 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 the 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 the 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
Provisional Upcoming Courses (Require 5+ participants)
Related Courses
Developing AI Applications with Huawei Ascend and CANN
21 HoursHuawei Ascend is a family of AI processors designed for high-performance inference and training.
This instructor-led, live training (online or onsite) is aimed at intermediate-level AI engineers and data scientists who wish 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.
- Develop AI applications using MindSpore and CloudMatrix workflows.
- Optimise performance on Ascend NPUs using custom operators and tiling.
- Deploy models to edge or cloud environments.
Format of the Course
- Interactive lecture and discussion.
- Hands-on use of Huawei Ascend and CANN toolkit in sample applications.
- Guided exercises focused on model building, training, and deployment.
Course Customisation Options
- To request a customised training for this course based on 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) serves as Huawei’s AI compute stack, designed for the deployment and optimisation of AI models on Ascend AI processors.
This instructor-led, live training (delivered online or onsite) is tailored for intermediate-level AI developers and engineers who want to efficiently deploy trained AI models onto Huawei Ascend hardware using the CANN toolkit and tools such as MindSpore, TensorFlow, or PyTorch.
Upon completing this training, participants will be able to:
- Grasp the CANN architecture and its significance within the AI deployment pipeline.
- Convert and adapt models from popular frameworks into Ascend-compatible formats.
- Utilise tools such as ATC, OM model conversion, and MindSpore for edge and cloud inference.
- Diagnose deployment challenges and optimise performance on Ascend hardware.
Course Format
- Interactive lectures and demonstrations.
- Hands-on lab exercises using CANN tools alongside Ascend simulators or devices.
- Practical deployment scenarios grounded in real-world AI models.
Course Customisation Options
- To request customised training for this course, please get in touch with us to arrange.
AI Inference and Deployment with CloudMatrix
21 HoursCloudMatrix is Huawei’s unified AI development and deployment platform designed to support scalable, production-grade inference pipelines.
This instructor-led, live training (online or onsite) is aimed at beginner-level to intermediate-level AI professionals who wish to deploy and monitor AI models using the CloudMatrix platform with CANN and MindSpore integration.
By the end of this training, participants will be able to:
- Use CloudMatrix for model packaging, deployment, and serving.
- Convert and optimize models for Ascend chipsets.
- Set up pipelines for real-time and batch inference tasks.
- Monitor deployments and tune performance in production settings.
Format of the Course
- Interactive lecture and discussion.
- Hands-on use of CloudMatrix with real deployment scenarios.
- Guided exercises focused on conversion, optimization, and scaling.
Course Customization Options
- To request a customized training for this course based on your 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 dedicated AI chips engineered for high-performance inference and training in both edge and data centre environments.
This instructor-led live training, available online or onsite, is designed for intermediate-level developers looking to build and deploy AI models on Cambricon MLU hardware using the BANGPy framework and Neuware SDK.
Upon completion of this training, participants will be able to:
- Set up and configure the BANGPy and Neuware development environments.
- Develop and optimise Python- and C++-based models specifically for Cambricon MLUs.
- Deploy models to edge and data centre devices running the Neuware runtime.
- Integrate machine learning workflows with MLU-specific acceleration features.
Course Format
- Interactive lectures and discussions.
- Hands-on development and deployment using BANGPy and Neuware.
- Guided exercises focusing on optimisation, integration, and testing.
Customisation Options
- To request tailored training 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) serves as Huawei’s AI computing toolkit, designed to compile, optimise, and deploy AI models across Ascend AI processors.
This instructor-led live training, available both online and onsite, targets beginner-level AI developers keen to grasp how CANN integrates into the model lifecycle—from training to deployment—and how it interfaces with frameworks such as MindSpore, TensorFlow, and PyTorch.
Upon completion of this training, participants will be able to:
- Grasp the purpose and architecture of the CANN toolkit.
- Configure a development environment utilising CANN and MindSpore.
- Convert and deploy a simple AI model onto Ascend hardware.
- Build foundational knowledge for future CANN optimisation or integration initiatives.
Course Format
- Interactive lectures and discussions.
- Practical labs focused on simple model deployment.
- Step-by-step walkthroughs of the CANN toolchain and integration points.
Customisation Options
- To arrange a tailored training session for this course, please get in touch with us.
CANN for Edge AI Deployment
14 HoursHuawei's Ascend CANN toolkit empowers robust AI inference on edge devices like the Ascend 310. It supplies crucial tools for compiling, optimising, and deploying models in environments where compute power and memory are limited.
This instructor-led live training (available online or onsite) is designed for intermediate-level AI developers and integrators keen to deploy and optimise 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 the Ascend 310 using CANN tools.
- Construct lightweight inference pipelines using MindSpore Lite and AscendCL.
- Optimise model performance for constrained compute and memory environments.
- Deploy and monitor AI applications in real-world edge scenarios.
Course Format
- Interactive lectures and demonstrations.
- Hands-on lab exercises featuring edge-specific models and scenarios.
- Live deployment examples on virtual or physical edge hardware.
Course Customisation Options
- To request a customised training 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 optimised for Ascend hardware.
This instructor-led, live training session (available online or onsite) is designed for beginner to intermediate-level technical professionals who wish to understand how the CANN and MindSpore components collaborate to support AI lifecycle management and infrastructure decision-making.
By the conclusion of this training, participants will be able to:
- Comprehend the layered architecture of Huawei’s AI compute stack.
- Identify how CANN facilitates model optimisation and hardware-level deployment.
- Evaluate the MindSpore framework and its 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 Customisation Options
- To request a customised training programme for this course, please contact us to make arrangements.
Optimizing Neural Network Performance with CANN SDK
14 HoursThe CANN SDK (Compute Architecture for Neural Networks) serves as Huawei’s foundational AI compute platform, empowering developers to fine-tune and optimise the performance of neural networks deployed on Ascend AI processors.
This instructor-led live training (available online or onsite) is designed for advanced AI developers and system engineers looking to enhance inference performance using CANN’s advanced toolset, including the Graph Engine, TIK, and custom operator development capabilities.
Upon completion of this training, participants will be able to:
- Gain a clear understanding of CANN’s runtime architecture and performance lifecycle.
- Utilise profiling tools and the Graph Engine for performance analysis and optimisation.
- Create and optimise custom operators using TIK and TVM.
- Address memory bottlenecks and enhance model throughput.
Format of the Course
- Interactive lectures and discussions.
- Hands-on labs featuring real-time profiling and operator tuning.
- Optimisation exercises using edge-case deployment examples.
Course Customization Options
- To request a tailored training session for this course, please contact us to make arrangements.
CANN SDK for Computer Vision and NLP Pipelines
14 HoursThe CANN SDK (Compute Architecture for Neural Networks) equips developers with powerful 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) is designed for intermediate-level AI practitioners looking to build, deploy, and optimize vision and language models using the CANN SDK for production-grade use cases.
Upon completion of this training, participants will be able to:
- Deploy and optimize CV and NLP models leveraging CANN and AscendCL.
- Utilise CANN tools to convert models and seamlessly integrate them into live pipelines.
- Optimise inference performance for tasks such as detection, classification, and sentiment analysis.
- Construct real-time CV/NLP pipelines tailored for edge or cloud-based deployment scenarios.
Format of the Course
- Interactive lecture and demonstration.
- Hands-on lab sessions focused on model deployment and performance profiling.
- Live pipeline design incorporating real-world CV and NLP use cases.
Course Customization Options
- To request a customized training session for this course, please contact us to arrange.
Building Custom AI Operators with CANN TIK and TVM
14 HoursLeveraging CANN TIK (Tensor Instruction Kernel) alongside Apache TVM allows for sophisticated optimisation and customisation of AI model operators tailored to Huawei Ascend hardware.
This instructor-led, live training session (available online or onsite) is designed for advanced system developers looking to create, deploy, and fine-tune custom operators for AI models using CANN's TIK programming model and TVM compiler integration.
Upon completion of this training, participants will be equipped to:
- Write and test custom AI operators utilizing the TIK DSL for Ascend processors.
- Integrate bespoke operators into the CANN runtime and execution graph.
- Employ TVM for operator scheduling, auto-tuning, and benchmarking.
- Debug and optimise instruction-level performance for bespoke computation patterns.
Course Format
- Interactive lectures and live demonstrations.
- Practical coding exercises for operators using TIK and TVM pipelines.
- Testing and tuning on Ascend hardware or simulators.
Customisation Options
- To request a tailored training version of this course, please contact us to make arrangements.
Migrating CUDA Applications to Chinese GPU Architectures
21 HoursIndigenous GPU architectures in China, including Huawei Ascend, Biren, and Cambricon MLUs, provide viable alternatives to CUDA, specifically designed for the domestic artificial intelligence and high-performance computing (HPC) sectors.
This instructor-led, live training session (available online or onsite) targets advanced GPU developers and infrastructure specialists seeking to migrate and optimise existing CUDA applications for deployment on Chinese hardware platforms.
Upon completion of this training, participants will be capable of:
- Evaluating the compatibility of current CUDA workloads with domestic chip alternatives.
- Translating CUDA codebases into Huawei CANN, Biren SDK, and Cambricon BANGPy environments.
- Comparing performance metrics and identifying key areas for optimisation across different platforms.
- Navigating practical challenges associated with cross-architecture support and deployment.
Course Delivery Format
- Interactive lectures and discussions.
- Practical labs involving code translation and performance benchmarking.
- Guided exercises focusing on multi-GPU adaptation strategies.
Customisation Options
- To arrange customised training for this course tailored to your specific platform or CUDA project, please contact us.
Performance Optimization on Ascend, Biren, and Cambricon
21 HoursAscend, Biren, and Cambricon are prominent AI hardware platforms in China, each providing distinct acceleration and profiling tools for production-scale AI workloads.
This instructor-led, live training (available online or onsite) is designed for advanced-level AI infrastructure and performance engineers who seek to optimise model inference and training workflows across multiple Chinese AI chip platforms.
By the conclusion of this training, participants will be able to:
- Benchmark models on Ascend, Biren, and Cambricon platforms.
- Identify system bottlenecks and memory/compute inefficiencies.
- Apply graph-level, kernel-level, and operator-level optimisations.
- Tune deployment pipelines to enhance throughput and reduce latency.
Course Format
- Interactive lectures and discussions.
- Practical application of profiling and optimisation tools on each platform.
- Guided exercises focused on real-world tuning scenarios.
Course Customisation Options
- To request a bespoke training session tailored to your performance environment or model type, please contact us to arrange.