PrincetonVision / marvin

Marvin: A Minimalist GPU-only N-Dimensional ConvNets Framework
MIT License
421 stars 137 forks source link

configure problem #34

Open bcd33bcd opened 8 years ago

bcd33bcd commented 8 years ago

I try to configure marvin in ubuntu 14.10 gcc 5.2.1 cuda 7.5 cudnn V5 but failed. Could you tell me your ubuntu & gcc version in success case?

danielsuo commented 8 years ago

We have tested in 14.04, 15.04 and 15.10 using gcc 5.2.1.

What are the error messages you receive? On Wed, Apr 13, 2016 at 8:59 PM bcd33bcd notifications@github.com wrote:

I try to configure marvin in ubuntu 14.10 gcc 5.2.1 cuda 7.5 cudnn V5 but failed. Could you tell me your ubuntu & gcc version in success case?

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/PrincetonVision/marvin/issues/34

bcd33bcd commented 8 years ago

That the huge number of errors... and now I reinstall my ubuntu with version 14.04 ,so the gcc aslo changed to version 4.8.4.

marvin.hpp(586): error: identifier "CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD" is undefined

marvin.hpp(596): error: identifier "CUDNN_CONVOLUTION_BWD_DATA_ALGO_WINOGRAD" is undefined

marvin.hpp(3969): error: argument of type "std::size_t" is incompatible with parameter of type "const int *"

marvin.hpp(3970): error: too many arguments in function call

marvin.hpp(4359): error: identifier "cudnnDropoutDescriptor_t" is undefined

/usr/include/c++/4.8/bits/ptr_traits.h(124): error: incomplete type is not allowed
          detected during:
            instantiation of class "std::__ptrtr_pointer_to<_Ptr> [with _Ptr=<error-type>]" 
(137): here
            instantiation of class "std::pointer_traits<_Ptr> [with _Ptr=<error-type>]" 
/usr/include/c++/4.8/bits/alloc_traits.h(109): here
            instantiation of class "std::allocator_traits<_Alloc> [with _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/ext/alloc_traits.h(123): here
            instantiation of class "__gnu_cxx::__alloc_traits<_Alloc> [with _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/stl_vector.h(75): here
            instantiation of class "std::_Vector_base<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/stl_vector.h(210): here
            instantiation of class "std::vector<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
marvin.hpp(4359): here

/usr/include/c++/4.8/bits/ptr_traits.h(142): error: incomplete type is not allowed
          detected during:
            instantiation of class "std::pointer_traits<_Ptr> [with _Ptr=<error-type>]" 
/usr/include/c++/4.8/bits/alloc_traits.h(109): here
            instantiation of class "std::allocator_traits<_Alloc> [with _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/ext/alloc_traits.h(123): here
            instantiation of class "__gnu_cxx::__alloc_traits<_Alloc> [with _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/stl_vector.h(75): here
            instantiation of class "std::_Vector_base<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/stl_vector.h(210): here
            instantiation of class "std::vector<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
marvin.hpp(4359): here

/usr/include/c++/4.8/bits/ptr_traits.h(63): error: name followed by "::" must be a class or namespace name
          detected during:
            instantiation of class "std::__ptrtr_diff_type<_Tp, <unnamed>> [with _Tp=<error-type>, <unnamed>=<error-constant>]" 
(144): here
            instantiation of class "std::pointer_traits<_Ptr> [with _Ptr=<error-type>]" 
/usr/include/c++/4.8/bits/alloc_traits.h(109): here
            instantiation of class "std::allocator_traits<_Alloc> [with _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/ext/alloc_traits.h(123): here
            instantiation of class "__gnu_cxx::__alloc_traits<_Alloc> [with _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/stl_vector.h(75): here
            instantiation of class "std::_Vector_base<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/stl_vector.h(210): here
            instantiation of class "std::vector<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
marvin.hpp(4359): here

/usr/include/c++/4.8/bits/ptr_traits.h(147): error: incomplete type is not allowed
          detected during:
            instantiation of type "std::pointer_traits<_Ptr>::rebind<const <error-type>> [with _Ptr=<error-type>]" 
