Chia-Network / bladebit

A high-performance k32-only, Chia (XCH) plotter supporting in-RAM and disk-based plotting
Apache License 2.0
339 stars 109 forks source link

Bladebit compile failed #365

Closed hajes closed 10 months ago

hajes commented 11 months ago

running Debian testing build according to https://github.com/Chia-Network/bladebit

I am guessing Baldebit doesn't like nVidia/CUDA driver version?

cmake .. -- The C compiler identification is GNU 13.2.0 -- The CXX compiler identification is GNU 13.2.0 -- The ASM compiler identification is GNU -- Found assembler: /usr/bin/cc -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - 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/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found CUDAToolkit: /usr/include (found version "11.8.89") -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE
Found CUDA: true NVCC : /usr/bin/nvcc CMake Error at /usr/share/cmake-3.26/Modules/CMakeDetermineCompilerId.cmake:751 (message): Compiling the CUDA compiler identification source file "CMakeCUDACompilerId.cu" failed.

Compiler: /usr/bin/nvcc

Build flags:

Id flags: --keep;--keep-dir;tmp -v

The output was:

1

$ _NVVMBRANCH=nvvm

$ SPACE=

$ CUDART=cudart

$ HERE=/usr/lib/nvidia-cuda-toolkit/bin

$ THERE=/usr/lib/nvidia-cuda-toolkit/bin

$ _TARGETSIZE=

$ _TARGETDIR=

$ _TARGETSIZE=64

$ NVVMIR_LIBRARY_DIR=/usr/lib/nvidia-cuda-toolkit/libdevice

$

PATH=/usr/lib/nvidia-cuda-toolkit/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

$ LIBRARIES= -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu

$ rm tmp/a_dlink.reg.c

$ gcc -D__CUDA_ARCH=520 -DCUDA_ARCH_LIST__=520 -E -x c++

-DCUDA_DOUBLE_MATH_FUNCTIONS -DCUDACC -DNVCC -DCUDACC_VER_MAJOR=11 -DCUDACC_VER_MINOR=8 -DCUDACC_VER_BUILD=89 -DCUDA_API_VER_MAJOR=11 -DCUDA_API_VER_MINOR=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii"

$ cicc --c++17 --gnu_version=130200 --display_error_number

--orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/hajes/bladebit/build/CMakeFiles/3.26.4/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed -arch compute_52 -m64 --no-version-ident -ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 --include_file_name "CMakeCUDACompilerId.fatbin.c" -tused --gen_module_id_file --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.c" --stub_file_name "tmp/CMakeCUDACompilerId.cudafe1.stub.c" --gen_device_file_name "tmp/CMakeCUDACompilerId.cudafe1.gpu" "tmp/CMakeCUDACompilerId.cpp1.ii" -o "tmp/CMakeCUDACompilerId.ptx"

$ ptxas -arch=sm_52 -m64 "tmp/CMakeCUDACompilerId.ptx" -o

"tmp/CMakeCUDACompilerId.sm_52.cubin"

$ fatbinary --create="tmp/CMakeCUDACompilerId.fatbin" -64

--cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " "--image3=kind=elf,sm=52,file=tmp/CMakeCUDACompilerId.sm_52.cubin" "--image3=kind=ptx,sm=52,file=tmp/CMakeCUDACompilerId.ptx" --embedded-fatbin="tmp/CMakeCUDACompilerId.fatbin.c"

$ gcc -DCUDA_ARCH_LIST=520 -E -x c++ -DCUDACC -DNVCC

-DCUDACC_VER_MAJOR=11 -DCUDACC_VER_MINOR=8 -DCUDACC_VER_BUILD=89 -DCUDA_API_VER_MAJOR=11 -DCUDA_API_VER_MINOR=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii"

$ cudafe++ --c++17 --gnu_version=130200 --display_error_number

--orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/hajes/bladebit/build/CMakeFiles/3.26.4/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed --m64 --parse_templates --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.cpp" --stub_file_name "CMakeCUDACompilerId.cudafe1.stub.c" --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" "tmp/CMakeCUDACompilerId.cpp4.ii"

$ gcc -D__CUDA_ARCH=520 -DCUDA_ARCH_LIST__=520 -c -x c++

-DCUDA_DOUBLE_MATH_FUNCTIONS -m64 "tmp/CMakeCUDACompilerId.cudafe1.cpp" -o "tmp/CMakeCUDACompilerId.o"

/usr/include/c++/10/type_traits:71:52: error: redefinition of ‘constexpr const _Tp std::integral_constant<_Tp, __v>::value’

 71 |   template<typename _Tp, _Tp __v>
    |                                                    ^                           

/usr/include/c++/10/type_traits:59:29: note: ‘constexpr const _Tp value’ previously declared here

 59 |       static constexpr _Tp                  value = __v;
    |                             ^~~~~

--error 0x1 --

Call Stack (most recent call first): /usr/share/cmake-3.26/Modules/CMakeDetermineCompilerId.cmake:8 (CMAKE_DETERMINE_COMPILER_ID_BUILD) /usr/share/cmake-3.26/Modules/CMakeDetermineCompilerId.cmake:53 (__determine_compiler_id_test) /usr/share/cmake-3.26/Modules/CMakeDetermineCUDACompiler.cmake:307 (CMAKE_DETERMINE_COMPILER_ID) CMakeLists.txt:45 (enable_language)

wallentx commented 10 months ago

13.2.0

I think the problem is the GCC version. I had to build with 12.3.0