Menu

ViennaCl & multiple GPUs

tario
2018-01-28
2018-04-23
  • tario

    tario - 2018-01-28

    Hello Karli,

    a question about scaling.

    There are several options for a workstation setup (one node!) and I am not sure whether the linear solvers will scale to 2...4 GPUs including GPUs with 2 processors like the K80.

    Do you have experience with the linear solvers on systems with e.g. 2x Tesla K80 or 3x FirePro W9100?

    Best regards,

    T.

     
  • Karl Rupp

    Karl Rupp - 2018-02-03

    Hi,

    ViennaCL does not provide any automatic scaling to more than one GPU. Please consider PETSc for running across multiple GPUs, where ViennaCL is available as a GPU backend.

    Best regards,
    Karli

     
  • tario

    tario - 2018-04-12

    Hi,

    do you have a tutorial or example about how to use PETSc with ViennaCL to solve a linear system using multiple AMD GPUs instead of using multiple CPU processes?

    I can only find installation instructions

    T.

     
  • Karl Rupp

    Karl Rupp - 2018-04-23

    No, there is no functionality in ViennaCL (natively) that allows you to use multiple GPUs for jointly solving a single large system. This is only possible through PETSc by using multiple CPU processes (via MPI).

    Addendum:
    If you want to use ViennaCL through PETSc, you provide the command line options
    -mat_type aijviennacl -vec_type viennacl
    and specify a proper preconditioner. Typical choices (as of 04/2018) with a single MPI rank are:

    • -pc_type none to run without preconditioner
    • -pc_type saviennacl for smoothed aggregation multigrid
    • -pc_type chowiluviennacl for a parallel incomplete LU variant

    With multiple MPI ranks you need to specify an outer block-Jacobi preconditioner, e.g. -pc_type bjacobi -sub_ksp_type preonly -sub_pc_type chowiluviennacl.

     

    Last edit: Karl Rupp 2018-04-23

Log in to post a comment.