caffe + mkl2018 + cuda9.1 + cudnn7.0.5 @ windows vs2015

新年编译。

新年伊始发现mkl、cuda、cudnn都有了新版本,于是在笔记本上重新编译了一下caffe。

首先还是官网下载最新版本的mkl、cuda、cudnn对应的windows平台版本并安装。

cudnn要解压到cuda工具的安装目录方便使用(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1)。

caffe checkout到windows branch。

编译环境我一直用的是vs2015,另外装一个miniconda(python环境)。这次miniconda安装也碰到个坑,安装时一定要选“只有我”,不然conda install需要管理员权限。另外最好选择添加系统路径,不然总是找不到conda.exe。

安装好miniconda后,就可以用anaconda的conda install安装ninja和cmake,用来编译caffe。

编译要在caffe文件夹的cmd下运行scripts\build_win.cmd,注意要修改这个文件把需要的mkl以及cuda配好。

    :: Change the settings here to match your setup
    :: Change MSVC_VERSION to 12 to use VS 2013, 14 to use VS 2015
    if NOT DEFINED MSVC_VERSION set MSVC_VERSION=14
    :: Change to 1 to use Ninja generator (builds much faster)
    if NOT DEFINED WITH_NINJA set WITH_NINJA=1
    :: Change to 1 to build caffe without CUDA support
    if NOT DEFINED CPU_ONLY set CPU_ONLY=0
    :: Change to generate CUDA code for one of the following GPU architectures
    :: [Fermi  Kepler  Maxwell  Pascal  All]
    if NOT DEFINED CUDA_ARCH_NAME set CUDA_ARCH_NAME=Auto
    :: Change to Debug to build Debug. This is only relevant for the Ninja generator the Visual Studio generator will generate both Debug and Release configs
    if NOT DEFINED CMAKE_CONFIG set CMAKE_CONFIG=Release
    :: Set to 1 to use NCCL
    if NOT DEFINED USE_NCCL set USE_NCCL=1
    :: Change to 1 to build a caffe.dll
    if NOT DEFINED CMAKE_BUILD_SHARED_LIBS set CMAKE_BUILD_SHARED_LIBS=0
    :: Change to 3 if using python 3.5 (only 2.7 and 3.5 are supported)
    if NOT DEFINED PYTHON_VERSION set PYTHON_VERSION=2
    :: Change these options for your needs.
    if NOT DEFINED BUILD_PYTHON set BUILD_PYTHON=1
    if NOT DEFINED BUILD_PYTHON_LAYER set BUILD_PYTHON_LAYER=1
cmake -G"!CMAKE_GENERATOR!" ^
      -DBLAS:STRING=mkl ^
      -DMKL_INCLUDE_DIR:STRING="C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2018.1.156/windows/mkl/include" ^
      -DMKL_RT_LIBRARY:STRING="C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2018.1.156/windows/mkl/lib/intel64_win/mkl_rt.lib" ^
      -DCMAKE_BUILD_TYPE:STRING=%CMAKE_CONFIG% ^
      -DBUILD_SHARED_LIBS:BOOL=%CMAKE_BUILD_SHARED_LIBS% ^
      -DBUILD_python:BOOL=%BUILD_PYTHON% ^
      -DBUILD_python_layer:BOOL=%BUILD_PYTHON_LAYER% ^
      -DBUILD_matlab:BOOL=%BUILD_MATLAB% ^
      -DCPU_ONLY:BOOL=%CPU_ONLY% ^
      -DCOPY_PREREQUISITES:BOOL=1 ^
      -DINSTALL_PREREQUISITES:BOOL=1 ^
      -DUSE_NCCL:BOOL=!USE_NCCL! ^
      -DCUDA_ARCH_NAME:STRING=%CUDA_ARCH_NAME% ^
      -DCUDNN_ROOT:STRING="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.1" ^
      "%~dp0\.."

注意上面的路径是斜杠,如果打成反斜杠要打两个(\\)不然会报错。cudnn如果放在了cuda里面,DCUDNN_ROOT可以不要。

由于我笔记本没有显卡,gpu archs为ALL,发现CUDA9.1不支持comput_20,所以还要再Cuda.make里把gpu archs里面的20删掉,变成:set(Caffe_known_gpu_archs "30 35 50 60 61")

如果以前用低版本的cuda编译过,重新编译前要把build文件夹删除。

如果用老的mkl编译过,老的mkl最好卸载,conda的mkl也要update到最新,以免运行时dll不一致。mkl_intel_thread.dll要手动拷到caffe.exe所在位置。

另外编译时还遇到boost里面检查cuda版本的一个错误,把报错地方删掉就可以了。

如果使用NCCL,还要手动把NCCL升级一下才能用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值