/usr/include/c++/4.8/bits/alloc_traits.h(109): here
            instantiation of class "std::allocator_traits<_Alloc> [with _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/ext/alloc_traits.h(123): here
            instantiation of class "__gnu_cxx::__alloc_traits<_Alloc> [with _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/stl_vector.h(75): here
            instantiation of class "std::_Vector_base<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/stl_vector.h(210): here
            instantiation of class "std::vector<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
marvin.hpp(4359): here

/usr/include/c++/4.8/bits/ptr_traits.h(147): error: incomplete type is not allowed
          detected during:
            instantiation of type "std::pointer_traits<_Ptr>::rebind<void> [with _Ptr=<error-type>]" 
/usr/include/c++/4.8/bits/alloc_traits.h(120): here
            instantiation of class "std::allocator_traits<_Alloc> [with _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/ext/alloc_traits.h(123): here
            instantiation of class "__gnu_cxx::__alloc_traits<_Alloc> [with _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/stl_vector.h(75): here
            instantiation of class "std::_Vector_base<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/stl_vector.h(210): here
            instantiation of class "std::vector<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
marvin.hpp(4359): here

/usr/include/c++/4.8/bits/ptr_traits.h(147): error: incomplete type is not allowed
          detected during:
            instantiation of type "std::pointer_traits<_Ptr>::rebind<const void> [with _Ptr=<error-type>]" 
/usr/include/c++/4.8/bits/alloc_traits.h(131): here
            instantiation of class "std::allocator_traits<_Alloc> [with _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/ext/alloc_traits.h(123): here
            instantiation of class "__gnu_cxx::__alloc_traits<_Alloc> [with _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/stl_vector.h(75): here
            instantiation of class "std::_Vector_base<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/stl_vector.h(210): here
            instantiation of class "std::vector<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
marvin.hpp(4359): here

/usr/include/c++/4.8/type_traits(1531): error: incomplete type is not allowed
          detected during:
            instantiation of class "std::make_unsigned<_Tp> [with _Tp=<error-type>]" 
/usr/include/c++/4.8/bits/alloc_traits.h(153): here
            instantiation of class "std::allocator_traits<_Alloc> [with _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/ext/alloc_traits.h(123): here
            instantiation of class "__gnu_cxx::__alloc_traits<_Alloc> [with _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/stl_vector.h(75): here
            instantiation of class "std::_Vector_base<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/stl_vector.h(210): here
            instantiation of class "std::vector<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
marvin.hpp(4359): here

/usr/include/c++/4.8/bits/alloc_traits.h(202): error: incomplete type is not allowed
          detected during:
            instantiation of type "std::allocator_traits<_Alloc>::rebind_alloc<<error-type>> [with _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/ext/alloc_traits.h(196): here
            instantiation of class "__gnu_cxx::__alloc_traits<_Alloc>::rebind<_Tp> [with _Alloc=std::allocator<<error-type>>, _Tp=<error-type>]" 
/usr/include/c++/4.8/bits/stl_vector.h(75): here
            instantiation of class "std::_Vector_base<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/stl_vector.h(210): here
            instantiation of class "std::vector<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
marvin.hpp(4359): here

/usr/include/c++/4.8/bits/alloc_traits.h(90): error: name followed by "::" must be a class or namespace name
          detected during:
            instantiation of class "std::allocator_traits<_Alloc> [with _Alloc=<error-type>]" 
/usr/include/c++/4.8/ext/alloc_traits.h(123): here
            instantiation of class "__gnu_cxx::__alloc_traits<_Alloc> [with _Alloc=<error-type>]" 
/usr/include/c++/4.8/bits/stl_vector.h(76): here
            instantiation of class "std::_Vector_base<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/stl_vector.h(210): here
            instantiation of class "std::vector<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
marvin.hpp(4359): here

/usr/include/c++/4.8/bits/stl_vector.h(80): error: not a class or struct name
          detected during:
            instantiation of class "std::_Vector_base<_Tp, _Alloc>::_Vector_impl [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
(164): here
            instantiation of class "std::_Vector_base<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
(210): here
            instantiation of class "std::vector<_Tp, _Alloc> [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
marvin.hpp(4359): here

marvin.hpp(4376): error: identifier "cudnnCreateDropoutDescriptor" is undefined

marvin.hpp(4409): error: identifier "cudnnDropoutGetStatesSize" is undefined

marvin.hpp(4412): error: identifier "cudnnDropoutGetReserveSpaceSize" is undefined

