<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I looked into this last year and this was the response from the PETSc group and I don't know<div>if this has changed:<div><br></div><div><br></div><div>=============================&gt;&gt;<br><div><br></div><div>&nbsp; &nbsp; &nbsp;Looks like it is not so trivial as I had made it out to be. Perhaps if you ask on&nbsp;<a href="mailto:petsc-dev@mcs.anl.gov">petsc-dev@mcs.anl.gov</a>&nbsp;there may be people who want this also and are willing to share the work?<br><br>&nbsp;&nbsp;Barry<br><br>On May 23, 2011, at 6:06 PM, Victor Minden wrote:<br><br><blockquote type="cite">Barry,<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Currently there should be two things going on--one is that some of the<br></blockquote><blockquote type="cite">CUBLAS routines used for basic vector operations (which we've been moving<br></blockquote><blockquote type="cite">away from) have 4 different forms depending on single/double and<br></blockquote><blockquote type="cite">real/complex--currently those that we still use are hard-coded as real and<br></blockquote><blockquote type="cite">#ifdeffed to be single/double, and I haven't looked in depth but I think<br></blockquote><blockquote type="cite">those are the errors that Randy sent.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Those should be pretty quick to change, but they won't make complex work,<br></blockquote><blockquote type="cite">because once you get past veccusp.cu there are a bunch more errors in the<br></blockquote><blockquote type="cite">cusp matrix routines which work with complex if you use the relatively new<br></blockquote><blockquote type="cite">(Oct? &nbsp;Dec?) cusp complex type that they've added to the cusp library. &nbsp;So,<br></blockquote><blockquote type="cite">we need to make the GPU routines work with the standard complex type or we<br></blockquote><blockquote type="cite">need to convert all the GPU code to use the cusp type. &nbsp;I don't know how<br></blockquote><blockquote type="cite">much work this is.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">As it stands, I'm just starting my internship this week so I probably won't<br></blockquote><blockquote type="cite">be able to look at this in-depth until the weekend, just FYI.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Cheers,<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Victor<br></blockquote><blockquote type="cite">---</blockquote></div><div><br></div><div>&lt;&lt;===============================================</div><div><br><div><div>On Jan 23, 2012, at 1:36 PM, recrusader wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Dear Paul,<br><br>Please find the changelog in the following link for CUSP 0.2.0<br><a href="http://code.google.com/p/cusp-library/source/browse/CHANGELOG">http://code.google.com/p/cusp-library/source/browse/CHANGELOG</a><br>
<br>They has added cusp:complex class to support complex number-based operation.<br><br>does it not work for PETSc?<br><br>Thanks a lot,<br>Yujie<br><br><br><div class="gmail_quote">On Mon, Jan 23, 2012 at 3:28 PM, Paul Mullowney <span dir="ltr">&lt;<a href="mailto:paulm@txcorp.com">paulm@txcorp.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I would claim that Petsc does not support GPU capabilities for complex numbers right now.<br>
<br>
The CUSP library is templated over the scalar type (i.e. float or double), however I don't think it supports complex numbers. Although, I could be wrong on this.<br>
<br>
It could be somewhat straightforward to move from CUSP to CUSPARSE (yes, these are different Nvidia libraries). I believe CUSPARSE supports SpMV for complex types. It also supports triangular solve for complex types.<span class="HOEnZb"><font color="#888888"><br>

<br>
-Paul</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 &nbsp; &nbsp; This is an installation issue, please send all installation issues to <a href="mailto:petsc-maint@mcs.anl.gov" target="_blank">petsc-maint@mcs.anl.gov</a> with the entire configure.log<br>
<br>
<br>
<br>
<br>
 &nbsp; &nbsp;You can try editing config/PETSc/packages/cuda.py and removing the two lines<br>
<br>
 &nbsp; &nbsp; if self.scalartypes.scalartype == 'complex':<br>
 &nbsp; &nbsp; &nbsp; raise RuntimeError('Must use real numbers with CUDA')<br>
<br>
 &nbsp; &nbsp;As it says we have never tested for complex so I do not know how far it is from working.<br>
<br>
 &nbsp; &nbsp; Barry<br>
<br>
On Jan 23, 2012, at 1:24 PM, recrusader wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Dear PETSc Developers,<br>
<br>
I am compiling PETSc-dev using GPU in complex number mode.<br>
However, when I configure PETSc-dev, I get the following errors<br>
"<br>
******************************<u></u>******************************<u></u>*******************<br>
 &nbsp; &nbsp; &nbsp; &nbsp; UNABLE to CONFIGURE with GIVEN OPTIONS &nbsp; &nbsp;(see configure.log<br>
for details):<br>
------------------------------<u></u>------------------------------<u></u>-------------------<br>
Cannot use cuda with complex numbers it is not coded for this capability<br>
******************************<u></u>******************************<u></u>*******************<br>
"<br>
I have checked CUSP. The latest version can support complex number.<br>
What should I do for CUDA?<br>
Thank you very much.<br>
<br>
Best,<br>
Yujie<br>
</blockquote></blockquote>
<br>
</div></div></blockquote></div><br>
</blockquote></div><br></div></div></div></body></html>