Sending this to petsc-dev for better brains then mine to look at. Barry
Begin forwarded message: > From: Victor Minden <victorminden at gmail.com> > Date: October 27, 2010 3:30:29 PM CDT > To: Barry Smith <bsmith at mcs.anl.gov> > Subject: Re: SACUDA - Cannot compile > > Quick append: I realized that it would make the most sense to see if it > compiles at all with just smoothed_aggregation.h included, and it does. This > caused me to look further and see that the first line that kills the compiler > and the next few ones I looked at were trying to define and then use a struct > (inside many nested namespaces) called VecType, which rang a bell--since > vectype is a flag for petsc, I assume we have a variable/struct/something > somewhere that is causing the compiler to not let us use it again--though it > should be valid since it's in a namespace. Is this mangling/namespace > collision/something of the sort? What's the best way around it? > > > --- > Victor L. Minden > > Tufts University > School of Engineering > Class of 2012 > > > On Wed, Oct 27, 2010 at 4:21 PM, Victor Minden <victorminden at gmail.com> > wrote: > I'm having trouble compiling with the new experimental versions of thrust and > cusp, but only the sacuda preconditioner is affected. I pulled them out of > their respective hg repositories and edited the version numbers so petsc > would take them, and all the aijcuda and veccuda stuff seems to compile fine. > However, when the compile gets to sacuda.cu, I get a whole bunch of > > /usr/local/cuda/bin/../include/thrust/detail/device/cuda/detail/b40c/vector_types.h(37): > error: expected an identifier > > and similar errors in two different files (make.log attached). > > I pulled everything out of sacuda.cu except for the include statements (end > of email[1]), but it still says the same thing. Looking around online, I > guess this could be a C/C++ problem, maybe needing some extern magic or > something? The internet is not being very helpful. > > The files that are affecting things were both added to Thrust *after* the > last time we've looked at sacuda, vector_types.h [2] and > radixsort_scanscatter_kernel.h [3]. These appear to be both part of a > bundled radixsort code from an external source. The files are protected at > the top by a #pragma once, but I think we're ignoring pragmas (? or at least > we have the flag -Wnounknownpragmas) so I tried popping in an if !defined and > such to no avail. > > Does anything come to mind as a likely source of this problem? > > -Victor > > > > > [1] > #define PETSCKSP_DLL > > /* -------------------------------------------------------------------- */ > > /* > Include files needed for the CUDA Smoothed Aggregation preconditioner: > pcimpl.h - private include file intended for use by all preconditioners > */ > > #include "private/pcimpl.h" /*I "petscpc.h" I*/ > #include "../src/mat/impls/aij/seq/aij.h" > #include <cusp/precond/smoothed_aggregation.h> > #include "../src/vec/vec/impls/dvecimpl.h" > #include "../src/mat/impls/aij/seq/seqcuda/cudamatimpl.h" > > > [2] > http://code.google.com/p/thrust/source/browse/thrust/detail/device/cuda/detail/b40c/vector_types.h > > [3] > http://code.google.com/p/thrust/source/browse/thrust/detail/device/cuda/detail/b40c/radixsort_scanscatter_kernel.h > --- > Victor L. Minden > > Tufts University > School of Engineering > Class of 2012 > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20101027/f6c35a21/attachment.html>
