Reviving this old discussion because it’s not clear what the community has settled on after all these years. What is the currently recommended way to perform imfilter on GPUs? Is there a package that provides GPU-accelerated array filtering with CUDA.jl?
For my use case at work with relatively small kernels, best success so far has been a fairly naive spatial implementation with KernelAbstractions.jl.
Thank you @GunnarFarneback. Do you have an example of a working implementation that you could share? I’d like to test the speedup for small kernels.
I created a vibe coded filtering package for a project of mine:
It’s a couple of iterations away from me being happy with how to structure the kernels and the general architecture. Because of that, I wouldn’t even have uploaded it to github at this stage, if it wasn’t for this discussion ![]()
But I guess it does some filtering operations on the GPU at decent speed, so maybe worth a look.
I will polish it in the coming months, so if you’re interested, please try it out and feel free to make PRs with claude code or so ![]()
Not at the moment since I’m on vacation but it was about as basic a loop over the kernel as you can make it.