Win11配置Matconvnet错误使用 vl_compilenn>nvcc_compile和datacu.hpp undefined的问题

2023-05-16

初始配置环境:

        电脑:联想R9000K Win11

        显卡:3080

        Matlab 2021b

        Visual Studio 2017 Professional

        VS安装位置:D:\VisualStudio2017

        CUDA:cuda_11.3.1_465.89_win10

        CUDA安装位置:D:\CUDA\NVIDIA GPU Computing ToolKit\v11.3\

        Cudnn:cudnn-11.3-windows-x64-v8.2.1.32

        Matconvnet:matconvnet-1.0-beta25

配置过程中,关于mex设置问题均按照网上的方法解决了,但始终报如下错误:

警告: Setting the 'MW_NVCC_PATH' environment variable to 'D:\CUDA\NVIDIA GPU Computing ToolKit\v11.3\bin\nvcc' 
> 位置:vl_compilenn>activate_nvcc (第 758 行)
位置: vl_compilenn (第 299 行) 
警告: CL.EXE not found in PATH. Trying to guess out of mex setup. 
> 位置:vl_compilenn>check_clpath (第 656 行)
位置: vl_compilenn (第 429 行) 
用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版 
版权所有(C) Microsoft Corporation。保留所有权利。 
 
用法: cl [ 选项... ] 文件名... [ /link 链接选项... ] 
Location of cl.exe (D:\VisualStudio2017\IDE\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64) successfully added to your PATH.
错误使用 vl_compilenn>nvcc_compile (第 620 行)
Command "D:\CUDA\NVIDIA GPU Computing ToolKit\v11.3\bin\nvcc" -c -o 
"E:\Matlab Projects\00 MatConvNet\matconvnet-1.0-beta25\matlab\mex\.build\bits\data.obj"
"E:\Matlab Projects\00 MatConvNet\matconvnet-1.0-beta25\matlab\src\bits\data.cu" -DENABLE_GPU -DENABLE_DOUBLE -DENABLE_CUDNN -I".local\cudnn\include" -g
-DDEBUG -D_FORCE_INLINES --std=c++11 
-I"D:\Matlab 2021b\extern\include" 
-I"D:\Matlab 2021b\toolbox\parallel\gpu\extern\include"
-gencode=arch=compute_86,code=\"sm_86,compute_86\"  
--compiler-options=/MD 
--compiler-bindir="D:\VisualStudio2017\IDE\VC\Tools\MSVC\14.16.27023\bin\Hostx64"
failed.

出错 vl_compilenn (第 490 行)
      nvcc_compile(opts, srcs{i}, objfile, flags) ;

网上找了很多参考资料均无法解决,后参考如下两篇文章,发现问题:

MatConvNet安装问题_White Jiang的博客-CSDN博客

另一篇由于从窗口太多关闭了,没找到,主要的参考价值为一条评论:Matconvnet最高支持的CUDA版本为10.2但这个信息我未能求证(有兴趣的可以求证后将信息分享一下),随后,我将CUDA和Cudnn的版本进行了更换,更新后的环境配置如下:

        电脑:联想R9000K Win11

        显卡:3080

        Matlab 2021b

        Visual Studio 2017 Professional

        VS安装位置:D:\VisualStudio2017

        CUDA:cuda_10.1.243_426.00_win10

        CUDA安装位置:D:\CUDA\v10.1\NVIDIA GPU Computing Toolkit

        Cudnn:cudnn-10.1-windows10-x64-v8.0.5.39

        Matconvnet:matconvnet-1.0-beta25

随后编译过程中出现如下问题:

错误使用 mex
'E:\Matlab Projects\00_MatConvNet\matconvnet-1.0-beta25\matlab\mex\vl_nnconv.mexw64' 使用了
'-R2018a' 进行编译并与 '-R2017b' 链接在一起。 有关详细信息,请参阅 MEX 文件使用了一个 API 进行编译并与另一个
API 链接在一起。

出错 vl_compilenn>mex_link (第 632 行)
mex(args{:}) ;

