Are there efficient ways of performing data dependent filters like the median filters on GPUs? It seems like a lot of the benefits of using a GPU are parallelism, but when the operations are data dependent, perhaps some of that parallelism is harder to implement.
ncastaneda02
Essentially any branchless/simple branch structure program can be implemented on a GPU nowadays. Computer architects have worked very hard at hiding all of the memory-dependency details away from the programmer, so most filters, which may have data dependencies but can typically be scheduled optimally by the hardware, are well-suited for GPUs. You really only have to worry about complex control logic for GPUs nowadays because branch mispredicts are catastrophic for GPUs
BrianSantoso
What are the drawbacks of a filter being nonlinear / non-separable?
Are there efficient ways of performing data dependent filters like the median filters on GPUs? It seems like a lot of the benefits of using a GPU are parallelism, but when the operations are data dependent, perhaps some of that parallelism is harder to implement.
Essentially any branchless/simple branch structure program can be implemented on a GPU nowadays. Computer architects have worked very hard at hiding all of the memory-dependency details away from the programmer, so most filters, which may have data dependencies but can typically be scheduled optimally by the hardware, are well-suited for GPUs. You really only have to worry about complex control logic for GPUs nowadays because branch mispredicts are catastrophic for GPUs
What are the drawbacks of a filter being nonlinear / non-separable?