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

2023-11-05

这是个失败的版本,既然记录下来了,就保留下来,总体来说没错,只是可能CUDA版本不合适。
可以参考下。
一. 安装CUDA
2. 正常安装
出现这个问题。。不懂。。我还是继续了
后来大概弄懂了:
首先,CUDA不是驱动,这里的“This graphics driver"让我以为CUDA是显卡驱动,坑爹,其实应该是CUDA里面自带了驱动程序,这个驱动程序不适合我的显卡(GTX 1060),因此上面说如果建议我保留自己的显卡驱动,也就是继续安装时不要安装CUDA带来的显卡驱动。
于是继续:
发现确实电脑自己的版本还更新,就把显卡驱动勾去掉,再继续安装,一路默认下去。
3. 添加环境变量:
安装完毕后,可以看到系统中多了 CUDA_PATH CUDA_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版:
第三方:
解压后放在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. 之后编译出错:有很多类似的错误
查找原因估计是CUDA版本问题,还是用7.5版本。。这个笔记--卒
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • CUDA:获取数组中的最大值及其索引

    我有几个块 每个块在整数数组的单独部分上执行 举个例子 块一从 array 0 到 array 9 块二从 array 10 到 array 20 我可以获得每个块的数组最大值的索引的最佳方法是什么 示例块一 a 0 到 a 10 具有以下
  • 在没有 SurfaceView 的 Android 上获取 GPU 信息

    在Android上 有没有一种方法可以在不创建SurfaceView的情况下获取GPU信息 我不想使用 OpenGL 绘制任何内容 但我只需要获取硬件信息 例如供应商 OpenGL ES 版本 可用扩展等 抱歉 我不知道如何在 Androi
  • 云或烟雾的粒子系统

    我正在尝试使用 OpenGL 和 CUDA 制作一个简单的用于云和烟雾模拟的粒子系统 如何使粒子系统中的粒子表现得像真正的云或烟雾在低湍流风中的表现 我现在遇到的一些问题是 颗粒聚集成一个大球 粒子扩散到无限远 粒子突然弹射离开 我已经完成
  • CUDA NSight 未随 Windows 8 上的 CUDA 5.0 安装文件一起安装? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 据我所知 Nvidia 网站上没有 Nsight Eclipse 的下载链接 它说它将由 CUDA 5 安装本机安装 但并没有随CUDA安装一起安装
  • 如何在CUDA应用程序中正确应用线程同步?

    一般来说 我在应用程序中偶尔会使用线程同步 因为我并不经常需要此功能 我并不是真正的高级 C C 程序员 但我也不是初学者 我开始学习 CUDA C 对当今 GPU 与 CPU 的能力相比感到兴奋 我意识到 CUDA 编程主要是关于并行线程
  • C 中的 CUDA:如何使用 cudaMemcpyAsync 修复错误 11

    我目前正在尝试使用 CUDA 运行一个简单的多 GPU 程序 它的基本作用是将一个包含一些虚拟数据的大型数组复制到 GPU GPU 进行一些数学计算 然后将结果数组复制回来 我在 VS2017 的输出中没有收到任何错误 但我设置的一些错误消
  • CUDA 的嵌套循环

    我想将我的 C 代码移植到 CUDA 主要计算部分包含3个for嵌套循环 for int i 0 i lt Nx i for int j 0 j
  • CUDA 模型 - 什么是扭曲尺寸?

    最大工作组大小和扭曲大小之间有什么关系 假设我的设备有 240 个 CUDA 流处理器 SP 并返回以下信息 CL DEVICE MAX COMPUTE UNITS 30 CL DEVICE MAX WORK ITEM SIZES 512
  • 摆脱异步 cuda 流执行期间的忙等待

    我正在寻找一种方法 如何摆脱以下代码中主机线程中的忙等待 不要复制该代码 它仅显示我的问题的想法 它有许多基本错误 cudaStream t steams S N for int i 0 i lt S N i cudaStreamCreat
  • 使用 GPU 进行 Matlab 卷积

    我用gpuArray尝试了matlab的卷积函数conv2 convn 例如 convn gpuArray rand 100 100 10 single gpuArray rand 5 single 并将其与 cpu 版本 convn ra
  • 如何检查 webgl(two.js) 的客户端性能

    我有一个使用 Three JS 的图形项目 现在我想自动检查客户端 GPU 性能并计算可以在应用程序中加载多少元素 我想到了诸如 GPU 基准测试之类的东西 看一眼stats js https github com mrdoob stats
  • 无法编译cuda_ndarray.cu:libcublas.so.7.5:无法打开共享对象文件

    我正在尝试在 aws 实例中导入 theano 库以使用 GPU 我已经使用 boto 编写了一个 python 脚本来自动执行 aws 设置 该脚本本质上会从我的本地计算机对实例执行 ssh 然后启动一个 bash 脚本 其中我执行 py
  • 如何从C++头文件调用CUDA文件?

    我知道从 c 文件调用 cu 文件的方法 但现在我想从 C 头文件调用 cu 文件 有可能做到吗 如果是这样 我应该如何设置我的项目 请帮忙 这是一个有效的例子 file1 h int hello file2 h include
  • 根据caffe中的“badness”缩放损失值

    我想根据训练期间 当前预测 与 正确标签 的接近 远近来缩放每个图像的损失值 例如 如果正确的标签是 猫 而网络认为它是 狗 那么惩罚 损失 应该小于网络认为它是 汽车 的情况 我正在做的方式如下 1 我定义了标签之间距离的矩阵 2 将该矩
  • 如何强制tensorflow使用所有可用的GPU?

    我有一个 8 GPU 集群 当我运行Kaggle 的一段 Tensorflow 代码 https www kaggle com keegil keras u net starter lb 0 277 scriptVersionId 2164
  • 为什么使用 boost::none 无法通过 nvcc 编译?

    我正在尝试编译以下代码 include
  • CUDA cutil.h 在哪里?

    有谁知道包含 cutil h 的 SDK 工具包在哪里 我尝试了 CUDA toolkits3 2 和 toolkits5 0 我知道这个版本已经不支持 cutil h 我还注意到一些提到的如何在 Linux 中包含 cutil h htt
  • 如何在Python中导入caffe模块?

    我在 Windows 发布版 x64 上构建了 caffe cpp 的 dll 我将扩展名 dll 更改为 pyd 并尝试将其导入到 python 中 import caffe File caffe master python caffe
  • 如何转储所有 NVCC 预处理器定义?

    我想达到同样的效果 gcc dM E lt dev null 如所描述的here https stackoverflow com q 2224334 1593077 但对于 nvcc 也就是说 我想转储所有 nvcc 的预处理器定义 唉 n
  • 如何使用 Visual Studio 2008 调试 CUDA 内核代码?

    嘿 我正在使用带有 CUDA 3 2 的 Visual Studio 2008 我正在尝试调试具有此签名的函数 MatrixMultiplication Kernel lt lt