出错 vl_compilenn (第 503 行)
  mex_link(opts, objs, flags.mex_dir, flags) ;

参考如下文章:MatConvNet compiled with '-R2018a' and linked with '-R2017b'_u014292102的博客-CSDN博客

随后编译:

编译指令: vl_compilenn('enableGpu',true);

成功编译通过。

接下来使用Cudnn编译,即设置opts.enableCudnn = true,完整设置如下:

opts.continue         = false; % false
opts.enableGpu        = true; % false
opts.enableImreadJpeg = true;
opts.enableCudnn      = true; % false
opts.enableDouble     = true;
opts.imageLibrary = [] ;
opts.imageLibraryCompileFlags = {} ;
opts.imageLibraryLinkFlags = [] ;
opts.verbose          = 0;
opts.debug            = false;
opts.cudaMethod       = []; % []
opts.cudaRoot         = 'D:\CUDA\v10.1\NVIDIA GPU Computing Toolkit' ;
opts.cudaArch         = [] ;
opts.defCudaArch      = [...
  '-gencode=arch=compute_86,code=\"sm_86,compute_86\" '];
opts.mexConfig        = '' ;
opts.mexCudaConfig    = '' ;
opts.cudnnRoot        = 'D:\CUDA\v10.1\NVIDIA GPU Computing Toolkit' ;
opts.preCompileFn       = [] ;
opts = vl_argparse(opts, varargin);

报错:

e:\matlab projects\00_matconvnet\matconvnet-1.0-beta25\matlab\src\bits\datacu.hpp(89): error: identifier "cudnnConvolutionFwdPreference_t" is undefined 
 
e:\matlab projects\00_matconvnet\matconvnet-1.0-beta25\matlab\src\bits\datacu.hpp(94): error: identifier "cudnnConvolutionBwdFilterPreference_t" is undefined 
 
e:\matlab projects\00_matconvnet\matconvnet-1.0-beta25\matlab\src\bits\datacu.hpp(99): error: identifier "cudnnConvolutionBwdDataPreference_t" is undefined 
 
e:\matlab projects\00_matconvnet\matconvnet-1.0-beta25\matlab\src\bits\datacu.hpp(141): error: identifier "cudnnConvolutionFwdPreference_t" is undefined 
 
e:\matlab projects\00_matconvnet\matconvnet-1.0-beta25\matlab\src\bits\datacu.hpp(147): error: identifier "cudnnConvolutionBwdFilterPreference_t" is undefined 
 
e:\matlab projects\00_matconvnet\matconvnet-1.0-beta25\matlab\src\bits\datacu.hpp(153): error: identifier "cudnnConvolutionBwdDataPreference_t" is undefined 
 
6 errors detected in the compilation of "C:/Users/张小祥/AppData/Local/Temp/tmpxft_00004a84_00000000-10_data.cpp1.ii". 
nvcc warning : The -std=c++11 flag is not supported with the configured host compiler. Flag will be ignored. 
data.cu 
错误使用 vl_compilenn>nvcc_compile (第 620 行)
Command "D:\CUDA\v10.1\NVIDIA GPU Computing Toolkit\bin\nvcc" -c -o "E:\Matlab
Projects\00_MatConvNet\matconvnet-1.0-beta25\matlab\mex\.build\bits\data.obj" "E:\Matlab
Projects\00_MatConvNet\matconvnet-1.0-beta25\matlab\src\bits\data.cu" -DENABLE_GPU -DENABLE_DOUBLE -DENABLE_CUDNN -O3 -DNDEBUG
-D_FORCE_INLINES --std=c++11 -I"D:\Matlab2021b\extern\include" -I"D:\Matlab2021b\toolbox\parallel\gpu\extern\include"
-gencode=arch=compute_75,code=\"sm_75,compute_75\"  --compiler-options=/MD
--compiler-bindir="D:\VisualStudio2017\IDE\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64"  failed.

出错 vl_compilenn (第 490 行)
      nvcc_compile(opts, srcs{i}, objfile, flags) ;

