Win7_X64 + VS2013 + CUDA + Caffe 配置记录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/niaolianjiulin/article/details/82909596

1. 背景

因项目需要,在Windows下安装python, caffe等工具。安装caffe需要在VS下编译源码得到。PC上安装了NVIDIA GeForce 1080,于是打算装下CUDA,久闻大名。

2. CUDA

2.1 CUDA & cuDNN

cuda官网下载:https://developer.nvidia.com/cuda-downloads
cudnn官网下载: https://developer.nvidia.com/cudnn

CUDA是什么?我的理解是在NVIDIA GPU开发并行程序的一套SDK,包含一堆头文件,库文件等,然后我们将其路径添加进VS配置中,包含其头文件,即可调用API。(就好比OpenCV的模式)

cuDNN是什么?CUDA中专注于DNN运算的加速组件,也是一堆头文件、库文件,下载后拷贝至CUDA安装目录下即可。

2.2 安装问题

  1. 运行setup文件第一次,提示“Visual Studio Intergration”安装失败

解决:Visual Studio Intergration无法安装导致失败,安装时不勾选跳过即可。其他组件未安装皆因此导致。

参考:https://blog.csdn.net/hsqaihkl/article/details/80674912

  1. 安装中显示器黑屏

解决:主机已经安装了显卡驱动。重启后运行cuda安装文件,仅勾选第一项“CUDA”(去掉勾选VS Intergration),不要勾选后面三项,再安装即可。后面三项中可以看到,也是安装驱动这些。

  1. 如何检测安装成功?

解决:cmd中进入目录“C:\ProgramData\NVIDIA_Corporation\CUDA Samples\v8.0\bin\win64\Debug”,不同主机路径大致相同。然后cmd运行bandwidthTest.exe和deviceQuery.exe,若运行结果显示pass即安装成功。

  1. 如何将CUDA集成至VS?

解决:因为在windows下使用VS的开发者太多了,CUDA对于VS集成做的工作很多,具体表现在简单操作下就可以完成。在笔者PC上,因为问题1和问题2跳过了CUDA中VS集成安装,于是需要手动安装。可以参看 https://blog.csdn.net/hsqaihkl/article/details/80674912 博文中所讲,将CUDA的VS集成包下的文件,拷贝至对应路径下即可。VS集成包中还包括2个msi安装程序,均执行下。重启VS后就可以出现:新建CUDA工程,笔者亲测发现工程下自动生成kernel.cu源码文件,相当于CUDA的HelloWorld,2个5维向量相加。VS的路径配置中都弄好了,笔者指的是头文件,依赖库等这些。这样CUDA就好像是VS下的另一个模板,和C++那种一样的使用,很方便(而opencv则需要自己在工程配置里添加头文件、库文件路径,稍微麻烦点)

3. Caffe

3.1 caffe-windows源码

caffe源码下载:https://github.com/BVLC/caffe/tree/windows

虽然这个caffe源码是BVLC下的,但却并不是官方版本,由个人维护,因此页面上一些链接都失效了。下载源码到本地后解压。

3.2 VS下编译caffe

  • github页面上有官方配置教程,但据说有错。可以参考:https://www.cnblogs.com/jerrybaby/p/8385227.html

  • 需要安装好cmake,VS 2015两个工具。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。VS 2015作为最终可执行文件和库的编译工具。

  • 在/scripts/build_win.cmd中对VS版本,python版本,CPU/GPU设置,然后运行该脚本。提示下载一个libraries_v140_x64_py35_1.1.0.tar.bz2文件放到对应位置,其中v140表示VS 2015。

  • 然后再次运行build_win.cmd脚本,这次开始做编译,时间大概10分钟。编译完后,/scripts/build/下生成了Caffe.sln文件,这就是我们熟悉的VS工程解决方案文件。

  • /scripts/build/lib/Release/下存放着生成的.lib文件,如caffe.lib。

  • \scripts\build\tools\Release\下存放着生成的.exe文件,如caffe.exe,可以在cmd中运行该命令做train或者test任务。如 # caffe.exe train --solver=.\examples\mnist\lenet_solver.prototxt

  • \caffe-windows\python\下有一个caffe文件夹,这是caffe的python接口文件,将该文件夹全部拷贝至python安装目录下的site-packages目录下,即可在python环境中导入caffe库进行调用。

至此可得到原始的caffe 1.0.0版本。

3.3 测试caffe

以caffe自带的example/mnist为例测试。

可参看:https://blog.csdn.net/liuweiyuxiang/article/details/79532073

note:所有prototxt文件内部涉及的路径要使用linux下的斜杠,在cmd运行时使用Windows下的反斜杠形式。开始全部改为反斜杠结果错误,将solver.prototxt和train_test.prototxt中的路径改为斜杠好了。

3.4 扩展caffe

如果需要让caffe支持自定义层,需要对caffe做出扩展。主要流程包括:

  • 修改caffe.proto文件,注册层信息;
  • 将自定义层的实现代码,头文件拷贝至caffe目录下,并添加至VS工程中;
  • 重新编译caffe的VS工程;
  • 生成新的caffe.lib和_caffe.pyd。

猜你喜欢

转载自blog.csdn.net/niaolianjiulin/article/details/82909596