Hi Christophe, Thanks a lot. I add --with-clanguage=cxx option. It works well now. This option is not on the manual for the compilation with gpu.
Sincerely Yours, Lei Shi --------- On Fri, Apr 11, 2014 at 3:42 AM, Christophe Ortiz < [email protected]> wrote: > Hi, > > Maybe I'm wrong but I think the following options are missing if you want > to use C++: > > --with-cxx=(g++ or icc....) --with-clanguage=cxx > > Christophe > > >> >> Message: 2 >> Date: Fri, 11 Apr 2014 03:26:09 -0500 >> From: Lei Shi <[email protected]> >> To: [email protected] >> Subject: [petsc-users] Failed to compile the PETsc-dev with cuda, >> mpicc can not recognize c++ key word in thrust and cusp >> Message-ID: >> <CAEV8= >> [email protected]> >> Content-Type: text/plain; charset="utf-8" >> >> Hi guys, >> >> I tried to compile petsc-dev with cuda5, but failed. I think the problem >> is the PETsc-dev with cuda, mpicc can not recognize c++ key word in thrust >> and cusp. Please help me out. here is my option file >> >> configure_options = [ >> >> >> '--with-shared-libraries=0', >> >> >> '--with-mpi-dir=/media/public/MPICH3/mpich-install/', >> >> >> '--with-cuda=1', >> >> >> '--with-cuda-dir=/usr/local/cuda', >> >> >> '--with-cudac=/usr/local/cuda/bin/nvcc', >> >> >> '--with-cuda-arch=sm_20', >> >> >> '--with-cusp-dir=/usr/local/cuda/include/cusp', >> >> >> '--with-thrust=1', >> >> >> '--with-cusp=1', >> >> >> '--with-debugging=0', >> >> >> '--with-precision=double', >> >> >> 'COPTFLAGS=-O3', >> >> >> 'CXXOPTFLAGS=-O3', >> >> >> 'FOPTFLAGS=-O3', >> >> >> ] >> >> and the error i got >> >> ------------------------------------------------------------------------------------------- >> >> =============================================================================== >> >> >> Configuring PETSc to compile on your system >> >> >> >> =============================================================================== >> >> >> TESTING: alternateConfigureLibrary from >> PETSc.packages.petsc4py(config/PETSc/packages/petsc4py.py:65) >> \ >> Compilers: >> >> >> C Compiler: /media/public/MPICH3/mpich-install/bin/mpicc -Wall >> -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -O3 >> >> CUDA Compiler: /usr/local/cuda/bin/nvcc -O -arch=sm_20 >> >> >> C++ Compiler: /media/public/MPICH3/mpich-install/bin/mpicxx -Wall >> -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -O3 >> >> Linkers: >> >> >> Static linker: /usr/bin/ar cr >> >> >> Dynamic linker: /usr/bin/ar >> >> >> make: >> >> >> MPI: >> >> >> Includes: -I/media/public/MPICH3/mpich-install/include >> >> >> BLAS/LAPACK: -llapack -lblas >> >> >> X: >> >> >> Library: -lX11 >> >> >> pthread: >> >> >> Library: -lpthread >> >> >> valgrind: >> >> >> cuda: >> >> >> Includes: -I/usr/local/cuda/include >> >> >> Library: -Wl,-rpath,/usr/local/cuda/lib64 -L/usr/local/cuda/lib64 >> -lcufft -lcublas -lcudart -lcusparse >> >> Arch: -arch=sm_20 >> >> >> cusp: >> >> >> Includes: -I/usr/local/cuda/include/cusp/ >> -I/usr/local/cuda/include/cusp/include >> >> thrust: >> >> >> sowing: >> >> >> c2html: >> >> >> PETSc: >> >> >> PETSC_ARCH: arch-cuda5-cg-opt >> >> >> PETSC_DIR: /home/leishi/work/development/3rd_party/petsc/petsc >> >> >> Clanguage: C >> >> >> Memory alignment: 16 >> >> >> Scalar type: real >> >> >> Precision: double >> >> >> shared libraries: disabled >> >> >> >> xxx=========================================================================xxx >> >> >> Configure stage complete. Now build PETSc libraries with (gnumake build): >> >> >> make PETSC_DIR=/home/leishi/work/development/3rd_party/petsc/petsc >> PETSC_ARCH=arch-cuda5-cg-opt all >> >> >> xxx=========================================================================xxx >> >> >> Using C/C++ compile: /media/public/MPICH3/mpich-install/bin/mpicc -c -Wall >> -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -O3 >> -I/home/leishi/work/development/3rd_party/pet\ >> sc/petsc/include >> >> -I/home/leishi/work/development/3rd_party/petsc/petsc/arch-cuda5-cg-opt/include >> -I/usr/local/cuda/include -I/usr/local/cuda/include/cusp/ >> -I/usr/local/cuda/include/cus\ >> p/include -I/media/public/MPICH3/mpich-install/include >> >> >> mpicc -show: gcc -I/media/public/MPICH3/mpich-install/include >> -L/media/public/MPICH3/mpich-install/lib -lmpich -lopa -lmpl -lrt >> -lpthread >> >> Using CUDA compile: /usr/local/cuda/bin/nvcc -O -arch=sm_20 -c >> --compiler-options=-Wall -Wwrite-strings -Wno-strict-aliasing >> -Wno-unknown-pragmas -O3 -I/home/leishi/work/development/3\ >> rd_party/petsc/petsc/include >> >> -I/home/leishi/work/development/3rd_party/petsc/petsc/arch-cuda5-cg-opt/include >> -I/usr/local/cuda/include -I/usr/local/cuda/include/cusp/ >> -I/usr/local/cuda\ >> /include/cusp/include -I/media/public/MPICH3/mpich-install/include >> >> >> ----------------------------------------- >> >> >> Using C/C++ linker: /media/public/MPICH3/mpich-install/bin/mpicc >> >> >> Using C/C++ flags: -Wall -Wwrite-strings -Wno-strict-aliasing >> -Wno-unknown-pragmas -O3 >> >> ----------------------------------------- >> >> >> Using libraries: >> >> -L/home/leishi/work/development/3rd_party/petsc/petsc/arch-cuda5-cg-opt/lib >> -lpetsc -llapack -lblas -lX11 -lpthread -Wl,-rpath,/usr/local/cuda/lib64 >> -L/usr/local/cuda\ >> /lib64 -lcufft -lcublas -lcudart -lcusparse -lm >> -L/media/public/MPICH3/mpich-install/lib >> -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/x86_64-linux-gnu >> -L/lib/x86_64-linux-gnu -L/usr/\ >> lib/gcc/x86_64-linux-gnu/4.8 -lmpichcxx -lstdc++ -ldl -lmpich -lopa -lmpl >> -lrt -lpthread -lgcc_s -ldl >> >> ------------------------------------------ >> >> >> Using mpiexec: /media/public/MPICH3/mpich-install/bin/mpiexec >> >> >> ========================================== >> >> >> Building PETSc using GNU Make with 18 build threads >> >> >> ========================================== >> >> >> make[2]: Entering directory >> `/home/leishi/work/development/3rd_party/petsc/petsc' >> >> >> Use "/usr/bin/make V=1" to see the verbose compile lines. >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/arch.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/fhost.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/fuser.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/memc.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/mpiu.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/psleep.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/sortd.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/sorti.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/str.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/sortip.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/pbarrier.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/pdisplay.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/ctable.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/psplit.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/select.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/mpimesg.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/sseenabled.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/utils/mpitr.o >> >> >> >> In file included from /usr/local/cuda/include/cusp/detail/config.h:24:0, >> >> >> from /usr/local/cuda/include/cusp/complex.h:63, >> >> >> from >> >> /home/leishi/work/development/3rd_party/petsc/petsc/include/petscmath.h:145, >> >> >> from >> >> /home/leishi/work/development/3rd_party/petsc/petsc/include/petscsys.h:366, >> >> >> from >> >> /home/leishi/work/development/3rd_party/petsc/petsc/include/petsc-private/petscimpl.h:8, >> >> from >> >> /home/leishi/work/development/3rd_party/petsc/petsc/src/sys/objects/options.c:14: >> >> >> /usr/local/cuda/include/thrust/version.h:69:1: error: unknown type name >> ?namespace? >> >> /usr/local/cuda/include/thrust/version.h:70:1: error: expected ?=?, ?,?, >> ?;?, ?asm? or ?__attribute__? before ?{? token >> >> In file included from >> >> /home/leishi/work/development/3rd_party/petsc/petsc/include/petscmath.h:145:0, >> >> >> from >> >> /home/leishi/work/development/3rd_party/petsc/petsc/include/petscsys.h:366, >> >> >> from >> >> /home/leishi/work/development/3rd_party/petsc/petsc/include/petsc-private/petscimpl.h:8, >> >> from >> >> /home/leishi/work/development/3rd_party/petsc/petsc/src/sys/objects/options.c:14: >> >> >> /usr/local/cuda/include/cusp/complex.h:70:19: fatal error: complex: No >> such >> file or directory >> >> compilation terminated. >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/objects/state.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/objects/aoptions.o >> >> >> CC arch-cuda5-cg-opt/obj/src/sys/objects/subcomm.o >> >> >> In file included from /usr/local/cuda/include/cusp/detail/config.h:24:0, >> >> >> from /usr/local/cuda/include/cusp/complex.h:63, >> >> >> from >> >> /home/leishi/work/development/3rd_party/petsc/petsc/include/petscmath.h:145, >> >> >> from >> >> /home/leishi/work/development/3rd_party/petsc/petsc/include/petscsys.h:366, >> >> >> from >> >> /home/leishi/work/development/3rd_party/petsc/petsc/src/sys/objects/init.c:10: >> >> >> /usr/local/cuda/include/thrust/version.h:69:1: error:* unknown type name >> ?namespace? * >> >> /usr/local/cuda/include/thrust/version.h:70:1: error: expected ?=?, ?,?, >> ?;?, ?asm? or ?__attribute__? before ?{? token >> >> In file included from >> >> /home/leishi/work/development/3rd_party/petsc/petsc/include/petscmath.h:145:0, >> >> >> from >> >> /home/leishi/work/development/3rd_party/petsc/petsc/include/petscsys.h:366, >> >> >> from >> >> /home/leishi/work/development/3rd_party/petsc/petsc/src/sys/objects/init.c:10: >> >> >> /usr/local/cuda/include/cusp/complex.h:70:19: fatal error: complex: No >> such >> file or directory >> >> >> >> make: *** [all] Error 1 >> >> Sincerely Yours, >> >> Lei Shi >> --------- >> -------------- next part -------------- >> An HTML attachment was scrubbed... >> URL: < >> http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140411/4831a810/attachment.html >> > >> >> ------------------------------ >> >> _______________________________________________ >> petsc-users mailing list >> [email protected] >> https://lists.mcs.anl.gov/mailman/listinfo/petsc-users >> >> >> End of petsc-users Digest, Vol 64, Issue 26 >> ******************************************* >> >> ---------------------------- >> Confidencialidad: >> Este mensaje y sus ficheros adjuntos se dirige exclusivamente a su >> destinatario y puede contener información privilegiada o confidencial. Si >> no es vd. el destinatario indicado, queda notificado de que la utilización, >> divulgación y/o copia sin autorización está prohibida en virtud de la >> legislación vigente. Si ha recibido este mensaje por error, le rogamos que >> nos lo comunique inmediatamente respondiendo al mensaje y proceda a su >> destrucción. >> >> Disclaimer: >> This message and its attached files is intended exclusively for its >> recipients and may contain confidential information. If you received this >> e-mail in error you are hereby notified that any dissemination, copy or >> disclosure of this communication is strictly prohibited and may be >> unlawful. In this case, please notify us by a reply and delete this email >> and its contents immediately. >> ---------------------------- >> >> >
