问题1:

老版本的MatConvNet在编译对cuDNN支持的时候,cuDNN的版本是2或者4比较好,官网有明确的描述。

比如我编译用了cuDNN 6.0的版本,在编译 nnconv_cudnn.cu文件时会出现too few arguments in function call 的错误。

问题2:

更改cuDNN为4.0版本后,编译nnbilinearsampler_cudnn.cu出现以下错误:

nnbilinearsampler_cudnn.cu(24) : fatal error C1021: 无效的预处理器命令“warning”

解决办法是直接注释掉第24行,即可。  2017.11.18

问题3:

GPU/cuDNN编译成功后,运行调用MatConvNet的代码,在使用vl_simplenn做forward pass时候依然出现下面的错误:

An input is not a numeric array (or GPU support not compiled)

该错误发生在vl_simplenn.m中前向传播计算res.x的时候。

解决办法:

更改vl_compilenn.m文件的mex_compile函数。

将 mopts = {'-outdir', fileparts(tgt), src, '-c', mex_opts{:}} ;

更改为 mopts = {'-outdir', fileparts(tgt), src, '-c', mex_opts{:}, '-largeArrayDims'} ; 然后再对GPU版本重新编译 。  2017.11.23

问题4:

新下载了1.25版本的MatConvNet,在nnbilinearsampler_cudnn.cu和nnbilinearsampler.cu文件这里总是编译出现错误。

然后在官网:http://www.vlfeat.org/matconvnet/mfiles/vl_nnbilinearsampler/中明确说明了:Note, cuDNN v5 or higher is required.

于是又换了6.0的cuDNN,可以解决问题。                                                                                                            2017.11.29

问题5:

继续.1.25版本的MatConvNet编译出现无法解析的外部命令的错误。提示:

无法解析外部符号 cudnnCreateSpatialTransformerDescriptor

解决办法:在更换了6.0的cuDNN后,忘记把lib文件和头文件放到cuda的文件夹下,复制过去后,问题解决。

问题6:

1.25版本的MatConvNet中的vl_compilenn.m文件中在506行增加了这样的判断

if strcmp(arch, 'win64') && opts.enableCudnn

这要求&&符号前后都是逻辑值,所以在运行vl_compilenn函数中'enableCudnn'后面要跟true,而不是跟'true',即编译语句为:

vl_compilenn('enableGpu', true, ...
      'cudaRoot', 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0', ... 
      'cudaMethod', 'nvcc',...
      'enableCudnn', true, ...
      'cudnnRoot', 'xxx\cuDNNv6'); % 这里填写你的cuDNN的路径

否则会报Operands to the || and && operators must be convertible to logical scalar values的错误。 2017.11.30

代码问题: 【MatConvNet库编译】的更多相关文章

  1. 将STM32的标准库编译成lib使用【图文】

    以前一直使用STM32的标准库,需要一步步地将代码加进去,将编译选项设置好,然后再编译整个工程. 这个编译过程是一个相当慢的过程!完全编译大约需要一支烟的时间.每次建立工程都这么编译,是一个相当浪费时 ...

  2. 将STM32的标准库编译成lib

    转载自:http://www.cnblogs.com/zyqgold/p/3189719.html 以前一直使用STM32的标准库,需要一步步地将代码加进去,将编译选项设置好,然后再编译整个工程. 这 ...

  3. C/C++ 跨平台交叉编译、静态库/动态库编译、MinGW、Cygwin、CodeBlocks使用原理及链接参数选项

    目录 . 引言 . 交叉编译 . Cygwin简介 . 静态库编译及使用 . 动态库编译及使用 . MinGW简介 . CodeBlocks简介 0. 引言 UNIX是一个注册商标,是要满足一大堆条件 ...

  4. linux动态库编译和使用详细剖析

    引言 重点讲述linux上使用gcc编译动态库的一些操作.并且对其深入的案例分析.最后介绍一下动态库插件技术, 让代码向后兼容.关于linux上使用gcc基础编译, 预编译,编译,生成机械码最后链接输 ...

  5. linux动态库编译和使用

    linux动态库编译和使用详细剖析 引言 重点讲述linux上使用gcc编译动态库的一些操作.并且对其深入的案例分析.最后介绍一下动态库插件技术, 让代码向后兼容.关于linux上使用gcc基础编译, ...

  6. linux动态库编译和使用详细剖析 - 后续

    引言 - 也许是修行 很久以前写过关于动态库科普文章, 废话反正是说了好多. 核心就是在 linux 上面玩了一下 dlopen : ) linux动态库编译和使用详细剖析 - https://www ...

  7. 转载:将STM32的标准库编译成lib使用【图文】

    from:http://www.cnblogs.com/zyqgold/p/3189719.html 百度上边也有不少关于lib文件的文章,恰巧看到该博文,感觉该博文的条理清晰,步骤明确,故复制到这个 ...

  8. 在VS13上编译通过的代码放在12上编译-错误:l __dtoui3 referenced in function _event_debug_map_HT_GROW

    在VS13上编译通过的代码放在12上编译 遇到错误:l __dtoui3 referenced in function _event_debug_map_HT_GROW 1>------ 已启动 ...

  9. 将pugixml库编译成动态库的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 pugixml库默认是编译成静态库的.要把pugixml库编译成一个动态库,需要对代码做一些修改,具体是将 // If ...

随机推荐

  1. Python基础5--字符串

    1 find().rfind().index().rindex().count() s = "this apple is red apple" s.find("apple ...

  2. JAVA_模糊查询_重点是concat关键字

    SELECT * FROM user WHERE username LIKE concat('%',#{username},'%') concat : 类似+ ,拼接sql.sql语句中会将+ 重写. ...

  3. OAuth和OpenID的区别

    OAuth关注的是authorization:而OpenID侧重的是authentication.从表面上看,这两个英文单词很容易混淆,但实际上,它们的含义有本质的区别: authorization: ...

  4. 20165228 2017-2018-2 《Java程序设计》第8周学习总结

    20165228 2017-2018-2 <Java程序设计>第8周学习总结 教材学习内容总结 进程与线程的关系 多线程的运行机制 线程的四种状态:新建.运行.中断.死亡 使用Thread ...

  5. ORACLE RAC 11.2.0.4 CentOS release 6.9 静默安装1.0版本

    RAC11.2.0.4静默安装 1.0版本,20180613 #本文档IP地址使用X隐藏,个人可按照自己的当前环境IP进行适当修改 1. 清除原环境中的单实例软件 #清除原环境: 删除/etc/ora ...

  6. VMware网络连接IP设置

    网络配置(仅主机模式) 一.改变虚拟机IP地址达到联网目的 仅主机模式,第一步,打开我的电脑属性,查看VMt1网卡IP设置,设置一个区段:192.168.xx.aa       xx.aa自由设置,简 ...

  7. Stiring公式证明

  8. 配置Glassfish服务器、部署Java web项目、Maven安装配置及JDK版本匹配性问题

    错误一:在win7上通过命令asadmin start-domain启动Glassfish服务器时报错(如下): Exception in thread "main" java.l ...

  9. 20155219 2016-2017-2 《Java程序设计》第4周学习总结

    20155219 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 抽象方法与抽象类 如果某方法区块中没有任何程序代码操作,可以使用abstract在class ...

  10. 求区间最值---rmp

    void get_rmp () { ;i<=n;i++) r[i][]=a[i];// a[] 原数组 ;(<<j)<=n;j++) ;i+(<<j)-<=n ...