Details
-
Type:
Bug
-
Status: Closed (View Workflow)
-
Priority:
High
-
Resolution: Fixed
-
Affects Version/s: 6.20/00
-
Component/s: Build System
-
Labels:None
-
Environment:
Gentoo Linux x86_64
Description
Configuring with -Dcuda=yes, CMake tells us:
-- Found CUDA: /opt/cuda (found version "10.2") |
-- The CUDA compiler identification is NVIDIA 10.2.89 |
-- Check for working CUDA compiler: /opt/cuda/bin/nvcc |
-- Check for working CUDA compiler: /opt/cuda/bin/nvcc -- works |
-- Detecting CUDA compiler ABI info
|
-- Detecting CUDA compiler ABI info - done
|
-- Could NOT find CUDNN (missing: CUDNN_INCLUDE_DIR CUDNN_LIBRARY)
|
-- CuDNN library not found
|
...
|
-- cudnn not found - use only Cuda+Cublas
|
...
|
However, failure late in the build is observed:
In file included from input_line_11:65: |
In file included from /var/tmp/portage/sci-physics/root-6.20.00/work/root-6.20.00_build/include/TMVA/MethodDL.h:51: |
In file included from /var/tmp/portage/sci-physics/root-6.20.00/work/root-6.20.00_build/include/TMVA/DNN/Architectures/Cuda.h:31: |
/var/tmp/portage/sci-physics/root-6.20.00/work/root-6.20.00_build/include/TMVA/DNN/Architectures/Cuda/CudaTensor.h:23:10: fatal error: 'cudnn.h' file not found |
#include "cudnn.h" |
^~~~~~~~~
|
#0 0x00007f63f84a574a llvm::sys::PrintStackTrace(llvm::raw_ostream&) /var/tmp/portage/sci-physics/root-6.20.00/work/root-6.20.00/interpreter/llvm/src/lib/Support/Unix/Signals.inc:402:3 |
#1 0x00007f63f84a34be llvm::sys::RunSignalHandlers() /var/tmp/portage/sci-physics/root-6.20.00/work/root-6.20.00/interpreter/llvm/src/lib/Support/Signals.cpp:50:12 |
#2 0x00007f63f84a34be llvm::sys::RunSignalHandlers() /var/tmp/portage/sci-physics/root-6.20.00/work/root-6.20.00/interpreter/llvm/src/lib/Support/Signals.cpp:46:6 |
#3 0x00007f63f84a36fe SignalHandler(int) /var/tmp/portage/sci-physics/root-6.20.00/work/root-6.20.00/interpreter/llvm/src/lib/Support/Unix/Signals.inc:242:31 |
#4 0x00007f63f575bed0 (/lib64/libc.so.6+0x38ed0) |
#5 0x00007f63f575be0b raise /usr/src/debug/sys-libs/glibc-2.29-r7/glibc-2.29/signal/../sysdeps/unix/sysv/linux/raise.c:51:1 |
#6 0x00007f63f5745535 abort /usr/src/debug/sys-libs/glibc-2.29-r7/glibc-2.29/stdlib/abort.c:81:7 |
#7 0x00007f63f574540f get_sysdep_segment_value /usr/src/debug/sys-libs/glibc-2.29-r7/glibc-2.29/intl/loadmsgcat.c:509:8 |
#8 0x00007f63f574540f _nl_load_domain /usr/src/debug/sys-libs/glibc-2.29-r7/glibc-2.29/intl/loadmsgcat.c:970:34 |
#9 0x00007f63f57536e2 (/lib64/libc.so.6+0x306e2) |
#10 0x00007f63f627a18a (/var/tmp/portage/sci-physics/root-6.20.00/work/root-6.20.00_build/lib/libCling.so.6.20+0x52718a) |
#11 0x00007f63f61fa792 std::default_delete<cling::IncrementalParser>::operator()(cling::IncrementalParser*) const /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/g++-v8/bits/unique_ptr.h:81:2 |
#12 0x00007f63f61fa792 std::default_delete<cling::IncrementalParser>::operator()(cling::IncrementalParser*) const /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/g++-v8/bits/unique_ptr.h:75:7 |
#13 0x00007f63f61fa792 std::unique_ptr<cling::IncrementalParser, std::default_delete<cling::IncrementalParser> >::reset(cling::IncrementalParser*) /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/g++-v8/bits/unique_ptr.h:382:17 |
#14 0x00007f63f61fa792 cling::Interpreter::~Interpreter() /var/tmp/portage/sci-physics/root-6.20.00/work/root-6.20.00/interpreter/cling/lib/Interpreter/Interpreter.cpp:406:23 |
#15 0x00007f63f61faad9 cling::Interpreter::~Interpreter() /var/tmp/portage/sci-physics/root-6.20.00/work/root-6.20.00/interpreter/cling/lib/Interpreter/Interpreter.cpp:407:3 |
#16 0x00007f63f6181633 std::unordered_set<clang::NamespaceDecl const*, std::hash<clang::NamespaceDecl const*>, std::equal_to<clang::NamespaceDecl const*>, std::allocator<clang::NamespaceDecl const*> >::~unordered_set() /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/g++-v8/bits/unordered_set.h:97:11 |
#17 0x00007f63f6181633 TCling::~TCling() /var/tmp/portage/sci-physics/root-6.20.00/work/root-6.20.00/core/metacling/src/TCling.cxx:1448:17 |
#18 0x00007f63f6181769 TCling::~TCling() /var/tmp/portage/sci-physics/root-6.20.00/work/root-6.20.00/core/metacling/src/TCling.cxx:1461:1 |
#19 0x00007f63f5a84c61 TROOT::~TROOT() /var/tmp/portage/sci-physics/root-6.20.00/work/root-6.20.00/core/base/src/TROOT.cxx:1031:32 |
#20 0x00007f63f575ea68 __run_exit_handlers /usr/src/debug/sys-libs/glibc-2.29-r7/glibc-2.29/stdlib/exit.c:109:8 |
#21 0x00007f63f575ebaa (/lib64/libc.so.6+0x3bbaa) |
#22 0x00007f63f5746ed2 __libc_start_main /usr/src/debug/sys-libs/glibc-2.29-r7/glibc-2.29/csu/../csu/libc-start.c:261:5 |
#23 0x00005646f9b8d18a _start (/var/tmp/portage/sci-physics/root-6.20.00/work/root-6.20.00_build/bin/rootcling+0x118a |
Â
So either, cudnn is a hard dependency now if CUDA is enabled (and CMake should reflect that) or CudaTensor should be disabled in the CUDA-but-not-CUDNN case.
Â
If CUDNN is meant as a separate feature, a -Dcudnn=OFF / ON switch should be added (currently, only autodetection => magic dependency seems to be done).
Â
Note also this downstream bug: https://bugs.gentoo.org/711470
Â