Windows下用cmake编译Caffe

Posted zjutzz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows下用cmake编译Caffe相关的知识,希望对你有一定的参考价值。

Windows下用cmake编译Caffe

2018年8月24日 23:35:41
by ChrisZZ

环境说明

系统: Windows10
编译器:Visual Studio 2015
构建器:CMake 3.12
Caffe: BVLC官方Caffe的windows分支
CUDA: 9.2
CuDNN:7.0
终端: cmd窗口

具体步骤

1. 下载代码

进cmd敲:

d:
cd work
git clone https://github.com/BVLC/caffe caffe-BVLC
cd caffe-BVLC
git checkout -b window origin/windows

2.改正错误的配置

2.1 cmake/Cuda.cmake,第7行,去掉20和21的算力支持(否则新版cuda会报错),改成:

set(Caffe_known_gpu_archs "30 35 50 52 60 61")

2.2 cmake/Cuda.cmake,第40行左右,手动设定nvcc架构版本,例如我是1080Ti显卡,使用6.1:

set(__nvcc_out "6.1")

(为啥这里的自动获取计算能力版本有问题?大概是字符编码导致输出很多警告,警告信息影响了正确结果的获取)

2.3 下载依赖项
为了避免cmake下载遭遇网络问题,以及修改配置项的方便,根据scripts/download_prebuilt_dependencies.py手动下载依赖文件:

WIN_DEPENDENCIES_URLS = {
    ('v120', '2.7'):("https://github.com/willyd/caffe-builder/releases/download/v1.1.0/libraries_v120_x64_py27_1.1.0.tar.bz2",
                  "ba833d86d19b162a04d68b09b06df5e0dad947d4"),
    ('v140', '2.7'):("https://github.com/willyd/caffe-builder/releases/download/v1.1.0/libraries_v140_x64_py27_1.1.0.tar.bz2",
                  "17eecb095bd3b0774a87a38624a77ce35e497cd2"),
    ('v140', '3.5'):("https://github.com/willyd/caffe-builder/releases/download/v1.1.0/libraries_v140_x64_py35_1.1.0.tar.bz2",
                  "f060403fd1a7448d866d27c0e5b7dced39c0a607"),
}

下载后的压缩包放到C:Userschris.caffedependenciesdownload目录下,然后解压到download的同级目录

接下来,如果你要用cuda编译,那么一定要修改C:Userschris.caffedependencieslibraries_v140_x64_py27_1.1.0librariesincludeoost-1_61oostconfigcompiler vcc.hpp:注释掉最后三行:

#if !defined(__CUDACC_VER__) || (__CUDACC_VER__ < 70500)
#   define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif

(原因:cuda7.5以后,__CUDACC_VER__被废除,应当使用__CUDACC_VER_MAJOR___CUDACC_VER_MINOR__等,参考https://github.com/BVLC/caffe/issues/5994、https://blog.csdn.net/qq_37817177/article/details/80604294)。

2.4 开始编译
回到刚才的cmd,继续敲:

set WITH_NINJA=0  # 不使用ninja,用visual studio。因为编译中间出了问题在vs里面好查看。
# set CPU_ONLY=1  # 如果没有GPU,或者就是想编译CPU版本,则开启

.scriptsuild_win.cmd # 前面我写明的修改项都完成后,本行会顺利执行。

编译期间出现“锟斤拷”的乱码可以忽略,最后:
技术分享图片

以上是关于Windows下用cmake编译Caffe的主要内容,如果未能解决你的问题,请参考以下文章

Windows下用CMake编译 libuv

Windows下用CMake编译JsonCpp及配置(适合新手)

caffe 在 windows 使用

Windows系统下安装 CMake

Cygwin下用CMake编译库

在 Linux 下用 CMAKE 编译安装 OpenCV 3.2.0