I'm working with pressure-velocity coupled systems. It means that instead of solving 4 different linear systems in segregated approach (1 for pressure and 3 for Ux, Uy, Uz), we can solve only one coupled system. Assuming simple 3D rectangular mesh resulting matrix appears to be 7-diagonal with each element is a block 4x4 of arrow form \begin{pmatrix} a_{11} & 0 & 0 & a_{14} \\ 0 & a_{22} & 0 & a_{24} \\ 0 & 0 & a_{33} & a_{34} \\ a_{41} & a_{42} & a_{43} & a_{44} \end{pmatrix}
I would like to make efficient GPU-based BiCGStab solver for it, but it seems, that I have problem with preconditioning. On CPU BiCGStab + ILU or AMG works just fine. But on GPU, I can't use ILU family, because they are not suitable. I've tried AINV preconditioner, but it's either too slow and big or not robust enough. Diagonal preconditioner isn't effective at all. Now I'm thinking of polynomial, though I expect it to have similar problems as AINV.
Are there any other options that could possibly work with my approach, or the whole idea of GPU BiCGStab is a dead end in the first place?