Hi Just my 2-cents worth. A couple of years ago I was involved in k-3D ( http://www.k-3d.org/) that also used cmake as a build system. I was busy with a summer of code project that involved using CUDA, and had incorporated it into the build system.
Unfortunately I'm a little swamped at the moment, and can't take a look at it myself for at least another month, but maybe there are some clues there? If it isn't sorted out once I have some more time on my hands (if that ever happens :) ), then I will gladly take another look. Regards -- Evan Lezar Computational Electromagnetics Group Department of Electrical and Electronic Engineering University of Stellenbosch Stellenbosch South Africa www.evanlezar.com GoogleTalk: evanlezar Skype: evanlezar On Mon, Jan 17, 2011 at 7:41 PM, Johan Hake <[email protected]> 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