marvin.hpp(4415): error: identifier "cudnnSetDropoutDescriptor" is undefined

marvin.hpp(4427): error: identifier "cudnnDestroyDropoutDescriptor" is undefined

marvin.hpp(4435): error: identifier "cudnnDropoutForward" is undefined

marvin.hpp(4456): error: identifier "cudnnDropoutBackward" is undefined

marvin.hpp(4582): error: argument of type "cudnnActivationDescriptor_t" is incompatible with parameter of type "cudnnActivationMode_t"

marvin.hpp(4594): error: argument of type "cudnnActivationDescriptor_t" is incompatible with parameter of type "cudnnActivationMode_t"

marvin.hpp(4618): error: argument of type "std::size_t" is incompatible with parameter of type "const int *"

marvin.hpp(4621): error: too many arguments in function call

marvin.hpp(6465): error: argument of type "const void *" is incompatible with parameter of type "cudnnTensorDescriptor_t"

marvin.hpp(6475): error: argument of type "half *" is incompatible with parameter of type "double"

marvin.hpp(6477): error: argument of type "double" is incompatible with parameter of type "const void *"

marvin.hpp(6478): error: too many arguments in function call

/usr/include/c++/4.8/bits/stl_vector.h(87): error: "_Tp_alloc_type" is not a nonstatic data member or base class of class "std::_Vector_base<<error-type>, std::allocator<<error-type>>>::_Vector_impl"
          detected during:
            instantiation of "std::_Vector_base<_Tp, _Alloc>::_Vector_impl::_Vector_impl() [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
(125): here
            instantiation of "std::_Vector_base<_Tp, _Alloc>::_Vector_base() [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
(249): here
            instantiation of "std::vector<_Tp, _Alloc>::vector() [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
marvin.hpp(4379): here

/usr/include/c++/4.8/bits/stl_vector.h(174): error: class "std::_Vector_base<_Tp, _Alloc>::_Vector_impl [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" has no member "deallocate"
          detected during:
            instantiation of "void std::_Vector_base<_Tp, _Alloc>::_M_deallocate(std::_Vector_base<_Tp, _Alloc>::pointer, std::size_t) [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
(160): here
            instantiation of "std::_Vector_base<_Tp, _Alloc>::~_Vector_base() [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
(249): here
            instantiation of "std::vector<_Tp, _Alloc>::vector() [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
marvin.hpp(4379): here

/usr/include/c++/4.8/bits/stl_vector.h(168): error: class "std::_Vector_base<_Tp, _Alloc>::_Vector_impl [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" has no member "allocate"
          detected during:
            instantiation of "std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
/usr/include/c++/4.8/bits/vector.tcc(549): here
            instantiation of "void std::vector<_Tp, _Alloc>::_M_default_append(std::vector<_Tp, _Alloc>::size_type) [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
(667): here
            instantiation of "void std::vector<_Tp, _Alloc>::resize(std::vector<_Tp, _Alloc>::size_type) [with _Tp=<error-type>, _Alloc=std::allocator<<error-type>>]" 
marvin.hpp(4369): here

33 errors detected in the compilation of "/tmp/tmpxft_00005643_00000000-9_marvin.cpp1.ii".
toki2015 commented 8 years ago

Did you use "-L/.../cuda7.5/lib64" ?

davidsteines commented 8 years ago

I got the same errors when I tried compiling earlier today. It turned out that I had an older version of cudnn in my cuda7.5/lib64 and cuda7.5/include directories. Make sure that you don't have a prior version lurking somewhere on your path that is being referenced over v5.

bcd33bcd commented 8 years ago

Yep, I remove the older version of cudnn in cuda7.5/lib64 and the huge number of errors disappeared. But the new error occur.

/usr/bin/ld: skipping incompatible /usr/local/cuda/lib64/libcudnn.so when searching for -lcudnn
/usr/bin/ld: skipping incompatible /usr/local/cudnn/v5/lib64/libcudnn.so when searching for -lcudnn
/usr/bin/ld: skipping incompatible /usr/local/cuda/bin/../targets/x86_64-linux/lib/libcudnn.so when searching for -lcudnn
/usr/bin/ld: cannot find -lcudnn
collect2: error: ld returned 1 exit status

My ubuntu version is 14.04-64bit and my cudnn aslo is 64-bit.