Looks like this fixed it! Now the nvcc compiler complains of not finding dolfin/la/KrylovSolver.h, which is a more comprehensible error. You probably need to use some CUDA macro together with some of the defined DOLFIN_FOO variables, at least:
DOLFIN_INCLUDE_DIRECTORIES, DOLFIN_SOURCE_DIR it looks like nvcc picks up variables set before FindCUDA is called. Remember to set: -DCMAKE_VERBOSE_MAKEFILE to get the whole compile statement. It is easier to debug. Johan On Tuesday January 18 2011 05:42:04 Johannes Ring wrote: > On Tue, Jan 18, 2011 at 12:55 PM, Anders Logg <[email protected]> wrote: > > On Tue, Jan 18, 2011 at 09:26:06AM +0100, Johannes Ring wrote: > >> On Mon, Jan 17, 2011 at 10:00 PM, Johan Hake <[email protected]> wrote: > >> > It looks like changing: > >> > > >> > add_definitions(-DPACKAGE_VERSION="${DOLFIN_VERSION}") > >> > > >> > to > >> > > >> > add_definitions(-DPACKAGE_VERSION=${DOLFIN_VERSION}) > >> > > >> > Fixed it. PACKAGE_VERSION got added to the defines in the call to nvcc > >> > and the escaped quotes screwed things up. > >> > > >> > Johannes: Are the quotes needed for something special? It compiles > >> > alright without the quotes. > >> > >> It does not work for me when I remove the quotes: > >> > >> [ 50%] Building CXX object dolfin/CMakeFiles/dolfin.dir/main/init.cpp.o > >> /home/johannr/src/bzr/dolfin/dolfin/main/init.cpp:15:53: error: too > >> many decimal points in number > >> /home/johannr/src/bzr/dolfin/dolfin/main/init.cpp: In function ‘void > >> dolfin::dolfin_init(int, char**)’: > >> /home/johannr/src/bzr/dolfin/dolfin/main/init.cpp:15: error: expected > >> primary-expression before ‘)’ token > >> make[2]: *** [dolfin/CMakeFiles/dolfin.dir/main/init.cpp.o] Error 1 > >> make[1]: *** [dolfin/CMakeFiles/dolfin.dir/all] Error 2 > >> make: *** [all] Error 2 > >> > >> However, I don't think the -DPACKAGE_VERSION flag is really needed. It > >> only seems to be used in dolfin/common/constants.h for specifying the > >> DOLFIN_VERSION. We can use CMake's configure_file command instead to > >> set this value. How does that sound? > > > > Good. > > Unfortunately, this turned out to be more involved than I thought so I > went back to use the -DPACKAGE_VERSION flag. However, it seems to work > better when the flag is added later, that is, after the call to > find_package(CUDA). I couldn't really test this since my computer > doesn't have a NVIDIA GPU but at least I managed to get the nvcc > compiler running. It failed with a message complaining about that the > file gpu_util.h could not be found. I guess this file comes with the > NVIDIA drivers or something. Anyway, the DOLFIN development repository > is now updated with this fix. > > Johannes > > > -- > > Anders > > > >> Johannes > >> > >> > Johan > >> > > >> > On Monday January 17 2011 09:41:26 Johan Hake wrote: > >> >> Florian! > >> >> > >> >> I am no CMake expert nor have I ever compiled any CUDA code, but it > >> >> looks like something fishy happens when you add your flags to the > >> >> CUDA code generation step. Have you set it up correctly? I also get > >> >> the erronious output from CMake for the nvcc call. > >> >> > >> >> What CMake command is used to set these flags? It almost seems like > >> >> the eronious flags are set automatic? At least I cannot see that you > >> >> put PACKAGE_VERSION to the NVCC flags anywhere. If they are > >> >> automatically set, maybe there is a way to set them using one of the > >> >> commands from FindCUDA.cmake? > >> >> > >> >> Johan > >> >> > >> >> On Friday January 14 2011 12:07:50 Florian Rathgeber wrote: > >> >> > Hi, > >> >> > > >> >> > I'm currently trying to get my DOLFIN GPU code in shape but haven't > >> >> > quite succeeded integrating it with DOLFIN's CMake build. > >> >> > > >> >> > Now the FindCUDA.cmake script tries to propagate host compiler > >> >> > flags and defines to the NVIDIA compiler nvcc but apparently > >> >> > messes up so I get a > >> >> > > >> >> > compiler invocation looking like this (only the relevant part): > >> >> > -DPACKAGE_VERSION= 0.9.9+\" -Ddolfin_gpu_EXPORTS\" -Xcompiler > >> >> > > >> >> > ,\"-fPIC\",\"-O2\",\"-g\" > >> >> > > >> >> > Note the odd quoting and also the space after -DPACKAGE_VERSION= > >> >> > > >> >> > This causes nvcc to assume this is a target and die: > >> >> > nvcc fatal : A single input file is required for a non-link phase > >> >> > when an outputfile is specified > >> >> > > >> >> > The code is at lp:~florian-rathgeber/dolfin/gpu-backend > >> >> > > >> >> > The relevant section from dolfin/CMakeLists.txt (after all the > >> >> > other packages) > >> >> > <<< > >> >> > # CUDA > >> >> > SET(DOLFIN_GPU_LIBRARY "") > >> >> > if (DOLFIN_ENABLE_CUDA AND CUDA_FOUND) > >> >> > > >> >> > list(APPEND DOLFIN_CXX_DEFINITIONS "-DHAS_CUDA") > >> >> > list(APPEND DOLFIN_INCLUDE_DIRECTORIES ${CUDA_INCLUDE_DIRS}) > >> >> > # Add CUDA sources (*.cu) only if CUDA is enabled > >> >> > foreach(DIR ${DOLFIN_DIRS}) > >> >> > > >> >> > file(GLOB _CU_SOURCES ${DIR}/*.cu) > >> >> > list(APPEND CU_SOURCES ${_CU_SOURCES}) > >> >> > > >> >> > endforeach() > >> >> > CUDA_ADD_LIBRARY(dolfin_gpu ${CU_SOURCES} SHARED) > >> >> > SET(DOLFIN_GPU_LIBRARY dolfin_gpu) > >> >> > list(APPEND DOLFIN_TARGET_LINK_LIBRARIES ${CUDA_LIBRARIES} > >> >> > > >> >> > ${DOLFIN_GPU_LIBRARY}) > >> >> > endif() > >> >> > > >> >> > # Cusp > >> >> > if (DOLFIN_ENABLE_CUSP AND CUSP_FOUND) > >> >> > > >> >> > list(APPEND DOLFIN_CXX_DEFINITIONS "-DHAS_CUSP") > >> >> > list(APPEND DOLFIN_INCLUDE_DIRECTORIES ${THRUST_INCLUDE_DIRS} > >> >> > > >> >> > ${CUSP_INCLUDE_DIRS}) > >> >> > > >> >> > endif() > >> >> > <<< > >> >> > > >> >> > In CMakeLists.txt I check for the packages like this: > >> >> > <<< > >> >> > # Check for CUDA > >> >> > if (DOLFIN_ENABLE_CUDA) > >> >> > > >> >> > find_package(CUDA) > >> >> > > >> >> > endif() > >> >> > > >> >> > # Check for Cusp > >> >> > if (DOLFIN_ENABLE_CUSP) > >> >> > > >> >> > find_package(Cusp) > >> >> > > >> >> > endif() > >> >> > <<< > >> >> > FindCUDA is the stock script from CMake 2.8, FindCusp is a simple > >> >> > script I wrote which lives in cmake/modules > >> >> > > >> >> > I'd be happy about any hints and tips. Garth, afair you wanted to > >> >> > look into this at some point now that the new build system is in > >> >> > place? > >> >> > > >> >> > Florian > >> >> > >> >> _______________________________________________ > >> >> Mailing list: https://launchpad.net/~dolfin > >> >> Post to : [email protected] > >> >> Unsubscribe : https://launchpad.net/~dolfin > >> >> More help : https://help.launchpad.net/ListHelp > >> > > >> > _______________________________________________ > >> > Mailing list: https://launchpad.net/~dolfin > >> > Post to : [email protected] > >> > Unsubscribe : https://launchpad.net/~dolfin > >> > More help : https://help.launchpad.net/ListHelp > >> > >> _______________________________________________ > >> Mailing list: https://launchpad.net/~dolfin > >> Post to : [email protected] > >> Unsubscribe : https://launchpad.net/~dolfin > >> More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : [email protected] Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp

