<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
    <title></title>
  </head>
  <body bgcolor="#ffffff" text="#000000">
    Agreed that -use_cusparse should not exist. I did it so that it was
    easy to switch between CUSP and CUSPARSE so that I could gather
    sufficient data to make a sensible choice of which library to use.
    As I said in previous emails, CUSPARSE is appears to be very
    compelling for SpMV. Moreover, it is the only option for TriSolve
    aside from my own implementation.<br>
    <blockquote
cite="mid:CAM9tzSnKb5_LKD02Nnp54OEm9nZOv=eztobFsmLuRJNXFqFCLw@mail.gmail.com"
      type="cite">
      <div class="gmail_quote">
        <div>-use_cusparse should not exist. There should also never be
          PetscOptions calls that don't use a prefix. In all but extreme
          circumstances, PetscOptionsGetXX() should not be used in
          library code, all options should have help strings and be
          processed in the XSetFromOptions_IMPL() routine.</div>
        <br>
      </div>
    </blockquote>
    <blockquote
cite="mid:CAM9tzSnKb5_LKD02Nnp54OEm9nZOv=eztobFsmLuRJNXFqFCLw@mail.gmail.com"
      type="cite">
      <div class="gmail_quote">
        <div>1. txpetscgpu hides all type conversions and dispatch
          choices internally. Then there could be one PETSc interface
          file.</div>
        <br>
      </div>
    </blockquote>
    If this choice, then a new subdirectory <br>
    src/mat/impls/aij/seq/seqgpu (or some other name), <br>
    <br>
    with<br>
    -mat_type txcusp<br>
    -mat_type txcusparse<br>
    <br>
    <blockquote
cite="mid:CAM9tzSnKb5_LKD02Nnp54OEm9nZOv=eztobFsmLuRJNXFqFCLw@mail.gmail.com"
      type="cite">
      <div class="gmail_quote">
        <div>2. There are two (or more) PETSc Mat implementations. Some
          may make calls into txpetscgpu.</div>
        <div> </div>
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;">
          <div bgcolor="#ffffff" text="#000000"> This multiply function
            will invoke CUSPARSE functions if -use_cusparse is given at
            the command line. This can be removed if we allow for
            -mat_type cusparse?</div>
        </blockquote>
      </div>
      <br>
    </blockquote>
    If we choose this option, will <br>
    -mat_type cusp<br>
    allow one to use the CUSPARSE TriSolve for ILU or ICC?<br>
    <br>
    Alternatively, if one uses <br>
    -mat_type cusparse<br>
    for SpMV, will one be able to use the CUSP AMG and Poly
    preconditioners?<br>
    <div class="gmail_quote">
      <div><br>
      </div>
    </div>
    Since I am new to this, what would PETSc developers like to see?<br>
    <br>
    One more wrinkle. Given the naming conventions, should the vector
    types be<br>
    -vec_type thrust<br>
    instead of <br>
    -vec_type cusp<br>
    <br>
    The vectors only rely on Thrust capabilities at the moment.<br>
    <br>
    -Paul<br>
  </body>
</html>