Samples for CUDA Developers which demonstrates features in CUDA Toolkit
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Rob Armstrong 14b1bfdcc4 Replace README references to "CUDA Toolkit 12.5" with general "CUDA Toolkit" 2 months ago
..
.vscode add and update samples for CUDA 11.6 4 years ago
data add and update samples for CUDA 11.6 4 years ago
CMakeLists.txt Update all sample CMakeLists.txt to include ENABLE_CUDA_DEBUG flag to enable cuda-gdb 4 months ago
README.md Replace README references to "CUDA Toolkit 12.5" with general "CUDA Toolkit" 2 months ago
bgr_resize.cu Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
nv12_resize.cu Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
nv12_to_bgr_planar.cu Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
resize_convert.h Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
resize_convert_main.cpp Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
utils.cu Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
utils.h Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago

README.md

NV12toBGRandResize - NV12toBGRandResize

Description

This code shows two ways to convert and resize NV12 frames to BGR 3 planars frames using CUDA in batch. Way-1, Convert NV12 Input to BGR @ Input Resolution-1, then Resize to Resolution#2. Way-2, resize NV12 Input to Resolution#2 then convert it to BGR Output. NVIDIA HW Decoder, both dGPU and Tegra, normally outputs NV12 pitch format frames. For the inference using TensorRT, the input frame needs to be BGR planar format with possibly different size. So, conversion and resizing from NV12 to BGR planar is usually required for the inference following decoding. This CUDA code provides a reference implementation for conversion and resizing.

Key Concepts

Graphics Interop, Image Processing, Video Processing

Supported SM Architectures

SM 5.0 SM 5.2 SM 5.3 SM 6.0 SM 6.1 SM 7.0 SM 7.2 SM 7.5 SM 8.0 SM 8.6 SM 8.7 SM 8.9 SM 9.0

Supported OSes

Linux, Windows

Supported CPU Architecture

x86_64, aarch64

CUDA APIs involved

CUDA Runtime API

cudaMemcpy, cudaStreamDestroy, cudaMalloc, cudaFree, cudaMallocManaged, cudaStreamAttachMemAsync, cudaDestroyTextureObject, cudaEventSynchronize, cudaDeviceSynchronize, cudaCreateTextureObject, cudaEventRecord, cudaEventDestroy, cudaEventElapsedTime, cudaStreamCreate, cudaEventCreate

Prerequisites

Download and install the CUDA Toolkit for your corresponding platform.

References (for more details)