Jetson Inference
DNN Vision Library

CUDA utilities and image processing kernels. More...


 Color Mapping
 Defines various colormaps and color mapping functions.
 Color Conversion
 Colorspace conversion functions for various YUV formats, RGB, BGR, Bayer, and grayscale.
 Crop an image to the specified region of interest (ROI).
 Drawing basic 2D shapes using CUDA.
 Error Checking
 Error checking and logging macros.
 TTF font rasterization and image overlay rendering using CUDA.
 Memory Management
 Allocation of CUDA mapped zero-copy memory.
 Normalize the pixel intensities of an image between two ranges.
 Overlay images and vector shapes onto other images.
 Pixel Filtering
 CUDA device functions for sampling pixels with bilinear filtering.
 Point Cloud
 3D point cloud processing and visualization.
 Rescale an image to a different resolution.
 Various image warps and matrix transforms.


__device__ __host__ int iDivUp (int a, int b)
 If a / b has a remainder, round up. More...

Detailed Description

CUDA utilities and image processing kernels.

Function Documentation

◆ iDivUp()

__device__ __host__ int iDivUp ( int  a,
int  b 

If a / b has a remainder, round up.

This function is commonly using when launching CUDA kernels, to compute a grid size inclusive of the entire dataset if it's dimensions aren't evenly divisible by the block size.

For example:

const dim3 blockDim(8,8); const dim3 gridDim(iDivUp(imgWidth,blockDim.x), iDivUp(imgHeight,blockDim.y));

Then inside the CUDA kernel, there is typically a check that thread index is in-bounds.

Without the use of iDivUp(), if the data dimensions weren't evenly divisible by the block size, parts of the data wouldn't be covered by the grid and not processed.