随机推荐

  • 《substrate 快速入门与开发实战》

    视频地址 https www bilibili com video BV1C4411U7Rv substrate的升级过程 编写的runtime代码 gt 编译后 得到runtime的wasm二进制文件 gt 通过链上的治理模块发送升级ru
  • 关于nodejs中使用fluent-ffmpeg模块、ffmpeg工具的使用心得

    类人猿Blog 欢迎来到我的博客 您好 这是本人第一次写博客 请多多指教 nodejs中使用 fluent ffmpeg 详细方法和系统配置 适应于 windows和 linux 特别是在 redhat6 x中得以验证通过 简介 我们都知道
  • 对于c++中模板函数的一点体会

    何为模板函数 从字面上就可以看出来模板函数必须具备通用性 举个简单却很实用的例子 交换两个值的函数Swap 交换两个字符型void Swap char a char b 交换两个整型void Swap int a int b 交换两个浮点型
  • 【RabbitMQ教程】“Hello World”工作队列模式

    目录 前言 Hello World 工作队列模式介绍 消息模型 入门案例代码示例 自动ACK 消息确认机制 自动ACK存在的问题 演示手动ACK 前言 1 将 Hello World工作队列模式 单独抽出来细讲 目的是借助这个模式好好讲一下
  • PostgreSQL出现死锁该如何解决

    目录 什么是数据库死锁 定位死锁 死锁可能原因及解决办法 1 索引使用不当导致的死锁问题 2 不同事务之间的访问顺序问题 避免死锁的建议 附 数据库中常见的死锁原因与解决方案 总结 什么是数据库死锁 在操作系统领域当中 死锁指的是两个或者两
  • linux下飞鸽传书,ipmsg的安装(支持中文名文件传输,以及文件夹传输)

    一 下载 飞鸽 传书 http www ipmsg org archive g2ipmsg 0 9 5 tar gz 二 解压 tar zxvf g2ipmsg 0 9 5 tar gz cd g2ipmsg 0 9 5 三 修改参数 使它
  • linux 固定 ip 地址

    文章目录 查看当前ip 修改配置文件 查看当前ip ip addr ifconfig 修改配置文件 vim etc sysconfig network scripts ifcfg ens33 原来是这样的 TYPE Ethernet PRO
  • 软件测试-面试题

    1 什么是需求文档测试 测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现 2 什么是设计文档测试 测试设计是否符合全部需求以及设计是否合理 3 什么是 测试 Alpha测试 测试 是由一个用户在开发环境下进行的测试 也可以是公司内部的
  • SpringBoot 集成Redisson 提示:java.lang.ClassNotFoundException: **.redis.connection.ReactiveRedisConnec

    SpringBoot 集成Redisson 提示如下错误信息 Caused by java lang ClassNotFoundException org springframework data redis connection Reac
  • Vue安装less报错

    使用npm安装less 指定版本为5 npm install save less less loader 5 报错 npm ERR code ERESOLVE npm ERR ERESOLVE unable to resolve depen
  • 渗透测试面试题--日更(1-9day)

    day one 1 拿到一个待检测的web站 渗透测试思路 答 1 信息收集 获取域名的whois信息 获取注册者的邮箱姓名电话等 查服务器的旁站以及子域名站点 因为主站一般比较难 所以可以先看看旁站有没有通用cms或者其他漏洞 查看服务器
  • 华为OD机试真题-单词接龙-2023年OD统一考试(B卷)

    题目描述 单词接龙的规则是 可用于接龙的单词首字母必须要前一个单词的尾字母相同 当存在多个首字母相同的单词时 取长度最长的单词 如果长度也相等 则取字典序最小的单词 已经参与接龙的单词不能重复使用 现给定一组全部由小写字母组成单词数组 并指
  • 基于高德地图API — 绘制热力图初尝试

    初次了解高德地图 并尝试在地图的基础上绘制热力图 官方传送链接高德开放平台 前提准备 点击注册开发者账号 登录成功后 点击左侧菜单栏 应用管理 如图所示 点击 添加 获取API 服务平台 一项请选择 Web 端 JSAPI 回到页面 引入文
  • 基于DAC0832的信号发生器设计与实现(源码+原理图+PCB)

    摘要 本课题设计了一个基于DAC0832的信号发生器 使之输出不同频率的正弦波 三角波 锯齿波和方波 并通过按键切换不同的波形 也可以改变频率以及频率变化的步进 本方案选择了DAC0832作为核心芯片 并与51单片机结合 设计出一款建议的高
  • 共识算法1--工作量证明机制简介及算法实现

    共识算法1 工作量证明机制简介及算法实现 所谓 共识机制 是通过特殊节点的投票 在很短的时间内完成对交易的验证和确认 对一笔交易 如果利益不相干的若干个节点能够达成共识 我们就可以认为全网对此也能够达成共识 1 当前 已有多种常见的共识机制
  • 【GO】详解GOROOT和GOPATH

    GOROOT 其实就是golang 的安装路径 当你安装好golang之后其实这个就已经有了 GOPATH 作用 存放sdk以外的第三方类库 自己收藏的可复用的代码 目录结构 GOPATH目录约定有三个子目录 3 src存放源代码 比如 g
  • 蚀刻后残留物和光刻胶去除技术

    摘要 在未来几代器件中 去除光刻胶和残留物变得非常关键 在前端线后离子注入 源极 漏极 扩展 使用PR来阻断部分电路导致PR基本上硬化并且难以去除 在后端线 BEOL 蚀刻中 除低k材料的情况下去除抗蚀剂和残留物的选择性非常具有挑战性 介绍
  • uniapp select 多选选择器封装

    前言 作者想实现的功能类似一个uniapp选择器 但是可以选择多个值 同时又可以单选和全选 在uniapp 的UI框架去找 发现没有类似的 最后在uniapp 的插件市场找到了这个multiple select 里面的功能比较全实现了单选全
  • MySQL 多表连接查询

    交叉连接 特点 又称 笛卡尔乘积 将多张表中的数据行一 一对应连接在一起 结果集的数据行数相当于多张表数据行数 相乘 后的结果 语法格式 select 字段列表 from 表1 表2 表3 where 连接条件1 and 连接条件2 注释
  • Windows7下安装Caffe(GPU):试了很久的失败版本(可参考)

    这是个失败的版本 既然记录下来了 就保留下来 总体来说没错 只是可能CUDA版本不合适 可以参考下 一 安装CUDA 1 下载 https developer nvidia com cuda downloads 2 正常安装 出现这个问题