BlogsNVIDIAModern C++ Runtime for CUDA

Modern C++ Runtime for CUDA

Modern C++ Runtime for CUDA

3
posts
2026

This feature thread tracks the evolution of modern C++ abstractions for fundamental CUDA programming model concepts, aiming to make CUDA C++ development safer and more convenient. Initial efforts focused on providing idiomatic C++ APIs for stream management, memory allocation, and kernel launches, leveraging modern C++ features and explicit dependency management. Subsequent developments have introduced the CCCL runtime, offering a collection of headers like `<cuda/stream>`, `<cuda/buffer>`, and now CUDA Tile C++ for declarative, tile-based GPU kernel programming within C++ codebases, abstracting low-level parallelism, memory movement, and hardware features across NVIDIA architectures.

2026

CCCL Runtime: A Modern C++ Runtime for CUDA | NVIDIA Technical Blog

6/22/2026

Introduces the CCCL runtime, a new set of idiomatic C++ APIs for CUDA 13.2 that implement core CUDA functionality such as stream management, memory allocation, and kernel launches. It contrasts with the traditional CUDA runtime API by using dedicated types (e.g., `cuda::device_ref`, `cuda::stream`) instead of raw identifiers, making dependencies explicit and improving composability. The CCCL runtime also introduces owning types and non-owning `_ref` types (e.g., `cuda::stream` and `cuda::stream_ref`) to manage resource lifetimes and facilitate interoperability with existing code. The post provides a `vectorAdd` example demonstrating these new APIs, highlighting the benefits of explicit device association for streams and the use of memory pools for allocation.

Develop High-Performance GPU Kernels in C++ with NVIDIA CUDA Tile | NVIDIA Technical Blog

5/26/2026

Introduces CUDA Tile C++, enabling developers to write tile-based GPU kernels directly in C++ within existing codebases. This abstracts low-level parallelism, memory movement, and hardware features, allowing for more declarative kernel expressions compared to the SIMT model. It details vector addition and matrix multiplication examples, highlighting the use of tensor spans, partition views, and tile operations. The post also covers performance considerations like `__restrict__` and alignment, and mentions profiling with Nsight Compute.

NVIDIA CUDA 13.3 Enhances GPU Development with Tile Programming in C++, Compiler Autotuning, and Python Updates | NVIDIA Technical Blog

5/26/2026

CUDA 13.3 introduces CUDA Tile programming in C++ for high-level, tile-based kernel development, automating parallelism and memory management for portability. CUDA Python 1.0 is released, stabilizing the ecosystem with features like green contexts (partitioning SMs for latency-sensitive kernels), process checkpointing (snapshotting and restoring CUDA state), and inter-process sharing (IPC) for GPU memory. CCCL Python 1.0 adds host-callable parallel algorithms and supports Python lambdas as operators. A new Numba CUDA MLIR backend is introduced, offering a faster JIT compile experience and improved diagnostics for Python GPU programming.