参考如下链接:https://ww2.mathworks.cn/matlabcentral/answers/602116-matconvnet-error-on-vl_compilenn-on-gpu

主要问题是cudnn版本的问题:

 随后参考链接:Windows 10系统下MATLAB2018b调用CUDA 10.1和NVCC_博博有个大大大的Dream-CSDN博客将cudnn的版本更换为7版本,随后问题解决,编译顺利通过。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Win11配置Matconvnet错误使用 vl_compilenn>nvcc_compile和datacu.hpp undefined的问题 的相关文章

  • MFC使用winpcap 抓包 pcap_compile使用

    使用Winpcap编写 xff1a 最近工作需要抓取傻瓜交换机的MAC xff0c 由于没有IP只能使用Winpcap抓包工具来实现 本人初学者 xff0c 大佬请绕行 a 先获取电脑的网卡信息 在SwithCheckMacDlg h文件中
  • Win11打开移动热点后电脑无法上网怎么办?

    Win11打开移动热点后电脑无法上网怎么办 xff1f 有用户将自己的电脑开启移动热点来使用的时候 xff0c 发现自己的电脑出现了无法上网的情况 那么为什么开启热点之后 xff0c 就会无法进行上网呢 xff1f 来看看以下的解决方法分享
  • cmake:设置编译选项的讲究(add_compile_options和CMAKE_CXX_FLAGS的区别) 转自CSDN

    https blog csdn net 10km article details 51731959 cmake 设置编译选项的讲究 add compile options和CMAKE CXX FLAGS的区别 2016年06月22日 09
  • Win11安装OBS Studio的详细步骤图文教程

    Win11安装OBS Studio的详细步骤图文教程分享 一些用户为了进行更方便的视频直播录制功能 xff0c 需要在电脑上安装OBS Studio 但是自己对这款软件比较陌生 xff0c 而且因为它是英文的 xff0c 不知道怎么安装 接
  • win11切换win10资源管理器

    HKEY LOCAL MACHINE SOFTWARE Microsoft Windows CurrentVersion Shell Extensions 右键 Blocked 选择 新建 字符串值 名称为 e2bf9676 5f8f 43
  • Can‘t Compile project with PCL

    报错 xff1a In file included from usr include vtk vtkAtomicTypes h 18 0 from usr include vtk vtkObjectBase h 46 from usr in
  • 堆和栈的区别

    1 1内存分配方面 堆 一般由程序员分配释放 若程序员不释放 程序结束时可能由OS回收 注意它与数据结构中的堆是两回事 分配方式是类似于链表 可能用到的关键字如下 new malloc delete free等等 栈 由编译器 Compil
  • MatConvNet:3.代码(一)cnn_mnist.m注释

    原文链接 https blog csdn net qq 20259459 article details 54411178 博主博客地址 http blog csdn net qq 20259459 作者邮箱 jinweizhi93 gma
  • 【系统】win11怎么退回win10

    根据微软官方提供的回滚方案显示 在升级Win11之后的10天之内 用户可以通过系统恢复选项将Win11还原Win10 操作方式也比较简单 大家可以打开系统设置 找到相应选项 选择并确认后即可轻松将Win11回退早期版本 详细操作步骤如下 一
  • Windows修改右键新建菜单【Win10、Win11版】

    目录 一 引言 二 方法一 三 成果展示 四 方法二 删除Shell New 五 方法三 借助shellNewSettings小工具 一 引言 有些混乱的windows桌面新建菜单 是不是让人很不舒服 比如下图 图中的Access需要新建么
  • Angular-1.5.8文档翻译之$compile

    对照地址 https code angularjs org 1 5 8 docs api ng service compile compile是将一个DOM字符串或者一个DOM进行编译并返回一个模板链接函数 这个链接函数可以用于将scope
  • 是否有 NVCC 的“#pragma nv_exec_check_disable”和/或“#pragma hd_warning_disable”的任何文档?

    一些项目使用 pragma nv exec check disable and or pragma hd warning disable 消除 NVCC 的警告 warning calling a host function from a
  • CUDA/PTX 32 位与 64 位

    CUDA 编译器可以选择生成 32 位或 64 位 PTX 这些有什么区别呢 是不是像 x86 一样 NVidia GPU 实际上也有 32 位和 64 位 ISA 还是仅与主机代码有关 指针肯定是最明显的区别 http docs nvid
  • nvlink、可重定位设备代码和静态设备库

    在调查可重定位设备代码的一些问题时 我偶然发现了一些我不太理解的东西 这是如图所示的用例slide 6 http on demand gputechconf com gtc express 2012 presentations gpu ob
  • 何时将 volatile 与寄存器/局部变量一起使用

    在 CUDA 中使用 volatile 限定符声明寄存器数组的含义是什么 当我尝试使用 volatile 关键字和寄存器数组时 它删除了溢出寄存器内存到本地内存的数量 即强制 CUDA 使用寄存器而不是本地内存 这是预期的行为吗 我在 CU
  • 在 Windows 上编译 MatConvNet

    我正在尝试编译矩阵卷积网络 http www vlfeat org matconvnet 在 Windows 8 1 上 因为我似乎需要使用 Makefile 来做到这一点 所以我下载了GNUWin 制作 http gnuwin32 sou
  • 在windows下编译linux gcc - windows下的nvcc

    这是一个有趣的问题 如果得到肯定的回答 将使交叉编译变得更加容易 由于gcc是用C 编写的 是否可以在Windows MinGW G 或VSC 编译器上重新编译Linux gcc编译器 以便生成的Windows可执行文件能够将c代码编译为l
  • 为什么 nvcc 无法使用 boost::spirit 编译 CUDA 文件?

    我正在尝试将 CUDA 集成到使用 boost spirit 的现有应用程序 隔离问题后 我发现以下代码无法使用 nvcc 编译 main cu include
  • 使用 nvcc 编译给出“没有这样的文件或目录”

    我正在尝试在 Ubuntu 上使用 nvcc 编译 CUDA 代码 但是 当我这样做时 我得到以下输出 gt make usr local cuda bin nvcc m64 ptxas options v gencode arch com
  • 如何在cmake中添加cuda源代码的定义

    我使用的是 Visual Studio 2013 Windows 10 CMake 3 5 1 一切都可以使用标准 C 正确编译 例如 CMakeLists txt project Test add definitions D WINDOW

