CUDA
This category describes the ImageDev algorithms GPU-accelerated with the CUDA Toolkit.
- Geometry And Matching: This category provides algorithms for performing geometrical transformations and detecting predefined patterns.
- Image Filtering: This category gathers filtering algorithms (for example, for denoising an image or enhancing its contrast).
- Mathematical Morphology: This category introduces a theory for the analysis of geometrical structures.
Overview
Most ImageDev algorithms are CPU parallelized. Taking advantage of these accelerations is transparent for the user and automatically managed by their default implementation.In addition to CPU parallelization, ImageDev also offers a collection of algorithms that are optimized for GPU computing. These algorithms are built using the NVIDIA® CUDA® toolkit and are provided as separate implementations, prefixed by the Cuda keyword. The main motivations for having created new algorithms rather than automatically invoking the GPU implementations are:
- Depending on the available hardware and the specific parameters chosen, the CPU implementation of an algorithm may actually be faster than the GPU implementation.
- Some parameters are proposed to perform out-of-core processing when the input data doesn't fit in GPU memory.
Prerequisites
To execute any GPU-accelerated ImageDev algorithm, you need:- An NVIDIA GPU, supporting CUDA Compute Capability 3.5 or higher is required. Drivers should be up to date. Compatible GPUs are listed here.
- A CUDA 12 version installed and the path to its binary files defined in the system path. The CUDA download page is here.
Tiling
If the image to be processed is large, ImageDev can process it tile by tile to reduce the GPU memory requirements. The tiling process is defined by a tiling mode and a size parameter. An overlap is deduced from the selected parameters and automatically set. For example, when applying an erosion of size 10 with tiling mode enabled, tiles are extracted with an overlap of 10 pixels.The tiling step can be skipped by setting the tiling mode to NONE.