Comb icon indicating copy to clipboard operation
Comb copied to clipboard

identifier "cudaGraphExecKernelNodeSetParams" is undefined

Open yweng0828 opened this issue 3 years ago • 3 comments

Hi, I want to compile the CUDA version, and I get some trouble during make.

I have change the script in ./scripts/ubuntu-builds/ubuntu_nvcc10_gcc8.sh and ./host-configs/ubuntu-builds/nvcc_gcc_X.cmake respectively according to my system environment. What needs to be mentioned is that I add -std=c++11 to COMB_NVCC_FLAGS in nvcc_gcc_X.cmake. Otherwise, it will has the errors as bellow.

/app/compiler/gcc/4.9.4/include/c++/4.9.4/bits/c++0x_warning.h:32:2: error:#error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
 #error This file requires compiler and library support for the \
  ^
make[2]: *** [CMakeFiles/comb.dir/src/comb.cpp.o] error 1
make[1]: *** [CMakeFiles/comb.dir/all] error 2

After that, I run the script and get below.

loading initial cache file ../host-configs/ubuntu-builds/nvcc_gcc_X.cmake
-- The CXX compiler identification is GNU 4.9.4
-- Check for working CXX compiler: /app/compiler/gcc/4.9.4/bin/g++
-- Check for working CXX compiler: /app/compiler/gcc/4.9.4/bin/g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- BLT Version: 0.3.0
-- CMake Version: 3.10.2
-- CMake Executable: /GPUFS/app_GPU/application/cmake/3.10.2/bin/cmake
-- Found Git: /usr/bin/git (found version "1.8.3.1")
-- Git Support is ON
-- Git Executable: /usr/bin/git
-- Git Version: 1.8.3.1
-- MPI Support is ON
-- Enable FindMPI:  ON
-- Found MPI_CXX: /app/compiler/intel/15.0.1/impi/5.0.2.044/intel64/lib/libmpicxx.so (found version "3.0")
-- Found MPI: TRUE (found version "3.0")
-- BLT MPI Compile Flags:
-- BLT MPI Include Paths:  /app/compiler/intel/15.0.1/impi/5.0.2.044/intel64/include
-- BLT MPI Libraries:      /app/compiler/intel/15.0.1/impi/5.0.2.044/intel64/lib/libmpicxx.so;/app/compiler/intel/15.0.1/impi/5.0.2.044/intel64/lib/libmpifor
t.so;/app/compiler/intel/15.0.1/impi/5.0.2.044/intel64/lib/release_mt/libmpi.so;/app/compiler/intel/15.0.1/impi/5.0.2.044/intel64/lib/libmpigi.a;/lib64/libdl
.so;/lib64/librt.so;/lib64/libpthread.so
-- BLT MPI Link Flags:     -Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker /app/compiler/intel/15.0.1//impi/5.0.2.044/intel64/lib/release_mt -Xlinker -r
path -Xlinker /app/compiler/intel/15.0.1//impi/5.0.2.044/intel64/lib -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/5.0/intel64/lib/release_mt -Xlinker -rpath -X
linker /opt/intel/mpi-rt/5.0/intel64/lib
-- MPI Executable:       /app/compiler/intel/15.0.1/impi/5.0.2.044/intel64/bin/mpiexec
-- MPI Num Proc Flag:    -n
-- MPI Command Append:
-- OpenMP Support is ON
-- Found OpenMP_CXX: -fopenmp (found version "4.0")
-- Found OpenMP: TRUE (found version "4.0")
-- OpenMP Compile Flags: $<$<NOT:$<COMPILE_LANGUAGE:CUDA>>:-fopenmp>;$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=-fopenmp>
-- OpenMP Link Flags:    -fopenmp
-- CUDA Support is ON
-- The CUDA compiler identification is NVIDIA 10.0.130
-- Check for working CUDA compiler: /GPUFS/app_GPU/compiler/CUDA/10.0.1/bin/nvcc
-- Check for working CUDA compiler: /GPUFS/app_GPU/compiler/CUDA/10.0.1/bin/nvcc -- works
-- Detecting CUDA compiler ABI info
-- Detecting CUDA compiler ABI info - done
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found CUDA: /GPUFS/app_GPU/compiler/CUDA/10.0.1 (found version "10.0")
-- CUDA Version:       10.0
-- CUDA Compiler:      /GPUFS/app_GPU/compiler/CUDA/10.0.1/bin/nvcc
-- CUDA Host Compiler: /app/compiler/gcc/4.9.4/bin/g++
-- CUDA Include Path:  /GPUFS/app_GPU/compiler/CUDA/10.0.1/include
-- CUDA Libraries:     /GPUFS/app_GPU/compiler/CUDA/10.0.1/lib64/libcudart_static.a;-lpthread;dl;/usr/lib64/librt.so
-- CUDA Compile Flags:
-- CUDA Link Flags:
-- CUDA Separable Compilation:  ON
-- CUDA Link with NVCC:
-- HIP Support is OFF
-- HCC Support is OFF
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.5") found components:  doxygen dot
-- Sphinx support is ON
-- Failed to locate Sphinx executable (missing: SPHINX_EXECUTABLE)
-- Valgrind support is ON
-- Found Valgrind: /usr/bin/valgrind
-- Uncrustify support is ON
-- Failed to locate Uncrustify executable (missing: UNCRUSTIFY_EXECUTABLE)
-- AStyle support is ON
-- Failed to locate AStyle executable (missing: ASTYLE_EXECUTABLE)
-- Cppcheck support is ON
-- Failed to locate Cppcheck executable (missing: CPPCHECK_EXECUTABLE)
-- ClangQuery support is ON
-- Failed to locate ClangQuery executable (missing: CLANGQUERY_EXECUTABLE)
-- C Compiler family is GNU
-- Adding optional BLT definitions and compiler flags
-- Enabling all compiler warnings on all targets.
-- Fortran support disabled.
-- CMAKE_C_FLAGS flags are:    -Wall -Wextra
-- CMAKE_CXX_FLAGS flags are:    -Wall -Wextra
-- CMAKE_EXE_LINKER_FLAGS flags are:
-- Google Test Support is ON
-- Google Mock Support is OFF
-- The C compiler identification is GNU 4.9.4
-- Check for working C compiler: /app/compiler/gcc/4.9.4/bin/gcc
-- Check for working C compiler: /app/compiler/gcc/4.9.4/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found PythonInterp: /usr/bin/python (found version "2.7.5")
-- MPI Enabled
-- OpenMP Enabled
-- Cuda Enabled
-- Configuring done
-- Generating done
-- Build files have been written to: /GPUFS/demo/benchmark/comb/build_ubuntu-nvcc10-gcc8