随机推荐

  • vscode如何连接gitlab代码库

    零 前期准备工作 1 已安装好vscode xff0c 如未安装 xff0c 按如下地址下载并且安装 xff08 或参考其他安装教程 xff09 xff1a https code visualstudio com Download 2 已安
  • 对rtthread系统的理解

    写这个的目的就是记录下自己对rtthread系统框架的理解 xff0c 并不会对相关的知识点做介绍 xff0c 因为官方文档介绍的比较详细 xff08 也有介绍不细致的地方 xff09 xff0c 我没必要去摘录一遍 在工作中用rtthre
  • performance API 中什么指标可以衡量首屏时间

    performance timing loadEventEnd 返回当前网页 load 事件的回调函数运行结束时的 Unix 毫秒时间戳 如果该事件还没有发生 返回 0 performance timing navigationStart
  • C++中的双冒号

    文章目录 https www cnblogs com kimmychul p 3951229 html 另外 xff0c 在ros中 xff0c 创建的xxx msg xxx srv等文件中定义的变量a xff0c 在使用时要写packag
  • Python使用ros的TF变换

    https www cnblogs com xialuobo p 6097806 html
  • CMakeList.txt文件详解

    1 整体结构 CMakeList txt文件必须遵循以下的格式 xff1a 所需的CMake版本 xff08 cmake minimum required xff09 软件包的名称 xff08 project xff09 查找构建所需要的其
  • centos7.5 + ryu+mininet+docker+wireshark+ovs

    1 安装pip 没有python pip包就执行命令 yum y install epel release 执行成功之后 xff0c 再次执行yum install python pip 2 安装ryu4 30 pip install ry
  • 【C++学习】——(五)数组

    C 43 43 学习 xff08 五 xff09 数组 开篇 上一篇讲解了类型 xff0c 通过类型来开始本篇的学习 xff1b int a 10 上述代码中的a是什么类型呢 xff1f 相信很多人都知道是一个数组类型 xff0c 具体来说
  • openstack中ipv6三种获取IP地址方式

    前言 openstack共有三种用于ipv6的寻址的模式 xff0c 分别是dhcpv6 stateful dhcp stateless以及slaac 1 xff09 slaac模式 Address discovered from an O
  • 华为S5720-52X-PWR-LI/S5720-52X-LI交互机堆叠和VLAN配置

    主要配置流程为 xff1a 交换机设备上电通过console线或网线连接到交换机后 xff0c 进行参数和堆叠配置断电 xff0c 连接好光纤重新上电 1 首次登录交换机 使用Putty软件 xff0c 通过串口 xff0c 连接到交换机
  • 配置Intel REALSENSE相机的一些坑

    最近入手了一个intel REALSENSE相机 xff0c 看别人都是直接使用配套的USB3的线连接电脑就安装好了 xff0c 但是我却要倒霉的配置了一个下午 xff0c 终于在今天晚上配置好了 xff0c 记录一下这个下午踩过的坑 xf
  • 高斯滤波知识点总结——KF、EKF、UKF以及IF、EIF等

    高斯滤波知识点总结 KF EKF UKF以及IF EIF等 1 引言 本文是我在学习 Probabilistic Robotics 这本书中第三章 高斯滤波过程中的一些知识总结 本文主要是整理高斯滤波算法的知识点和一些讨论 xff0c 具体
  • Git 学习小结

    Git 安装和使用教程 git 提交 全部文件 git add git add xx命令可以将xx文件添加到暂存区 xff0c 如果有很多改动可以通过 git add A 来一次添加所有改变的文件 注意 A 选项后面还有一个句点 git a
  • ROS 串口

    64 TOC ROS学习笔记 ROS中使用串口进行通讯测试 参考两篇文献 xff0c 感谢原作者 xff1a https blog csdn net qq 44623066 article details 125626937 https b
  • sklearn库之sklearn.cluster.KMeans的学习

    这篇呢是接着上一篇kmeans的学习 xff0c 这篇主要是介绍调用机器学习的库来使用集成的kmeans 哈哈会调用就行 xff0c 主要学习呢就是看官方文档 xff0c 学习这个包装类的参数 xff0c 返回值以及它方法 这里面有好多ex
  • docker容器开启ssh端口

    docker容器开启ssh端口 启动一个docker容器 加端口 port 22 docker run dit p port 22 p port1 port restart span class token operator 61 span
  • PID中各个参数意义

    1 比例部分 xff1a PID是比例 积分 微分的简称 xff0c PID控制的难点不是编程 xff0c 而是控制器的参数整定 增大比例系数使系统反应灵敏 xff0c 调节速度加快 xff0c 并且可以减小稳态误差 但是比例系数过大会使超
  • 关于多线程,你必须知道的那些玩意儿

    进程与线程 概念 进程和线程作为必知必会的知识 xff0c 想来读者们也都是耳熟能详了 xff0c 但真的是这样嘛 xff1f 今天我们就来重新捋一捋 xff0c 看看有没有什么知识点欠缺的 先来一张我随手截的活动监视器的图 xff0c 分
  • 多传感器融合-搭建ROS工程

    多传感器融合搭建记录1 Tag3 0 一 安装Terminator二 vscode创建功能包三 ROS相关基础1 添加源文件2 添加launch文件3 ROS话题通讯 四 添加代码1 发布者publishera 点云发布类CloudPubl
  • Win11配置Matconvnet错误使用 vl_compilenn>nvcc_compile和datacu.hpp undefined的问题

    初始配置环境 xff1a 电脑 xff1a 联想R9000K Win11 显卡 xff1a 3080 Matlab 2021b Visual Studio 2017 Professional VS安装位置 xff1a D VisualStu