<!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>