When I make, I get the errors.

/GPUFS/demo/benchmark/comb/include/graph_launch.hpp(154): error: identifier "cudaGraphExecKernelNodeSetParams" is undefined

/GPUFS/demo/benchmark/comb/include/graph_launch.hpp(174): error: argument of type "const cudaGraphNode_t *" is incompatible with parameter of type "cudaGraphNode_t *"

2 errors detected in the compilation of "/tmp/tmpxft_0004aa35_00000000-6_comb.cpp1.ii".
make[2]: *** [CMakeFiles/comb.dir/src/comb.cpp.o] error 1
make[1]: *** [CMakeFiles/comb.dir/all] error 2
make: *** [all] error 2

I cannot find cudaGraphExecKernelNodeSetParams in the code except graph_launch.hpp(154). Is it the bug or something I do wrong (like add the -std=c++11)

error: argument of type "const cudaGraphNode_t *" is incompatible with parameter of type "cudaGraphNode_t *" is also a problem about the code. How can I fix it?

Thanks for your attention. Looking forward to your reply.

yweng0828 avatar Mar 03 '21 10:03 yweng0828

Hello, it looks like you figured out how to get that older version of gcc to work, but you might want to use a newer version if possible. I see that cuda graph support with cuda 10.0 is broken, but it should work with cuda 10.1 or higher. If you are not interested in cuda graphs a quick fix is to disable cuda graphs by commenting out the line here https://github.com/LLNL/Comb/blob/3c4a1be7b2ff793fabf2b299dfa673e2fae8e86f/include/config.hpp.in#L68. I'll update this to fix cuda 10.0, but if you are interested in cuda graphs performance I recommend using a cuda version of 10.2 or higher.

MrBurmark avatar Mar 04 '21 18:03 MrBurmark

@MrBurmark Thanks for your reply, it really helps!!! I use gcc 5.5.0 and cuda 10.1 this time, and the above problems did not occur.

But I still get a lot of errors when compiling the google test.

...
/GPUFS/demo/benchmark/comb_back/blt/thirdparty_builtin/googletest-master-2020-01-07/googletest/include/gtest/internal/gtest-internal.
h:349:50: error:‘const union testing::internal::FloatingPoint<float>::FloatingPointUnion’ has no member named ‘bits_’
     return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_)

/GPUFS/demo/benchmark/comb_back/blt/thirdparty_builtin/googletest-master-2020-01-07/googletest/include/gtest/internal/gtest-internal.h:9
74:8: error:no type named ‘type’ in ‘struct testing::internal::IsRecursiveContainerImpl<int, false>’
 struct IsRecursiveContainer : public IsRecursiveContainerImpl<C>::type {};
        ^
...

There are lots of errors, so I turn off the ENABLE_GTEST in CMakeCache.txt, and it can compile successfully.

//Enable Google Test testing support (if ENABLE_TESTS=ON)
ENABLE_GTEST:BOOL=OFF

Is the google test need more dependence? Or still the problem of my environment?

Thank you sincerely for your help :)

yweng0828 avatar Mar 05 '21 08:03 yweng0828

I have not seen such errors when compiling google test, so I can only recommend trying a different or more recent compiler. On the other hand comb doesn't have any tests so disabling google test will only disable the blt tests.

MrBurmark avatar Mar 05 '21 17:03 MrBurmark