- 配置编译环境
参照Ubuntu 14.04,14.10,16.04编译CPU版本Caffe确保可以正常编译通过CPU
版本的Caffe
.
- 安装Nvidia CUDA驱动
参照Ubuntu 16.04安装Nvidia CUDA驱动安装Nvidia CUDA
驱动.
- 安装Nvidia CUDNN库
参照Ubuntu 16.04开启dlib对于AVX或者CUDA的支持里面设置Nvidia CUDNN
部分,配置好Nvidia CUDNN
库.
- 编译代码
1 2 3 4 5 |
$ cd caffe $ cmake . -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" $ make |
- 编译出错的处理
如果编译时候出现如下错误信息
1 2 3 4 5 6 7 8 9 10 11 12 13 |
/usr/include/string.h: In function ‘void* __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_softmax_layer.cu.o.cmake:266 (message): Error generating file /home/longsky/Source/caffe/src/caffe/CMakeFiles/cuda_compile.dir/layers/./cuda_compile_generated_softmax_layer.cu.o src/caffe/CMakeFiles/caffe.dir/build.make:469: recipe for target 'src/caffe/CMakeFiles/cuda_compile.dir/layers/cuda_compile_generated_softmax_layer.cu.o' failed make[2]: *** [src/caffe/CMakeFiles/cuda_compile.dir/layers/cuda_compile_generated_softmax_layer.cu.o] Error 1 CMakeFiles/Makefile2:272: recipe for target 'src/caffe/CMakeFiles/caffe.dir/all' failed make[1]: *** [src/caffe/CMakeFiles/caffe.dir/all] Error 2 |
则需要在执行cmake
的时候增加
1 |
-DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" |
的定义。
- 编译选项
某些库在使用Nvidia CUDNN
的时候会崩溃,此时我们可以在编译的时候,排除Nvidia CUDNN
即可。
例子如下:
1 |
$ cmake . -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" -DUSE_CUDNN=OFF |