NVIDIA / AMGX

Distributed multigrid linear solver library on GPU
468 stars 136 forks source link

[Build] #281

Closed geyan3566 closed 3 weeks ago

geyan3566 commented 8 months ago

Describe the issue

A clear and concise description of what the issue is.

Environment information:

Configuration information

cmake ../ \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_C_COMPILER=gcc \ -DCMAKE_CXX_COMPILER=g++ \ -DCUDA_ARCH="80"

CMAKE CONFIG OUTPUT -- The C compiler identification is GNU 10.5.0 -- The CXX compiler identification is GNU 10.5.0 -- The CUDA compiler identification is NVIDIA 11.5.119 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/gcc-10 - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/g++-10 - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Detecting CUDA compiler ABI info -- Detecting CUDA compiler ABI info - done -- Check for working CUDA compiler: /usr/bin/nvcc - skipped -- Detecting CUDA compile features -- Detecting CUDA compile features - done -- Found MPI_C: /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so (found version "3.1") -- Found MPI_CXX: /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi_cxx.so (found version "3.1") -- Found MPI: TRUE (found version "3.1")
-- Found OpenMP_C: -fopenmp (found version "4.5") -- Found OpenMP_CXX: -fopenmp (found version "4.5") -- Found OpenMP: TRUE (found version "4.5")
-- Found CUDAToolkit: /usr/include (found suitable version "11.5.119", minimum required is "10.0") -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE
-- Found OpenMP_C: -fopenmp (found version "4.5") -- Found OpenMP_CXX: -fopenmp (found version "4.5") This is a MPI build:TRUE -- Checking if arch 80 is supported... -- Found libcudacxx: /home/geyan/Workspace/Softwares/AMGX/thrust/dependencies/libcudacxx/lib/cmake/libcudacxx/libcudacxx-config.cmake (found suitable version "1.8.1.0", minimum required is "1.8.0") -- Found Thrust: /home/geyan/Workspace/Softwares/AMGX/thrust/thrust/cmake/thrust-config.cmake (found version "2.1.0.0") -- Found CUB: /home/geyan/Workspace/Softwares/AMGX/thrust/dependencies/cub/cub/cmake/cub-config.cmake (found suitable version "2.1.0.0", minimum required is "2.1.0.0") -- Configuring done -- Generating done -- Build files have been written to: /home/geyan/Workspace/Softwares/AMGX/build

Compilation information [ 1%] Building CUDA object src/CMakeFiles/amgx_tests_libs.dir/testframework.cu.o [ 1%] Building CUDA object src/CMakeFiles/amgx_tests_libs.dir/unit_test.cu.o [ 1%] Building CUDA object src/CMakeFiles/amgx_tests_libs.dir/test_utils.cu.o [ 1%] Building CUDA object CMakeFiles/amgx_libs.dir/src/aggregation/aggregation_amg_level.cu.o [ 1%] Building CUDA object CMakeFiles/amgx_libs.dir/src/aggregation/selectors/adaptive.cu.o [ 1%] Built target copy_configs_core [ 2%] Building CUDA object CMakeFiles/amgx_libs.dir/src/aggregation/coarseAgenerators/coarse_A_generator.cu.o [ 3%] Building CUDA object CMakeFiles/amgx_libs.dir/src/aggregation/coarseAgenerators/thrust_coarse_A_generator.cu.o [ 3%] Building CUDA object CMakeFiles/amgx_libs.dir/src/aggregation/coarseAgenerators/low_deg_coarse_A_generator.cu.o [ 3%] Building CUDA object CMakeFiles/amgx_libs.dir/src/aggregation/coarseAgenerators/hybrid_coarse_A_generator.cu.o [ 4%] Building CUDA object CMakeFiles/amgx_libs.dir/src/aggregation/selectors/agg_selector.cu.o /usr/include/c++/11/bits/std_function.h:435:145: error: parameter packs not expanded with ‘...’: 435 function(_Functor&& __f) ^ /usr/include/c++/11/bits/std_function.h:435:145: note: ‘_ArgTypes’ /usr/include/c++/11/bits/std_function.h:530:146: error: parameter packs not expanded with ‘...’: 530 operator=(_Functor&& __f) ^ /usr/include/c++/11/bits/std_function.h:530:146: note: ‘_ArgTypes’ /usr/include/c++/11/bits/std_function.h:435:145: error: parameter packs not expanded with ‘...’: 435 function(_Functor&& __f) ^ /usr/include/c++/11/bits/std_function.h:435:145: note: ‘_ArgTypes’ /usr/include/c++/11/bits/std_function.h:530:146: error: parameter packs not expanded with ‘...’: 530 operator=(_Functor&& __f) ^ /usr/include/c++/11/bits/std_function.h:530:146: note: ‘_ArgTypes’ /usr/include/c++/11/bits/std_function.h:435:145: error: parameter packs not expanded with ‘...’: 435 function(_Functor&& __f) ^ /usr/include/c++/11/bits/std_function.h:435:145: note: ‘_ArgTypes’ /usr/include/c++/11/bits/std_function.h:530:146: error: parameter packs not expanded with ‘...’: 530 operator=(_Functor&& __f) ^ /usr/include/c++/11/bits/std_function.h:530:146: note: ‘_ArgTypes’ /usr/include/c++/11/bits/std_function.h:435:145: error: parameter packs not expanded with ‘...’: 435 function(_Functor&& __f)

Provide your make command make -j10 Issue information As shown above

Additional context

Add any other context about the problem here.

geyan3566 commented 8 months ago

I also tried gcc-10 and g++-10 which does not solve the problem

yanang007 commented 6 months ago

Hi! Are you using nvcc from package nvidia-cuda-toolkit (typically apt install nvidia-cuda-toolkit)?

I had exactly the same issue, which got resolved when I switched to cuda from nvidia repository (installation instructions from here and post-installation actions from here).

There does exist a similar issue NVlabs/instant-ngp#119, where it is resolved by downgrading to gcc-10 (which seems not to work for you) or switching to another cuda.

geyan3566 commented 6 months ago

@yanang007 Thanks for your answer. I'm using the cuda-toolkit come with PopOS, which seems likely from the package. I'll try

switched to cuda from nvidia repository (installation instructions from here and post-installation actions from here) later.

Thanks !

geyan3566 commented 3 weeks ago

This problem is fix by installing the official cudatoolkit from website. Thanks @yanang007