Implementation for some of the image filters using CUDA. Currently color and convolutional filters are available.
NOTE: 2d functions have implementations, however benchmarking is only available for 1d kernels, kernels that have 1d grid and block sizes.
Config with CMake - ./config.sh
Compile - ./compile.sh
Execute for each file in img_in folder with block_size - ./exec.sh filterfunc block_size
Benchmark - ./bench.sh filterfunc [howmanytimes_to_run=1 new_file=filterfunc windowWidth=3]
Benchmarks are cached to be plotted later in $BENCHMARKFOLDER folder with default value of benchmarks.
plot.py takes input as series of file paths as command line arguments.
Plot benchmarks - ./python3 plot.py file_paths_separated_by_space.
Plot all available benchmarks - source bench.sh && ls $BENCHMARKFOLDER/* | xargs ./python3 plot.py