Я пытаюсь скомпилировать Caffe для SSD с этого github (https://github.com/weiliu89/caffe/tree/ssd). Я использую следующее;
Nvidia 1080ti (430 drivers)
ubuntu 18.04
CUDA 10.1
nvcc 9.1.85
opencv 3
Я установил CUDA 10.1 и cuDNN и успешно выполнил здесь шаги проверки(https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html)
Я установил все необходимые зависимости, как здесь (http://caffe.berkeleyvision.org/install_apt.html).
Я открыл файл cudnn.h и исправил
#include "driver_types"
to
#include <driver_types>
КогдаВыполнение команды make -j8 не удалось в следующих файлах:
make: *** [.build_release/src/caffe/syncedmem.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** [.build_release/src/caffe/util/db.o] Error 1
make: *** [.build_release/src/caffe/blob.o] Error 1
make: *** [.build_release/src/caffe/util/im2col.o] Error 1
make: *** [.build_release/src/caffe/util/math_functions.o] Error 1
make: *** [.build_release/src/caffe/common.o] Error 1
make: *** [.build_release/src/caffe/solver.o] Error 1
make: *** [.build_release/src/caffe/util/blocking_queue.o] Error 1
полный возврат ошибок превышает 5000 строк, поэтому не может опубликовать все это. Первый раздел выглядит следующим образом
CXX src/caffe/solver.cpp
CXX src/caffe/syncedmem.cpp
CXX src/caffe/blob.cpp
CXX src/caffe/common.cpp
CXX src/caffe/util/blocking_queue.cpp
CXX src/caffe/util/db.cpp
CXX src/caffe/util/im2col.cpp
CXX src/caffe/util/cudnn.cpp
In file included from /usr/local/cuda/include/channel_descriptor.h:61:0,
from /usr/local/cuda/include/cuda_runtime.h:95,
from ./include/caffe/util/device_alternate.hpp:36,
from ./include/caffe/common.hpp:19,
from src/caffe/syncedmem.cpp:1:
/usr/local/cuda/include/cuda_runtime_api.h:2488:88: error: use of enum ‘cudaStreamCaptureMode’ without previous declaration
extern __host__ cudaError_t CUDARTAPI cudaStreamBeginCapture(cudaStream_t stream, enum cudaStreamCaptureMode mode);
^~~~~~~~~~~~~~~~~~~~~
/usr/local/cuda/include/cuda_runtime_api.h:2539:80: error: use of enum ‘cudaStreamCaptureMode’ without previous declaration
extern __host__ cudaError_t CUDARTAPI cudaThreadExchangeStreamCaptureMode(enum cudaStreamCaptureMode *mode);
^~~~~~~~~~~~~~~~~~~~~
/usr/local/cuda/include/cuda_runtime_api.h:2567:81: error: ‘cudaGraph_t’ has not been declared
extern __host__ cudaError_t CUDARTAPI cudaStreamEndCapture(cudaStream_t stream, cudaGraph_t *pGraph);
^~~~~~~~~~~
/usr/local/cuda/include/cuda_runtime_api.h:2605:87: error: use of enum ‘cudaStreamCaptureStatus’ without previous declaration
extern __host__ cudaError_t CUDARTAPI cudaStreamIsCapturing(cudaStream_t stream, enum cudaStreamCaptureStatus *pCaptureStatus);
^~~~~~~~~~~~~~~~~~~~~~~
/usr/local/cuda/include/cuda_runtime_api.h:2633:90: error: use of enum ‘cudaStreamCaptureStatus’ without previous declaration
extern __host__ cudaError_t CUDARTAPI cudaStreamGetCaptureInfo(cudaStream_t stream, enum cudaStreamCaptureStatus *pCaptureStatus, unsigned long long *pId);
^~~~~~~~~~~~~~~~~~~~~~~
/usr/local/cuda/include/cuda_runtime_api.h:3017:64: error: ‘cudaExternalMemory_t’ was not declared in this scope
extern __host__ cudaError_t CUDARTAPI cudaImportExternalMemory(cudaExternalMemory_t *extMem_out, const struct cudaExternalMemoryHandleDesc *memHandleDesc);
^~~~~~~~~~~~~~~~~~~~
/usr/local/cuda/include/cuda_runtime_api.h:3017:64: note: suggested alternative: ‘CUexternalMemory’
extern __host__ cudaError_t CUDARTAPI cudaImportExternalMemory(cudaExternalMemory_t *extMem_out, const struct cudaExternalMemoryHandleDesc *memHandleDesc);
^~~~~~~~~~~~~~~~~~~~
CUexternalMemory
/usr/local/cuda/include/cuda_runtime_api.h:3017:86: error: ‘extMem_out’ was not declared in this scope
extern __host__ cudaError_t CUDARTAPI cudaImportExternalMemory(cudaExternalMemory_t *extMem_out, const struct cudaExternalMemoryHandleDesc *memHandleDesc);
^~~~~~~~~~