Windows7下安装Caffe(GPU):试了很久的失败版本(可参考)

来源:互联网 发布:朋友圈广告 知乎 编辑:程序博客网 时间:2024/04/29 08:45
这是个失败的版本,既然记录下来了,就保留下来,总体来说没错,只是可能CUDA版本不合适。
可以参考下。

一. 安装CUDA
1. 下载 https://developer.nvidia.com/cuda-downloads

2. 正常安装

出现这个问题。。不懂。。我还是继续了
后来大概弄懂了:
首先,CUDA不是驱动,这里的“This graphics driver"让我以为CUDA是显卡驱动,坑爹,其实应该是CUDA里面自带了驱动程序,这个驱动程序不适合我的显卡(GTX 1060),因此上面说如果建议我保留自己的显卡驱动,也就是继续安装时不要安装CUDA带来的显卡驱动。
于是继续:

发现确实电脑自己的版本还更新,就把显卡驱动勾去掉,再继续安装,一路默认下去。

3. 添加环境变量:
安装完毕后,可以看到系统中多了CUDA_PATHCUDA_PATH_V8_0两个环境变量,接下来,还要在系统中添加以下几个环境变量:
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0. 
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64 
CUDA_BIN_PATH = %CUDA_PATH%\bin 
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\x64 
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64

然后,在系统变量PATH 的末尾添加:
;%CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_LIB_PATH%;%CUDA_SDK_BIN_PATH%;

4. 重启电脑

二. VS2013与CUDA关联(不知道这步是有什么用,CUDA里面的Sample用VS打开都可以直接运行,都不用关联)
1. 新建win32控制台程序-空项目
2. 右键 源文件,新建CUDA源文件:

3. 右键项目->生成依赖项->生成自定义,勾选CUDA8.0***选项:

4. 右键项目->属性->配置属性->VC++目录,添加以下两个包含目录:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include 
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\common\inc
再添加两个库目录:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64 
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\common\lib\x64

5.右键项目->属性->配置属性->链接器->常规->附加库目录,添加
$(CUDA_PATH_V8_0)\lib\$(Platform)

6. 右键项目->属性->配置属性->链接器->输入->附加依赖项, 添加
cublas.lib
cublas_device.lib
cuda.lib
cudadevrt.lib
cudart.lib
cudart_static.lib
cufft.lib
cufftw.lib
curand.lib
cusparse.lib
nppc.lib
nppi.lib
npps.lib
nvblas.lib
nvcuvenc.lib
nvcuvid.lib
OpenCL.lib
注意:这里后来把nvcuvenc.lib删掉了,否则一直出错。

7. 右键之前创建的源文件,点击属性,选择项类型 CUDA C/C++:

8. 打开配置管理器(运行按钮旁边下拉框),选择X64平台

9. 测试代码:
/** * addition: C = A + B. * * This sample is a very basic sample that implements element by element * vector addition. It is the same as the sample illustrating Chapter 2 * of the programming guide with some additions like error checking. */
#include <stdio.h>
#include <iostream> // For the CUDA runtime routines (prefixed with "cuda_")
#include <cuda_runtime.h>
/** * CUDA Kernel Device code * * Computes the vector addition of A and B into C. The 3 vectors have the same * number of elements numElements. */
__global__ void Add(int a, int b, int *c) {
*c = a + b;
}
int main() {
int c;
int *devc;
cudaError_t err = cudaSuccess;
err = cudaMalloc((void **)&devc, sizeof(int));
if (err != cudaSuccess) {
fprintf(stderr, "Failed to allocate device vector A (error code %s)!\n", cudaGetErrorString(err));
exit(EXIT_FAILURE);
}
Add << <1, 1 >> >(2, 7, devc);
err = cudaMemcpy(&c, devc, sizeof(int), cudaMemcpyDeviceToHost);
if (err != cudaSuccess) {
fprintf(stderr, "Failed to allocate device vector A (error code %s)!\n", cudaGetErrorString(err));
exit(EXIT_FAILURE);
}
printf("2+7=%d\n", c);
cudaFree(devc);
system("pause");
return 0;
}

三. 安装配置Caffe
1. 下载Caffe和第三方包
2015/02/25 微软制作了一个caffe的windows版:
https://github.com/yyz051/caffe-windows
第三方:
http://pan.baidu.com/s/1bSzvKa
解压后放在Caffe里的3rdparty文件夹里
2. 将3rdparty/bin添加到环境变量PATH中
3. 运行./src/caffe/proto/extract_proto.bat批处理文件来生成caffe.pb.h和caffe.pb.cc两个C++文件,和caffe_pb2.py这个python使用的文件。
4. 打开./buildVS2013/MainBuilder.sln,打开之后切换编译模式至Release X64模式,如果现实加载失败,可能是CUDA版本不一致,用记事本将各个文件夹下的.vcxproj文件里的CUDA版本号换成自己的版本号。(搜索7.5, 全部替换成8.0)
5. 之后编译出错:有很多类似的错误
error: function “atomicAdd(double *, double)” has already been defined
查找原因估计是CUDA版本问题,还是用7.5版本。。这个笔记--卒



0 0