Or easier, how about just throwing a warning instead of an error if CUSP and Thrust are not found. Right now the error is raised if the -with-cuda is set without CUSP and Thrust dirs given. Why bother coupling them at all? If the user wants to CUSP support then they should specify that anyways, otherwise CUDA should be fine.<br>
<br>Or am I missing something?<br><br><br><br><div class="gmail_quote">On Tue, Sep 13, 2011 at 9:39 AM, Daniel Lowell <span dir="ltr"><<a href="mailto:redratio1@gmail.com">redratio1@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>If I am moving configureTypes() to config/BuildSystem/config/<div>compile/CUDA.py won't I also need a Configure class for it be contained?<br></div><br>Also, there is another check config/PETSc/packages/cuda.py has which might be needed: <br>

 def checkNVCCDoubleAlign(self)<div><div></div><div class="h5"><br><br><br><div class="gmail_quote">On Mon, Sep 12, 2011 at 4:20 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
  Daniel,<br>
<br>
    The way we have things set up currently is kind of stupid. We have two cuda.py files one to set up the cuda compiler and the other that sets up PETSc to use cuda and cusp/thrust. So the first one handles the -with-cudac="" command which makes sense but the second one handles the --with-cuda-arch command which does not make sense; essentially the configureType() method from the second cuda.py should be moved to the first cuda.py and used.  Then the second cuda.py should be renamed something else; perhaps the way to set PETSc to use everything could be with --with-cuda-cusp-thrust or some other better command.<br>


<br>
   Anyways you or anyone else can try moving the configureType() from config/PETSc/packages/cuda.py to config/BuildSystem/config/compile/CUDA.py and rework it to use the precision provider stuff like is done in config/BuildSystem/config/packages/BlasLapack.py and then you would just provide the --with-cudac and --with-cuda-arch and not use the --with-cuda<br>


<font color="#888888"><br>
<br>
<br>
   Barry<br>
</font><div><div></div><div><br>
<br>
<br>
<br>
On Sep 12, 2011, at 4:00 PM, Daniel Lowell wrote:<br>
<br>
> Is there a way to configure PETSc to build with nvcc CUDA support, but without the CUSP flags being set? I'd like to set up PETSc independent of any CUSP flags or MACROs.<br>
><br>
> Default, any configuration settings require you specify CUSP and THRUST support.<br>
><br>
> Here is my current configuration file:<br>
><br>
> CFLG="--CFLAGS=-O2 -fopenmp -msse2 -mfpmath=sse -g -ggdb"<br>
> FFLG="--FFLAGS=-O2 -fopenmp -g"<br>
> WCC="--with-cc=gcc"<br>
> MPI_DIR="--with-mpi-dir=$MPICH2_HOME"<br>
> WBL="--with-blas-lapack-dir=$INTEL_MKL"<br>
> LAD="--download-c-blas-lapack=yes --download-f-blas-lapack=yes"<br>
> HYP="--download-hypre=1"<br>
> HDF="--with-hdf5=1 --download-hdf5=1"<br>
> CUD="--with-cuda-dir=/soft/cuda-4.0/cuda"<br>
> USP="--with-thrust-dir=/soft/cuda-4.0/cuda/include --with-cusp-dir=/soft/cuda-4.0/cuda/include"<br>
><br>
><br>
> ./config/configure.py $MPI_DIR $LAD $CFLG $FFLG $HYP $HDF $CUD \<br>
> --with-cudac="nvcc -m64" \<br>
> --with-precision=double \<br>
> --with-clanguage=c \<br>
> --with-cuda-arch=sm_20 \<br>
> PETSC_ARCH=structgrid_cuda<br>
><br>
><br>
><br>
> Note my USP flag is not included in the configuration invocation.<br>
><br>
><br>
><br>
> Thanks,<br>
><br>
> Daniel Lowell<br>
<br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br>