Menu

solver convergence, performance and gpu load

nsgro
2014-02-05
2014-02-05
  • nsgro

    nsgro - 2014-02-05

    Hi,

    I am attempting to use ViennaCL to speed up a large groundwater model I'm working on, but it's not working as well as I had hoped.

    The only solver that seems to converge is BiCGStab, and with that, the only working preconditioner
    is ilut. Using BiCGStab and ilut the model runs considerably slower than when I use the default solver that came with the model (which is also BiCGStab and ilu). I have tried blindly toying with the parameters for ilut, as well as using block ilu, but I can't seem to get better results.

    Also, using gpu-z to look at the gpu load, I only see about 10% usage. Is that normal?

    I'm testing this on a GTX 560 Ti.

    I probably didn't give enough information for anyone to help me, but any advice would be appreciated.

     
  • Karl Rupp

    Karl Rupp - 2014-02-05

    Hi,

    preconditioning is (and probably will always be) a bottleneck for GPU computing. The ILUT-preconditioner is computed on the host, so I assume that this is where most of the time is spent. ILU0 is a lot cheaper with respect to setup, you might want to give that a try if you haven't already. Also, consider running an unpreconditioned BiCGStab with a high maximum iteration count, that might suffice for convergence.

    Btw: How many unknowns does the system have? How many iterations do you need with ILUT?

    Best regards,
    Karli

     
  • nsgro

    nsgro - 2014-02-05

    Hi,

    thanks for the quick reply.

    The system has close to 300 thousand unknowns, and the matrix has about 4 million nonzero elements. With ILUT ViennaCL was averaging around 100 iterations, but it varied between 8 and 500. The original solver only averaged around 15 iterations, so that may be why the gpu was so much slower.

    I tried ILU0, but it doesn't converge, even using a smaller test case with only 3000 unknowns.

    Running an unpreconditioned BiCGStab solver takes far too many iterations and is slower than using ILUT.

     
  • Karl Rupp

    Karl Rupp - 2014-02-05

    Hi,

    thanks for the informations. With only 15 iterations of the original solver, I'm afraid there's nothing else I can recommend at the moment. All I can say is that we plan to provide further optimizations and more preconditioners in future releases, so you might want to check again at some later point in time...

    Best regards,
    Karli

     

Log in to post a comment.