书接上回, 讲到 hdf5 的编译, 接下来讲后续依赖的编译.
一, opencv
我这里使用的版本是 3.1, 具体我也不知道为什么但大家都在用.
下载好源码后进入 opencv 目录下
1. 执行 mkdir build && cd build
2. 执行 cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/path/to/save -DWITH_IPP=OFF ..
记住, 这里一定要加上 - DWITH_IPP=OFF, 否则会提示下载 ippicv package 错误, 进而失败
3. 执行 make && make install
注意, 这里在 make 过程中可能会报错, 详情及修改参见参考文献 1. 我编译的 opencv3.1 和参考文献 1 中有一个参数不太一样, 参考文献 1 中使用的是 CUDART_VERSION, 我使用的是 CUDA_VERSION.
4. 指定环境变量
最后记得自己写个小程序测试一下.
二, leveldb
leveldb 需要 snappy, 关于 snappy 的编译与安装参照附录 1.
虽然说 caffe 官网声称 leveldb 需要 snappy, 但是我在编译过程中并没有用到 snappy, 具体原因未知.
此外, 可以在 cmake 过程中使用 - DCMAKE_INSTALL_PREFIX 指定安装目录, 就不用使用丑陋的 make DESTDIR=XXX install 了.
1. 进入 leveldb 目录, mkdir build && cd build
2. 执行 cmake -DCMAKE_INSTALL_PREFIX=XXX .., 注意命令的最后还有两个英文句号字符, 意思是 cmake 上级目录
3. 执行 make && make install
4. 指定环境变量
三, lmdb
lmdb 和前面的稍有不同, 我这里需要进入 XXX/lmdb/libraries/liblmdb, 在这个目录下有源文件以及 Makefile
1. 在 Makefile 中找到 prefix, 并将 prefix 的值改为安装位置
2.make && make install
3. 配置环境变量, 大功告成
四, cudnn(这里需要管理员权限)
1. 到英伟达官网下载 cudnn 相关文件
2. 将文件中 include 文件和 lib 文件移植到 cuda 相应的 include 和 lib64 文件夹中
3. 测试据说官方有个测试程序, 但我没有找到, 这里就不测试了. 另外, 不要信广为流传的 nvcc -V 测试方法.
后续就是重头戏编译 Caffe 了, 下一篇会介绍如何编译 Caffe, 后续如果有时间的话还会尝试着玩一下 nccl.
附录 1:snappy 的编译与安装
1.mkdir build && cd build
2. 执行 cmake
3.make && make install
参考文献
1. https://blog.csdn.net/QLULIBIN/article/details/80730799 opencv 编译及安装
2.cudnn installation guide
来源: http://www.bubuko.com/infodetail-3079872.html