The important part of the error is:

/usr/bin/ld: cannot find -lcudnn
/usr/bin/ld: cannot find -lcudart
/usr/bin/ld: cannot find -lcudadevrt
/usr/bin/ld: cannot find -lcudart_static

Your installation is broken. Theano isn't able to find cudnn nor other
library that are there by default with nvidia. Try to reinstall cuda.

On Fri, May 19, 2017 at 8:50 PM Xu Zhang <[email protected]> wrote:

> I check online. There is one guy who had the same problem as me. But he
> didn't say how he fixed it.
> https://github.com/Theano/Theano/issues/5330
>
>
> On Thursday, May 18, 2017 at 3:56:20 PM UTC-8, Xu Zhang wrote:
>>
>> My theano and lasagne works well yesterday. Today, after I type sudo
>> apt-get upgrade and installed some others dependencies for VLC. My Theano
>> doesn't work anymore. Error is below when I run my code. The screen keep
>> printing similar errors without stopping.
>>
>> my nvidia info:
>>
>>
>> +-----------------------------------------------------------------------------+
>> | NVIDIA-SMI 361.93.02              Driver Version:
>> 361.93.02                 |
>>
>> |-------------------------------+----------------------+----------------------+
>> | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr.
>> ECC |
>> | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util
>> Compute M. |
>>
>> |===============================+======================+======================|
>> |   0  Tesla K40m          On   | 0000:81:00.0     Off
>> |                    0 |
>> | N/A   37C    P8    20W / 235W |      0MiB / 11441MiB |      0%
>> Default |
>>
>> +-------------------------------+----------------------+----------------------+
>>
>>
>>
>> +-----------------------------------------------------------------------------+
>> | Processes:                                                       GPU
>> Memory |
>> |  GPU       PID  Type  Process name
>> Usage      |
>>
>> |=============================================================================|
>> |  No running processes
>> found                                                 |
>>
>> +-----------------------------------------------------------------------------+
>> cuda version:
>>
>> nvcc: NVIDIA (R) Cuda compiler driver
>> Copyright (c) 2005-2016 NVIDIA Corporation
>> Built on Tue_Jan_10_13:22:03_CST_2017
>> Cuda compilation tools, release 8.0, V8.0.61
>>
>> Ubuntu version:
>>
>> Distributor ID:    Ubuntu
>> Description:    Ubuntu 14.04.5 LTS
>> Release:    14.04
>> Codename:    trusty
>>
>>
>>
>> WARNING (theano.sandbox.cuda): The cuda backend is deprecated and will be
>> removed in the next release (v0.10).  Please switch to the gpuarray
>> backend. You can get more information about how to switch at this URL:
>>
>> https://github.com/Theano/Theano/wiki/Converting-to-the-new-gpu-back-end%28gpuarray%29
>>
>> 1 #include <Python.h>
>> 2 #include <iostream>
>> 3 #include "theano_mod_helper.h"
>> 4 #include "cudnn.h"
>> 5 //////////////////////
>> 6 ////  Support Code
>> 7 //////////////////////
>> 8
>> 9 #if PY_MAJOR_VERSION >= 3
>> 10 #define PyInt_FromLong PyLong_FromLong
>> 11 #endif
>> 12
>> 13
>> 14     namespace {
>> 15     struct __struct_compiled_op_3442132e74e76f61361fb1c73112eef4 {
>> 16         PyObject* __ERROR;
>> 17
>> 18         PyObject* storage_V1;
>> 19
>> 20
>> 21         __struct_compiled_op_3442132e74e76f61361fb1c73112eef4() {
>> 22             // This is only somewhat safe because we:
>> 23             //  1) Are not a virtual class
>> 24             //  2) Do not use any virtual classes in the members
>> 25             //  3) Deal with mostly POD and pointers
>> 26
>> 27             // If this changes, we would have to revise this, but for
>> 28             // now I am tired of chasing segfaults because
>> 29             // initialization code had an error and some pointer has
>> 30             // a junk value.
>> 31             memset(this, 0, sizeof(*this));
>> 32         }
>> 33         ~__struct_compiled_op_3442132e74e76f61361fb1c73112eef4(void) {
>> 34             cleanup();
>> 35         }
>> 36
>> 37         int init(PyObject* __ERROR, PyObject* storage_V1) {
>> 38             Py_XINCREF(storage_V1);
>> 39             this->storage_V1 = storage_V1;
>> 40
>> 41
>> 42
>> 43             this->__ERROR = __ERROR;
>> 44             return 0;
>> 45         }
>> 46         void cleanup(void) {
>> 47             __label_1:
>> 48
>> 49 double __DUMMY_1;
>> 50 __label_4:
>> 51
>> 52 double __DUMMY_4;
>> 53
>> 54             Py_XDECREF(this->storage_V1);
>> 55         }
>> 56         int run(void) {
>> 57             int __failure = 0;
>> 58
>> 59     PyObject* py_V1;
>> 60
>> 61         PyObject* V1;
>> 62
>> 63 {
>> 64
>> 65     py_V1 = Py_None;
>> 66     {Py_XINCREF(py_V1);}
>> 67
>> 68         V1 = NULL;
>> 69
>> 70 {
>> 71 // Op class DnnVersion
>> 72
>> 73 #if defined(CUDNN_VERSION)
>> 74 V1 = PyTuple_Pack(2, PyInt_FromLong(CUDNN_VERSION),
>> PyInt_FromLong(cudnnGetVersion()));
>> 75 #else
>> 76 V1 = PyInt_FromLong(-1);
>> 77 #endif
>> 78 __label_3:
>> 79
>> 80 double __DUMMY_3;
>> 81
>> 82 }
>> 83 __label_2:
>> 84
>> 85     if (!__failure) {
>> 86
>> 87         assert(py_V1->ob_refcnt > 1);
>> 88         Py_DECREF(py_V1);
>> 89         py_V1 = V1 ? V1 : Py_None;
>> 90         Py_INCREF(py_V1);
>> 91
>> 92       PyObject* old = PyList_GET_ITEM(storage_V1, 0);
>> 93       {Py_XINCREF(py_V1);}
>> 94       PyList_SET_ITEM(storage_V1, 0, py_V1);
>> 95       {Py_XDECREF(old);}
>> 96     }
>> 97
>> 98         Py_XDECREF(V1);
>> 99
>> 100     {Py_XDECREF(py_V1);}
>> 101
>> 102 double __DUMMY_2;
>> 103
>> 104 }
>> 105
>> 106
>> 107         if (__failure) {
>> 108             // When there is a failure, this code puts the exception
>> 109             // in __ERROR.
>> 110             PyObject* err_type = NULL;
>> 111             PyObject* err_msg = NULL;
>> 112             PyObject* err_traceback = NULL;
>> 113             PyErr_Fetch(&err_type, &err_msg, &err_traceback);
>> 114             if (!err_type) {err_type = Py_None;Py_INCREF(Py_None);}
>> 115             if (!err_msg) {err_msg = Py_None; Py_INCREF(Py_None);}
>> 116             if (!err_traceback) {err_traceback = Py_None;
>> Py_INCREF(Py_None);}
>> 117             PyObject* old_err_type = PyList_GET_ITEM(__ERROR, 0);
>> 118             PyObject* old_err_msg = PyList_GET_ITEM(__ERROR, 1);
>> 119             PyObject* old_err_traceback = PyList_GET_ITEM(__ERROR, 2);
>> 120             PyList_SET_ITEM(__ERROR, 0, err_type);
>> 121             PyList_SET_ITEM(__ERROR, 1, err_msg);
>> 122             PyList_SET_ITEM(__ERROR, 2, err_traceback);
>> 123             {Py_XDECREF(old_err_type);}
>> 124             {Py_XDECREF(old_err_msg);}
>> 125             {Py_XDECREF(old_err_traceback);}
>> 126         }
>> 127         // The failure code is returned to index what code block
>> failed.
>> 128         return __failure;
>> 129
>> 130         }
>> 131     };
>> 132     }
>> 133
>> 134
>> 135         static int
>> __struct_compiled_op_3442132e74e76f61361fb1c73112eef4_executor(__struct_compiled_op_3442132e74e76f61361fb1c73112eef4*
>> self) {
>> 136             return self->run();
>> 137         }
>> 138
>> 139         static void
>> __struct_compiled_op_3442132e74e76f61361fb1c73112eef4_destructor(void*
>> executor, void* self) {
>> 140             delete
>> ((__struct_compiled_op_3442132e74e76f61361fb1c73112eef4*)self);
>> 141         }
>> 142
>> 143 //////////////////////
>> 144 ////  Functions
>> 145 //////////////////////
>> 146 static PyObject * instantiate(PyObject * self, PyObject *argtuple) {
>> 147   assert(PyTuple_Check(argtuple));
>> 148   if (2 != PyTuple_Size(argtuple)){
>> 149      PyErr_Format(PyExc_TypeError, "Wrong number of arguments,
>> expected 2, got %i", (int)PyTuple_Size(argtuple));
>> 150      return NULL;
>> 151   }
>> 152   __struct_compiled_op_3442132e74e76f61361fb1c73112eef4* struct_ptr =
>> new __struct_compiled_op_3442132e74e76f61361fb1c73112eef4();
>> 153   if (struct_ptr->init( PyTuple_GET_ITEM(argtuple,
>> 0),PyTuple_GET_ITEM(argtuple, 1) ) != 0) {
>> 154     delete struct_ptr;
>> 155     return NULL;
>> 156   }
>> 157   PyObject* thunk =
>> PyCObject_FromVoidPtrAndDesc((void*)(&__struct_compiled_op_3442132e74e76f61361fb1c73112eef4_executor),
>> struct_ptr,
>> __struct_compiled_op_3442132e74e76f61361fb1c73112eef4_destructor);
>> 158   return thunk; }
>> 159
>> 160 //////////////////////
>> 161 ////  Module init
>> 162 //////////////////////
>> 163 static PyMethodDef MyMethods[] = {
>> 164     {"instantiate", instantiate, METH_VARARGS, "undocumented"} ,
>> 165     {NULL, NULL, 0, NULL}
>> 166 };
>> 167 PyMODINIT_FUNC init3442132e74e76f61361fb1c73112eef4(void){
>> 168    (void) Py_InitModule("3442132e74e76f61361fb1c73112eef4",
>> MyMethods);
>> 169 }
>> 170
>> ===============================
>> nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are
>> deprecated, and may be removed in a future release (Use
>> -Wno-deprecated-gpu-targets to suppress warning).
>> /usr/bin/ld: cannot find -lcudnn
>> /usr/bin/ld: cannot find -lcudart
>> /usr/bin/ld: cannot find -lcudadevrt
>> /usr/bin/ld: cannot find -lcudart_static
>> collect2: error: ld returned 1 exit status
>> Using gpu device 0: Tesla K40m (CNMeM is enabled with initial size: 95.0%
>> of memory, cuDNN None)
>>
>> ['nvcc', '-shared', '-O3', '-Xlinker',
>> '-rpath,/usr/local/cuda-8.0/lib64', '-m64', '-Xcompiler',
>> '-fno-math-errno,-Wno-unused-label,-Wno-unused-variable,-Wno-write-strings,-DCUDA_NDARRAY_CUH=c72d035fdf91890f3b36710688069b2e,-DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION,-fPIC,-fvisibility=hidden',
>> '-Xlinker',
>> '-rpath,/space/xzhang/.theano/compiledir_Linux-3.19--generic-x86_64-with-Ubuntu-14.04-trusty-x86_64-2.7.6-64/cuda_ndarray',
>> '-I/usr/local/cuda-8.0/include',
>> '-I/usr/local/lib/python2.7/dist-packages/numpy/core/include',
>> '-I/usr/include/python2.7',
>> '-I/usr/local/lib/python2.7/dist-packages/theano/gof',
>> '-I/usr/local/lib/python2.7/dist-packages/theano/sandbox/cuda',
>> '-L/usr/lib', '-o',
>> '/space/xzhang/.theano/compiledir_Linux-3.19--generic-x86_64-with-Ubuntu-14.04-trusty-x86_64-2.7.6-64/tmpjR_LxZ/3442132e74e76f61361fb1c73112eef4.so',
>> 'mod.cu', '-lcudnn', '-lpython2.7', '-lcudart']
>> Loading data...
>> Building model and compiling functions...
>> number of parameters in model: 145376
>>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "theano-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"theano-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to