GithubHelp home page GithubHelp logo

wichtounet / dll Goto Github PK

View Code? Open in Web Editor NEW
666.0 59.0 161.0 17.41 MB

Fast Deep Learning Library (DLL) for C++ (ANNs, CNNs, RBMs, DBNs...)

License: MIT License

C++ 89.29% Makefile 10.07% Python 0.23% Shell 0.42%
c-plus-plus cpp cpp11 cpp14 performance machine-learning deep-learning artificial-neural-networks gpu rbm

dll's Issues

The version of cuBLAS & cuDNN

I want to use below options:
-DETL_CUBLAS_MODE
-DETL_CUDNN_MODE

So, I need to install cuBLAS & cuDNN.

What is the version of those packages?

Please fix the folder name.

In the most recent release, @ is included in the folder name.
: etl -> etl @ f1e4c22

Because of this, I can not download the folder in Ubuntu.

Please fix the folder name.

AutoEncoder Example doesn't be compiled.

Hi!

Thanks to you, I have made the build environment and have compiled some examples (mnist_cnn.cpp, mnist_mlp.cpp).

However, auto encoder examples (mnist_ae.cpp, mnist_deep_ae.cpp) doesn't be compiled with following errors:

clang++-3.9 -std=c++1y -I/home/kjlee/lib/dll/include -I/home/kjlee/lib/dll/Catch/include -I/home/kjlee/lib/dll/etl/include -I/home/kjlee/lib/dll/etl/lib/include -I/home/kjlee/lib/dll/mnist/include -I/home/kjlee/lib/dll/cifar-10/include -I/home/kjlee/lib/dll/nice-svm/include -lpthread mnist_ae.cpp
In file included from mnist_ae.cpp:10:
In file included from /home/kjlee/lib/dll/include/dll/datasets.hpp:143:
/home/kjlee/lib/dll/include/dll/datasets/mnist_ae.hpp:98:88: error: missing default argument on parameter 'parameters'
auto make_mnist_ae_generator_train(size_t start = 0, size_t limit = 0, Parameters&&... parameters){
^
/home/kjlee/lib/dll/include/dll/datasets/mnist_ae.hpp:140:9: note: in instantiation of function template specialization 'dll::make_mnist_ae_generator_train<dll::batch_size<256>, dll::scale_pre<255> >' requested
here
make_mnist_ae_generator_train(0UL, 60000UL, std::forward(parameters)...),
^
mnist_ae.cpp:17:25: note: in instantiation of function template specialization 'dll::make_mnist_ae_dataset<dll::batch_size<256>, dll::scale_pre<255> >' requested here
auto dataset = dll::make_mnist_ae_dataset(dll::batch_size<256>{}, dll::scale_pre<255>{});
^
In file included from mnist_ae.cpp:10:
In file included from /home/kjlee/lib/dll/include/dll/datasets.hpp:143:
/home/kjlee/lib/dll/include/dll/datasets/mnist_ae.hpp:98:88: error: missing default argument on parameter 'parameters'
auto make_mnist_ae_generator_train(size_t start = 0, size_t limit = 0, Parameters&&... parameters){
^
/home/kjlee/lib/dll/include/dll/datasets/mnist_ae.hpp:98:88: error: missing default argument on parameter 'parameters'
/home/kjlee/lib/dll/include/dll/datasets/mnist_ae.hpp:99:12: note: in instantiation of function template specialization 'dll::make_mnist_ae_generator_train<unsigned long &, dll::batch_size<256>,
dll::scale_pre<255> >' requested here
return make_mnist_ae_generator_train("mnist", start, limit, std::forward(parameters)...);
^
/home/kjlee/lib/dll/include/dll/datasets/mnist_ae.hpp:140:9: note: in instantiation of function template specialization 'dll::make_mnist_ae_generator_train<dll::batch_size<256>, dll::scale_pre<255> >' requested
here
make_mnist_ae_generator_train(0UL, 60000UL, std::forward(parameters)...),
^
mnist_ae.cpp:17:25: note: in instantiation of function template specialization 'dll::make_mnist_ae_dataset<dll::batch_size<256>, dll::scale_pre<255> >' requested here
auto dataset = dll::make_mnist_ae_dataset(dll::batch_size<256>{}, dll::scale_pre<255>{});
^
In file included from mnist_ae.cpp:10:
In file included from /home/kjlee/lib/dll/include/dll/datasets.hpp:143:
/home/kjlee/lib/dll/include/dll/datasets/mnist_ae.hpp:98:88: error: missing default argument on parameter 'parameters'
auto make_mnist_ae_generator_train(size_t start = 0, size_t limit = 0, Parameters&&... parameters){
^
/home/kjlee/lib/dll/include/dll/datasets/mnist_ae.hpp:98:88: error: missing default argument on parameter 'parameters'
/home/kjlee/lib/dll/include/dll/datasets/mnist_ae.hpp:112:87: error: missing default argument on parameter 'parameters'
auto make_mnist_ae_generator_test(size_t start = 0, size_t limit = 0, Parameters&&... parameters){
^
/home/kjlee/lib/dll/include/dll/datasets/mnist_ae.hpp:141:9: note: in instantiation of function template specialization 'dll::make_mnist_ae_generator_test<dll::batch_size<256>, dll::scale_pre<255> >' requested
here
make_mnist_ae_generator_test(0UL, 10000UL, std::forward(parameters)...));
^
mnist_ae.cpp:17:25: note: in instantiation of function template specialization 'dll::make_mnist_ae_dataset<dll::batch_size<256>, dll::scale_pre<255> >' requested here
auto dataset = dll::make_mnist_ae_dataset(dll::batch_size<256>{}, dll::scale_pre<255>{});
^
In file included from mnist_ae.cpp:10:
In file included from /home/kjlee/lib/dll/include/dll/datasets.hpp:143:
/home/kjlee/lib/dll/include/dll/datasets/mnist_ae.hpp:112:87: error: missing default argument on parameter 'parameters'
auto make_mnist_ae_generator_test(size_t start = 0, size_t limit = 0, Parameters&&... parameters){
^
/home/kjlee/lib/dll/include/dll/datasets/mnist_ae.hpp:112:87: error: missing default argument on parameter 'parameters'
/home/kjlee/lib/dll/include/dll/datasets/mnist_ae.hpp:113:12: note: in instantiation of function template specialization 'dll::make_mnist_ae_generator_test<unsigned long &, dll::batch_size<256>,
dll::scale_pre<255> >' requested here
return make_mnist_ae_generator_test("mnist", start, limit, std::forward(parameters)...);
^
/home/kjlee/lib/dll/include/dll/datasets/mnist_ae.hpp:141:9: note: in instantiation of function template specialization 'dll::make_mnist_ae_generator_test<dll::batch_size<256>, dll::scale_pre<255> >' requested
here
make_mnist_ae_generator_test(0UL, 10000UL, std::forward(parameters)...));
^
mnist_ae.cpp:17:25: note: in instantiation of function template specialization 'dll::make_mnist_ae_dataset<dll::batch_size<256>, dll::scale_pre<255> >' requested here
auto dataset = dll::make_mnist_ae_dataset(dll::batch_size<256>{}, dll::scale_pre<255>{});
^
In file included from mnist_ae.cpp:10:
In file included from /home/kjlee/lib/dll/include/dll/datasets.hpp:143:
/home/kjlee/lib/dll/include/dll/datasets/mnist_ae.hpp:112:87: error: missing default argument on parameter 'parameters'
auto make_mnist_ae_generator_test(size_t start = 0, size_t limit = 0, Parameters&&... parameters){
^
/home/kjlee/lib/dll/include/dll/datasets/mnist_ae.hpp:112:87: error: missing default argument on parameter 'parameters'
10 errors generated.

Please help me.

Difficulty in making compile environment.

I'm sorry to have to ask too many questions.

I'm a hardware engineer who researches about A.I. chip.

I really want to use your DLL framework for my research, but I have some trouble in making compile environment.

My environments is:

OS: Ubuntu 14.04
g++: 4.9
clang++: 3.4 (Installing clang++3.7 in Ubuntu 14.04 is hard..I try to various way but it doesn't work)
CUDA: cuda-7.5
cuDNN: v5 for cuda-7.5
2 GPU

My Makefile is:

DLL_HOME = /home/kjlee/lib/dll
CUDA_HOME = /usr/local/cuda-8.0

CLANG = clang++
CXXFLAGS += -std=c++14
LDFLAGS += -lpthread

##########################################################

DLL

##########################################################
CPPFLAGS += -I${DLL_HOME}/include
CPPFLAGS += -I${DLL_HOME}/Catch/include
CPPFLAGS += -I${DLL_HOME}/etl/include
CPPFLAGS += -I${DLL_HOME}/etl/lib/include
CPPFLAGS += -I${DLL_HOME}/mnist/include
CPPFLAGS += -I${DLL_HOME}/cifar-10/include
CPPFLAGS += -I${DLL_HOME}/nice-svm/include

DLLFLAGS += -DETL_PARALLEL
DLLFLAGS += -DETL_VECTORIZE_FULL
##DLLFLAGS += -DETL_BLAS_MODE
DLLFLAGS += -DETL_CUBLAS_MODE
DLLFLAGS += -DETL_CUDNN_MODE
##DLLFLAGS += -DETL_EGBLAS_MODE

##########################################################

CUDA

##########################################################
CPPFLAGS += -I${CUDA_HOME}/include
LDFLAGS += -L${CUDA_HOME}/lib64 -lcublas -lcudart

##########################################################

MAKE

##########################################################
all:

main:
${CLANG} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DLLFLAGS} mnist_ae.cpp

I want to know your environment.
If you use Ubuntu 14.04, please let me know how to install clang++3.7.

Thanks.

Build issue on g++ 7.3.0

Build issue? Any advice appreciated, thanks.

root@mail:~/dll/dll# make
-e \x1b[31;01m[release_debug]\x1b[0m Compile \x1b[35;01mprocessor/src/processor.cpp\x1b[0m
In file included from etl/include/etl/vectorization.hpp:59:0,
                 from etl/include/etl/etl.hpp:29,
                 from include/dll/rbm/dyn_rbm_impl.hpp:10,
                 from include/dll/rbm/dyn_rbm.hpp:10,
                 from include/dll/rbm/rbm.hpp:16,
                 from include/dll/processor/processor.hpp:20,
                 from processor/include/parse_utils.hpp:16,
                 from processor/src/processor.cpp:20:
etl/include/etl/avx512_vectorization.hpp:504:15: error: explicit specialization in non-namespace scope ‘struct etl::avx512_vec’
     template <>
               ^
etl/include/etl/avx512_vectorization.hpp:505:56: error: template-id ‘mul<true>’ in declaration of primary template
     ETL_INLINE_VEC_512 mul<true>(__m512 lhs, __m512 rhs) {
                                                        ^
etl/include/etl/avx512_vectorization.hpp:514:25: error: too many template-parameter-lists
     ETL_INLINE_VEC_512D mul(__m512d lhs, __m512d rhs) {
                         ^~~
etl/include/etl/avx512_vectorization.hpp:521:15: error: explicit specialization in non-namespace scope ‘struct etl::avx512_vec’
     template <>
               ^
etl/include/etl/avx512_vectorization.hpp:522:59: error: template-id ‘mul<true>’ in declaration of primary template
     ETL_INLINE_VEC_512D mul<true>(__m512d lhs, __m512d rhs) {
                                                           ^
etl/include/etl/avx512_vectorization.hpp:531:24: error: too many template-parameter-lists
     ETL_INLINE_VEC_512 div(__m512 lhs, __m512 rhs) {
                        ^~~
etl/include/etl/avx512_vectorization.hpp:538:15: error: explicit specialization in non-namespace scope ‘struct etl::avx512_vec’
     template <>
               ^
etl/include/etl/avx512_vectorization.hpp:539:24: error: ‘__always_inline__’ attribute ignored [-Werror=attributes]
     ETL_INLINE_VEC_512 div<true>(__m512 lhs, __m512 rhs) {
                        ^~~
etl/include/etl/avx512_vectorization.hpp:539:24: error: ‘__gnu_inline__’ attribute ignored [-Werror=attributes]
etl/include/etl/avx512_vectorization.hpp:539:24: error: ‘__artificial__’ attribute ignored [-Werror=attributes]
etl/include/etl/avx512_vectorization.hpp:539:24: error: expected ‘;’ at end of member declaration
etl/include/etl/avx512_vectorization.hpp:539:27: error: expected unqualified-id before ‘<’ token
     ETL_INLINE_VEC_512 div<true>(__m512 lhs, __m512 rhs) {
                           ^
etl/include/etl/avx512_vectorization.hpp:548:25: error: too many template-parameter-lists
     ETL_INLINE_VEC_512D div(__m512d lhs, __m512d rhs) {
                         ^~~
etl/include/etl/avx512_vectorization.hpp:555:15: error: explicit specialization in non-namespace scope ‘struct etl::avx512_vec’
     template <>
               ^
etl/include/etl/avx512_vectorization.hpp:556:25: error: ‘__always_inline__’ attribute ignored [-Werror=attributes]
     ETL_INLINE_VEC_512D div<true>(__m512d lhs, __m512d rhs) {
                         ^~~
etl/include/etl/avx512_vectorization.hpp:556:25: error: ‘__gnu_inline__’ attribute ignored [-Werror=attributes]
etl/include/etl/avx512_vectorization.hpp:556:25: error: ‘__artificial__’ attribute ignored [-Werror=attributes]
etl/include/etl/avx512_vectorization.hpp:556:25: error: expected ‘;’ at end of member declaration
etl/include/etl/avx512_vectorization.hpp:556:25: error: redeclaration of ‘__m512d etl::avx512_vec::div’
etl/include/etl/avx512_vectorization.hpp:539:24: note: previous declaration ‘__m512 etl::avx512_vec::div’
     ETL_INLINE_VEC_512 div<true>(__m512 lhs, __m512 rhs) {
                        ^~~
etl/include/etl/avx512_vectorization.hpp:556:28: error: expected unqualified-id before ‘<’ token
     ETL_INLINE_VEC_512D div<true>(__m512d lhs, __m512d rhs) {
                            ^
etl/include/etl/avx512_vectorization.hpp: In static member function ‘static __m512 etl::avx512_vec::mul(__m512, __m512)’:
etl/include/etl/avx512_vectorization.hpp:505:53: error: unused parameter ‘rhs’  -Werror=unused-parameter]
     ETL_INLINE_VEC_512 mul<true>(__m512 lhs, __m512 rhs) {
                                                     ^~~
etl/include/etl/avx512_vectorization.hpp: In static member function ‘static __m512d etl::avx512_vec::mul(__m512d, __m512d)’:
etl/include/etl/avx512_vectorization.hpp:522:56: error: unused parameter ‘rhs’  -Werror=unused-parameter]
     ETL_INLINE_VEC_512D mul<true>(__m512d lhs, __m512d rhs) {
                                                        ^~~
etl/include/etl/avx512_vectorization.hpp: At global scope:
etl/include/etl/avx512_vectorization.hpp:634:1: error: ‘ETL_OUT_VEC_512’ does not name a type; did you mean ‘ETL_OUT_VEC_512D’?
 ETL_OUT_VEC_512 avx512_vec::mul<true>(__m512 lhs, __m512 rhs) {
 ^~~~~~~~~~~~~~~
 ETL_OUT_VEC_512D
etl/include/etl/avx512_vectorization.hpp:643:18: error: template-id ‘mul<true>’ for ‘__m512d etl::avx512_vec::mul(__m512d, __m512d)’ does not match any template declaration
 ETL_OUT_VEC_512D avx512_vec::mul<true>(__m512d lhs, __m512d rhs) {
                  ^~~~~~~~~~
etl/include/etl/avx512_vectorization.hpp:522:25: note: candidates are: static __m512d etl::avx512_vec::mul(__m512d, __m512d)
     ETL_INLINE_VEC_512D mul<true>(__m512d lhs, __m512d rhs) {
                         ^~~~~~~~~
etl/include/etl/avx512_vectorization.hpp:505:24: note:                 static __m512 etl::avx512_vec::mul(__m512, __m512)
     ETL_INLINE_VEC_512 mul<true>(__m512 lhs, __m512 rhs) {
                        ^~~~~~~~~
etl/include/etl/avx512_vectorization.hpp:497:24: note:                 template<bool Complex> static __m512 etl::avx512_vec::mul(__m512, __m512)
     ETL_INLINE_VEC_512 mul(__m512 lhs, __m512 rhs) {
                        ^~~
etl/include/etl/avx512_vectorization.hpp:652:1: error: ‘ETL_OUT_VEC_512’ does not name a type; did you mean ‘ETL_OUT_VEC_512D’?
 ETL_OUT_VEC_512 avx512_vec::div<true>(__m512 lhs, __m512 rhs) {
 ^~~~~~~~~~~~~~~
 ETL_OUT_VEC_512D
etl/include/etl/avx512_vectorization.hpp:661:33: error: expected initializer before ‘<’ token
 ETL_OUT_VEC_512D avx512_vec::div<true>(__m512d lhs, __m512d rhs) {
                                 ^
cc1plus: all warnings being treated as errors
Makefile:172: recipe for target 'release_debug/processor/src/processor.cpp.o' failed
make: *** [release_debug/processor/src/processor.cpp.o] Error 1
root@mail:~/dll/dll# g++ --version
g++ (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Link error compiling example

Hi,

I am using the following make file to compile example/src/mnist_ae.cpp.

DLL_HOME = /home/tcn/Downloads/dll/
2 CUDA_HOME = /usr/local/cuda
3
4 CLANG = g++
5 CXXFLAGS += -std=c++14
6 LDFLAGS += -lpthread
7
8 ##########################################################
9 #DLL
10 ##########################################################
11 CPPFLAGS += -I${DLL_HOME}/include
12 CPPFLAGS += -I${DLL_HOME}/Catch/include
13 CPPFLAGS += -I${DLL_HOME}/etl/include
14 CPPFLAGS += -I${DLL_HOME}/etl/lib/include
15 CPPFLAGS += -I${DLL_HOME}/mnist/include
16 CPPFLAGS += -I${DLL_HOME}/cifar-10/include
17 CPPFLAGS += -I${DLL_HOME}/nice-svm/include
18
19 DLLFLAGS += -DETL_PARALLEL
20 DLLFLAGS += -DETL_VECTORIZE_FULL
21 ##DLLFLAGS += -DETL_BLAS_MODE
22 DLLFLAGS += -DETL_CUBLAS_MODE
23 DLLFLAGS += -DETL_CUDNN_MODE
24 #DLLFLAGS += -DETL_EGBLAS_MODE
25
26 ##########################################################
27 #CUDA
28 ##########################################################
29 CPPFLAGS += -I${CUDA_HOME}/include
30 LDFLAGS += -L${CUDA_HOME}/lib64 -lcublas -lcudart
31
32 ##########################################################
33 #MAKE
34 ##########################################################
35 all:
36
37 main:
38 ${CLANG} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DLLFLAGS} mnist_ae.cpp

However, it has the following the link error:mnist_ae.cpp:(.text.ZN3etl4impl5cudnn18create_tensor_flatIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT[ZN3etl4impl5cudnn18create_tensor_flatIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT]+0x45): undefined reference to cudnnGetErrorString' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn18create_tensor_flatIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT_[_ZN3etl4impl5cudnn18create_tensor_flatIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT_]+0xec): undefined reference to cudnnSetTensor4dDescriptor'
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn18create_tensor_flatIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT[ZN3etl4impl5cudnn18create_tensor_flatIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT]+0x119): undefined reference to cudnnGetErrorString' /tmp/ccwc5ErW.o: In function cudnnTensorStruct* etl::impl::cudnn::create_tensor_flat<etl::dyn_matrix_impl<float, (etl::order)0, 2ul>&>(etl::dyn_matrix_impl<float, (etl::order)0, 2ul>&)':
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn18create_tensor_flatIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT[ZN3etl4impl5cudnn18create_tensor_flatIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT]+0x1c): undefined reference to cudnnCreateTensorDescriptor' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn18create_tensor_flatIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT_[_ZN3etl4impl5cudnn18create_tensor_flatIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT_]+0x45): undefined reference to cudnnGetErrorString'
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn18create_tensor_flatIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT[ZN3etl4impl5cudnn18create_tensor_flatIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT]+0xec): undefined reference to cudnnSetTensor4dDescriptor' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn18create_tensor_flatIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT_[_ZN3etl4impl5cudnn18create_tensor_flatIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT_]+0x119): undefined reference to cudnnGetErrorString'

Seems that it cannot link to cuda. However, my cuda is located at /usr/local/cuda. And my machine has a tensorflow, and it can link to cuda and run.

Can you help me rule out the problem?

Thanks.

Update?

Will you keep update?
Dll is a good deep learning lib.

errors while compiling

I compile the dll on Mac with clang-900.0.39.2, but I get the following errors:

dll/etl/include/etl/impl/std/fft.hpp:638:22: error: use of undeclared identifier 'M_PIl'; did you mean 'P_PID'?
dll/etl/include/etl/op/unary/exp.hpp:62:19: error: no member named 'exp' in 'etl::no_vec'
dll/etl/include/etl/op/unary/log.hpp:62:19: error: no member named 'log' in 'etl::no_vec'
dll/etl/include/etl/expr/unary_expr.hpp:169:34: error: no matching member function for call to 'load'

any solutions?

Compilation error when use -DETL_BLAS_MODE

Hello.
When I use -DETL_BLAS_MODE flag to compile, I get these error. I have already installed liblapack.

clang++-4.0 -DETL_PARALLEL -DETL_VECTORIZE_FUL -DETL_BLAS_MODE -std=c++1z -lpthread -llapack -lblas  main.cpp
In file included from main.cpp:8:
In file included from dll/neural/conv_layer.hpp:11:
In file included from dll/neural/dyn_conv_layer.hpp:10:
In file included from dll/neural/dyn_conv_layer_impl.hpp:11:
In file included from dll/neural_layer.hpp:15:
In file included from dll/etl/etl.hpp:108:
In file included from dll/etl/expr/gemm_expr.hpp:15:
dll/etl/impl/blas/gemm.hpp:952:32: error: use of undeclared identifier 'mkl_get_max_threads'
            auto mkl_threads = mkl_get_max_threads();
                               ^
dll/etl/impl/blas/gemm.hpp:954:13: error: use of undeclared identifier 'mkl_set_num_threads'
            mkl_set_num_threads(1);
            ^
dll/etl/impl/blas/gemm.hpp:1250:32: error: use of undeclared identifier 'mkl_get_max_threads'
            auto mkl_threads = mkl_get_max_threads();
                               ^
dll/etl/impl/blas/gemm.hpp:1252:13: error: use of undeclared identifier 'mkl_set_num_threads'
            mkl_set_num_threads(1);
            ^
4 errors generated.

any solutions?

ETL_CUBLAS_MODE & ETL_CUDNN_MODE

image

I want to use DLL with GPU.
So I install cuda-toolkit 7.5 & cudnn (corresponding version of cuda-toolkit 7.5).
I write down my Makefile as shown above (-DETL_CUBLAS_MODE -DETL_CUDNN_MODE).

However,
It make error when I execute make ae:

kjlee@ubuntu:/Study/DLL/1_test$ make ae
clang++-3.9 -std=c++14 -I/home/kjlee/lib/dll/include -I/home/kjlee/lib/dll/Catch/include -I/home/kjlee/lib/dll/etl/include -I/home/kjlee/lib/dll/etl/lib/include -I/home/kjlee/lib/dll/mnist/include -I/home/kjlee/lib/dll/cifar-10/include -I/home/kjlee/lib/dll/nice-svm/include -I/home/kjlee/lib/cuda-7.5/include -lpthread -L/home/kjlee/lib/cuda-7.5/lib -L/home/kjlee/lib/cuda-7.5/lib64 -lcublas -lcudart -DETL_PARALLEL -DETL_VECTORIZE_FULL mnist_ae.cpp
/usr/bin/ld: skipping incompatible /home/kjlee/lib/cuda-7.5/lib/libcudart.so when searching for -lcudart
kjlee@ubuntu:
/Study/DLL/1_test$ vi Makefile
kjlee@ubuntu:~/Study/DLL/1_test$ make ae
clang++-3.9 -std=c++14 -I/home/kjlee/lib/dll/include -I/home/kjlee/lib/dll/Catch/include -I/home/kjlee/lib/dll/etl/include -I/home/kjlee/lib/dll/etl/lib/include -I/home/kjlee/lib/dll/mnist/include -I/home/kjlee/lib/dll/cifar-10/include -I/home/kjlee/lib/dll/nice-svm/include -I/home/kjlee/lib/cuda-7.5/include -lpthread -L/home/kjlee/lib/cuda-7.5/lib -L/home/kjlee/lib/cuda-7.5/lib64 -lcublas -lcudart -DETL_PARALLEL -DETL_VECTORIZE_FULL -DETL_CUBLAS_MODE -DETL_CUDNN_MODE mnist_ae.cpp
/usr/bin/ld: skipping incompatible /home/kjlee/lib/cuda-7.5/lib/libcudart.so when searching for -lcudart
/tmp/mnist_ae-95cfa4.o: In function void etl::impl::cudnn::bias_add_2d<etl::dyn_matrix_impl<float, (etl::order)0, 2ul> const&, etl::dyn_matrix_impl<float, (etl::order)0, 1ul> const&, etl::dyn_matrix_impl<float, (etl::order)0, 2ul>&>(etl::dyn_matrix_impl<float, (etl::order)0, 2ul> const&, etl::dyn_matrix_impl<float, (etl::order)0, 1ul> const&, etl::dyn_matrix_impl<float, (etl::order)0, 2ul>&)': mnist_ae.cpp:(.text._ZN3etl4impl5cudnn11bias_add_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERKNS3_IfLS4_0ELm1EEERS5_EEvOT_OT0_OT1_[_ZN3etl4impl5cudnn11bias_add_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERKNS3_IfLS4_0ELm1EEERS5_EEvOT_OT0_OT1_]+0x5b): undefined reference to cudnnCreateTensorDescriptor'
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn11bias_add_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERKNS3_IfLS4_0ELm1EEERS5_EEvOT_OT0_OT1[ZN3etl4impl5cudnn11bias_add_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERKNS3_IfLS4_0ELm1EEERS5_EEvOT_OT0_OT1]+0x9a): undefined reference to cudnnGetErrorString' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn11bias_add_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERKNS3_IfLS4_0ELm1EEERS5_EEvOT_OT0_OT1_[_ZN3etl4impl5cudnn11bias_add_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERKNS3_IfLS4_0ELm1EEERS5_EEvOT_OT0_OT1_]+0x241): undefined reference to cudnnSetTensor4dDescriptor'
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn11bias_add_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERKNS3_IfLS4_0ELm1EEERS5_EEvOT_OT0_OT1[ZN3etl4impl5cudnn11bias_add_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERKNS3_IfLS4_0ELm1EEERS5_EEvOT_OT0_OT1]+0x286): undefined reference to cudnnGetErrorString' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn11bias_add_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERKNS3_IfLS4_0ELm1EEERS5_EEvOT_OT0_OT1_[_ZN3etl4impl5cudnn11bias_add_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERKNS3_IfLS4_0ELm1EEERS5_EEvOT_OT0_OT1_]+0x479): undefined reference to cudnnTransformTensor'
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn11bias_add_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERKNS3_IfLS4_0ELm1EEERS5_EEvOT_OT0_OT1[ZN3etl4impl5cudnn11bias_add_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERKNS3_IfLS4_0ELm1EEERS5_EEvOT_OT0_OT1]+0x4be): undefined reference to cudnnGetErrorString' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn11bias_add_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERKNS3_IfLS4_0ELm1EEERS5_EEvOT_OT0_OT1_[_ZN3etl4impl5cudnn11bias_add_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERKNS3_IfLS4_0ELm1EEERS5_EEvOT_OT0_OT1_]+0x704): undefined reference to cudnnDestroyTensorDescriptor'
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn11bias_add_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERKNS3_IfLS4_0ELm1EEERS5_EEvOT_OT0_OT1[ZN3etl4impl5cudnn11bias_add_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERKNS3_IfLS4_0ELm1EEERS5_EEvOT_OT0_OT1]+0x749): undefined reference to cudnnGetErrorString' /tmp/mnist_ae-95cfa4.o: In function etl::impl::cudnn::cudnn_wrapper<cudnnTensorStruct*>::~cudnn_wrapper()':
mnist_ae.cpp:(.text._ZN3etl4impl5cudnn13cudnn_wrapperIP17cudnnTensorStructED2Ev[_ZN3etl4impl5cudnn13cudnn_wrapperIP17cudnnTensorStructED2Ev]+0x29): undefined reference to cudnnDestroyTensorDescriptor' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn13cudnn_wrapperIP17cudnnTensorStructED2Ev[_ZN3etl4impl5cudnn13cudnn_wrapperIP17cudnnTensorStructED2Ev]+0x65): undefined reference to cudnnGetErrorString'
/tmp/mnist_ae-95cfa4.o: In function etl::impl::cudnn::cudnn_handle::cudnn_handle()': mnist_ae.cpp:(.text._ZN3etl4impl5cudnn12cudnn_handleC2Ev[_ZN3etl4impl5cudnn12cudnn_handleC2Ev]+0x11): undefined reference to cudnnCreate'
mnist_ae.cpp:(.text._ZN3etl4impl5cudnn12cudnn_handleC2Ev[_ZN3etl4impl5cudnn12cudnn_handleC2Ev]+0x43): undefined reference to cudnnGetErrorString' /tmp/mnist_ae-95cfa4.o: In function etl::impl::cudnn::cudnn_handle::~cudnn_handle()':
mnist_ae.cpp:(.text._ZN3etl4impl5cudnn12cudnn_handleD2Ev[_ZN3etl4impl5cudnn12cudnn_handleD2Ev]+0x10): undefined reference to cudnnDestroy' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn12cudnn_handleD2Ev[_ZN3etl4impl5cudnn12cudnn_handleD2Ev]+0x4c): undefined reference to cudnnGetErrorString'
/tmp/mnist_ae-95cfa4.o: In function cudnnTensorStruct* etl::impl::cudnn::create_tensor<etl::dyn_matrix_impl<float, (etl::order)0, 2ul> const&, (cpp::detail::enabler_t)0>(etl::dyn_matrix_impl<float, (etl::order)0, 2ul> const&)': mnist_ae.cpp:(.text._ZN3etl4impl5cudnn13create_tensorIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT_[_ZN3etl4impl5cudnn13create_tensorIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT_]+0x1b): undefined reference to cudnnCreateTensorDescriptor'
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn13create_tensorIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT[ZN3etl4impl5cudnn13create_tensorIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT]+0x4d): undefined reference to cudnnGetErrorString' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn13create_tensorIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT_[_ZN3etl4impl5cudnn13create_tensorIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT_]+0x145): undefined reference to cudnnSetTensor4dDescriptor'
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn13create_tensorIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT[ZN3etl4impl5cudnn13create_tensorIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT]+0x177): undefined reference to cudnnGetErrorString' /tmp/mnist_ae-95cfa4.o: In function cudnnTensorStruct* etl::impl::cudnn::create_tensor<etl::dyn_matrix_impl<float, (etl::order)0, 2ul>&, (cpp::detail::enabler_t)0>(etl::dyn_matrix_impl<float, (etl::order)0, 2ul>&)':
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn13create_tensorIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT[ZN3etl4impl5cudnn13create_tensorIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT]+0x1b): undefined reference to cudnnCreateTensorDescriptor' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn13create_tensorIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT_[_ZN3etl4impl5cudnn13create_tensorIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT_]+0x4d): undefined reference to cudnnGetErrorString'
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn13create_tensorIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT[ZN3etl4impl5cudnn13create_tensorIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT]+0x145): undefined reference to cudnnSetTensor4dDescriptor' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn13create_tensorIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT_[_ZN3etl4impl5cudnn13create_tensorIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT_]+0x177): undefined reference to cudnnGetErrorString'
/tmp/mnist_ae-95cfa4.o: In function void etl::impl::cudnn::activation<etl::dyn_matrix_impl<float, (etl::order)0, 2ul> const&, etl::dyn_matrix_impl<float, (etl::order)0, 2ul>&>(etl::dyn_matrix_impl<float, (etl::order)0, 2ul> const&, etl::dyn_matrix_impl<float, (etl::order)0, 2ul>&, cudnnActivationMode_t)': mnist_ae.cpp:(.text._ZN3etl4impl5cudnn10activationIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERS5_EEvOT_OT0_21cudnnActivationMode_t[_ZN3etl4impl5cudnn10activationIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERS5_EEvOT_OT0_21cudnnActivationMode_t]+0x53): undefined reference to cudnnCreateActivationDescriptor'
mnist_ae.cpp:(.text._ZN3etl4impl5cudnn10activationIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERS5_EEvOT_OT0_21cudnnActivationMode_t[_ZN3etl4impl5cudnn10activationIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERS5_EEvOT_OT0_21cudnnActivationMode_t]+0x8f): undefined reference to cudnnGetErrorString' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn10activationIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERS5_EEvOT_OT0_21cudnnActivationMode_t[_ZN3etl4impl5cudnn10activationIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERS5_EEvOT_OT0_21cudnnActivationMode_t]+0x1df): undefined reference to cudnnSetActivationDescriptor'
mnist_ae.cpp:(.text._ZN3etl4impl5cudnn10activationIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERS5_EEvOT_OT0_21cudnnActivationMode_t[_ZN3etl4impl5cudnn10activationIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERS5_EEvOT_OT0_21cudnnActivationMode_t]+0x224): undefined reference to cudnnGetErrorString' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn10activationIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERS5_EEvOT_OT0_21cudnnActivationMode_t[_ZN3etl4impl5cudnn10activationIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERS5_EEvOT_OT0_21cudnnActivationMode_t]+0x41f): undefined reference to cudnnActivationForward'
mnist_ae.cpp:(.text._ZN3etl4impl5cudnn10activationIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERS5_EEvOT_OT0_21cudnnActivationMode_t[_ZN3etl4impl5cudnn10activationIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERS5_EEvOT_OT0_21cudnnActivationMode_t]+0x464): undefined reference to cudnnGetErrorString' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn10activationIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERS5_EEvOT_OT0_21cudnnActivationMode_t[_ZN3etl4impl5cudnn10activationIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERS5_EEvOT_OT0_21cudnnActivationMode_t]+0x5a5): undefined reference to cudnnDestroyActivationDescriptor'
mnist_ae.cpp:(.text._ZN3etl4impl5cudnn10activationIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERS5_EEvOT_OT0_21cudnnActivationMode_t[_ZN3etl4impl5cudnn10activationIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERS5_EEvOT_OT0_21cudnnActivationMode_t]+0x5ea): undefined reference to cudnnGetErrorString' /tmp/mnist_ae-95cfa4.o: In function cudnnTensorStruct* etl::impl::cudnn::create_tensor_flat<etl::dyn_matrix_impl<float, (etl::order)0, 2ul> const&>(etl::dyn_matrix_impl<float, (etl::order)0, 2ul> const&)':
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn18create_tensor_flatIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT[ZN3etl4impl5cudnn18create_tensor_flatIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT]+0x1b): undefined reference to cudnnCreateTensorDescriptor' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn18create_tensor_flatIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT_[_ZN3etl4impl5cudnn18create_tensor_flatIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT_]+0x4d): undefined reference to cudnnGetErrorString'
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn18create_tensor_flatIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT[ZN3etl4impl5cudnn18create_tensor_flatIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT]+0x12d): undefined reference to cudnnSetTensor4dDescriptor' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn18create_tensor_flatIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT_[_ZN3etl4impl5cudnn18create_tensor_flatIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT_]+0x15f): undefined reference to cudnnGetErrorString'
/tmp/mnist_ae-95cfa4.o: In function cudnnTensorStruct* etl::impl::cudnn::create_tensor_flat<etl::dyn_matrix_impl<float, (etl::order)0, 2ul>&>(etl::dyn_matrix_impl<float, (etl::order)0, 2ul>&)': mnist_ae.cpp:(.text._ZN3etl4impl5cudnn18create_tensor_flatIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT_[_ZN3etl4impl5cudnn18create_tensor_flatIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT_]+0x1b): undefined reference to cudnnCreateTensorDescriptor'
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn18create_tensor_flatIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT[ZN3etl4impl5cudnn18create_tensor_flatIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT]+0x4d): undefined reference to cudnnGetErrorString' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn18create_tensor_flatIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT_[_ZN3etl4impl5cudnn18create_tensor_flatIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT_]+0x12d): undefined reference to cudnnSetTensor4dDescriptor'
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn18create_tensor_flatIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT[ZN3etl4impl5cudnn18create_tensor_flatIRNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEEEEP17cudnnTensorStructOT]+0x15f): undefined reference to cudnnGetErrorString' /tmp/mnist_ae-95cfa4.o: In function void etl::impl::cudnn::bias_batch_mean_2d<etl::dyn_matrix_impl<float, (etl::order)0, 2ul> const&, etl::dyn_matrix_impl<float, (etl::order)0, 1ul>&>(etl::dyn_matrix_impl<float, (etl::order)0, 2ul> const&, etl::dyn_matrix_impl<float, (etl::order)0, 1ul>&)':
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn18bias_batch_mean_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERNS3_IfLS4_0ELm1EEEEEvOT_OT0[ZN3etl4impl5cudnn18bias_batch_mean_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERNS3_IfLS4_0ELm1EEEEEvOT_OT0]+0xe2): undefined reference to cudnnConvolutionBackwardBias' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn18bias_batch_mean_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERNS3_IfLS4_0ELm1EEEEEvOT_OT0_[_ZN3etl4impl5cudnn18bias_batch_mean_2dIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEERNS3_IfLS4_0ELm1EEEEEvOT_OT0_]+0x11e): undefined reference to cudnnGetErrorString'
/tmp/mnist_ae-95cfa4.o: In function cudnnTensorStruct* etl::impl::cudnn::create_tensor_front<etl::dyn_matrix_impl<float, (etl::order)0, 2ul> const&, (cpp::detail::enabler_t)0>(etl::dyn_matrix_impl<float, (etl::order)0, 2ul> const&)': mnist_ae.cpp:(.text._ZN3etl4impl5cudnn19create_tensor_frontIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT_[_ZN3etl4impl5cudnn19create_tensor_frontIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT_]+0x1b): undefined reference to cudnnCreateTensorDescriptor'
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn19create_tensor_frontIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT[ZN3etl4impl5cudnn19create_tensor_frontIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT]+0x4d): undefined reference to cudnnGetErrorString' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn19create_tensor_frontIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT_[_ZN3etl4impl5cudnn19create_tensor_frontIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT_]+0x139): undefined reference to cudnnSetTensor4dDescriptor'
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn19create_tensor_frontIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT[ZN3etl4impl5cudnn19create_tensor_frontIRKNS_15dyn_matrix_implIfLNS_5orderE0ELm2EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT]+0x16b): undefined reference to cudnnGetErrorString' /tmp/mnist_ae-95cfa4.o: In function cudnnTensorStruct* etl::impl::cudnn::create_tensor<etl::dyn_matrix_impl<float, (etl::order)0, 1ul>&, (cpp::detail::enabler_t)0>(etl::dyn_matrix_impl<float, (etl::order)0, 1ul>&)':
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn13create_tensorIRNS_15dyn_matrix_implIfLNS_5orderE0ELm1EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT[ZN3etl4impl5cudnn13create_tensorIRNS_15dyn_matrix_implIfLNS_5orderE0ELm1EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT]+0x1b): undefined reference to cudnnCreateTensorDescriptor' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn13create_tensorIRNS_15dyn_matrix_implIfLNS_5orderE0ELm1EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT_[_ZN3etl4impl5cudnn13create_tensorIRNS_15dyn_matrix_implIfLNS_5orderE0ELm1EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT_]+0x4d): undefined reference to cudnnGetErrorString'
mnist_ae.cpp:(.text.ZN3etl4impl5cudnn13create_tensorIRNS_15dyn_matrix_implIfLNS_5orderE0ELm1EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT[ZN3etl4impl5cudnn13create_tensorIRNS_15dyn_matrix_implIfLNS_5orderE0ELm1EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT]+0x133): undefined reference to cudnnSetTensor4dDescriptor' mnist_ae.cpp:(.text._ZN3etl4impl5cudnn13create_tensorIRNS_15dyn_matrix_implIfLNS_5orderE0ELm1EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT_[_ZN3etl4impl5cudnn13create_tensorIRNS_15dyn_matrix_implIfLNS_5orderE0ELm1EEELN3cpp6detail9enabler_tE0EEEP17cudnnTensorStructOT_]+0x165): undefined reference to cudnnGetErrorString'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [ae] error 1

What is the problem ? How can I solve it ?
My GPU info are:
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.