編譯Caffe時開啟cudnn常見問題

huangkangying發表於2017-03-27

執行時找不到cudnn庫

caffe: error while loading shared libraries: libcudnn.so.5

解決辦法

修改LD_LIBRARY_PATH

export LD_LIBRARY_PATH=(your path that contains libcudnn.so)

編譯時inline函式出錯

/usr/include/string.h: In functionvoid* __mempcpy_inline(void*, const void*, size_t)’: /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope return (char *) memcpy (__dest, __src, __n) + __n; ^ /usr/include/string.h: In functionvoid* __mempcpy_inline(void*, const void*, size_t)’: /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope return (char *) memcpy (__dest, __src, __n) + __n; ^ /usr/include/string.h: In functionvoid* __mempcpy_inline(void*, const void*, size_t)’: /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope return (char *) memcpy (__dest, __src, __n) + __n; ^ /usr/include/string.h: In functionvoid* __mempcpy_inline(void*, const void*, size_t)’: /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope return (char *) memcpy (__dest, __src, __n) + __n; ^ /usr/include/string.h: In functionvoid* __mempcpy_inline(void*, const void*, size_t)’: /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope return (char *) memcpy (__dest, __src, __n) + __n; ^ /usr/include/string.h: In functionvoid* __mempcpy_inline(void*, const void*, size_t)’: /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope return (char *) memcpy (__dest, __src, __n) + __n; ^ /usr/include/string.h: In functionvoid* __mempcpy_inline(void*, const void*, size_t)’: /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope return (char *) memcpy (__dest, __src, __n) + __n; ^ CMake Error at cuda_compile_generated_sgd_solver.cu.o.cmake:266 (message): Error generating file /opt/caffe/build/src/caffe/CMakeFiles/cuda_compile.dir/solvers/./cuda_compile_generated_sgd_solver.cu.o

解決辦法

Change the $(CXXFLAGS) and $(CFLAGS) in Makefile:

CXXFLAGS+= -D_FORCE_INLINES
CFLAGS+= -D_FORCE_INLINES

編譯Python出錯

fatal error: numpy/arrayobject.h: No such file or directory ; when 'make pycaffe' command given

解決辦法

  1. 檢查numpy是否正確安裝 sudo apt-get install python-numpy
  2. 如果numpy已經安裝,修改Makefile.config, 檢查numpy庫的安裝Path是否一致,例如我的python numpy安裝path要改為:
PYTHON_INCLUDE := /usr/include/python2.7 \
        /usr/local/lib/python2.7/dist-packages/numpy/core/include

相關文章