目录

1. 编译ncnn

2. 配置ncnn

3. 调用Vulkan

4. 总结


1. 编译ncnn

1. 编译opencv和portobuf,也可以直接下载windows版本的opencv
2. 安装vulkan,直接取官网下载
3. 下载ncnn源码:git clone https://github.com/Tencent/ncnn.git
4. 下载补充包:cd ncnngit submodule update --init
5. 打开vs终端(X64 native tools...)
6. 输入编译脚本:// 生成Makefile, -DNCNN_VULKAN=ON 编译vulkan,使用gpu加速cmake  -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./install -DProtobuf_INCLUDE_DIR=D:/working_soft/protobuf/protobuf-3.4.0/build-vs2019/install/include -DProtobuf_LIBRARIES=D:/working_soft/protobuf/protobuf-3.4.0/build-vs2019/install/lib/libprotobuf.lib -DProtobuf_PROTOC_EXECUTABLE=D:/working_soft/protobuf/protobuf-3.4.0/build-vs2019/install/bin/protoc.exe -DNCNN_VULKAN=ON ..// 编译nmake // 安装nmake install

2. 配置ncnn

在vs studio中ncnn配置如下,附加依赖项必须按照文中顺序

包含目录D:\working_soft\Vulkan\IncludeD:\working_soft\opencv34111\build\install\includeD:\working_soft\opencv34111\build\install\include\opencv2D:\working_soft\ncnn\ncnn\ncnn\build\install\includeD:\working_soft\ncnn\ncnn\ncnn\build\install\include\ncnn
附加库目录D:\working_soft\Vulkan\LibD:\working_soft\opencv34111\build\install\x64\vc16\libD:\working_soft\ncnn\ncnn\ncnn\build\install\libD:\working_soft\protobuf\protobuf-3.4.0\build-vs2019\install\lib
附加依赖项opencv_world341.libD:\working_soft\ncnn\ncnn\ncnn\build\install\lib\ncnn.libD:\working_soft\Vulkan\Lib\vulkan-1.libD:\working_soft\ncnn\ncnn\ncnn\build\install\lib\SPIRV.libD:\working_soft\ncnn\ncnn\ncnn\build\install\lib\glslang.libD:\working_soft\ncnn\ncnn\ncnn\build\install\lib\MachineIndependent.libD:\working_soft\ncnn\ncnn\ncnn\build\install\lib\OGLCompiler.libD:\working_soft\ncnn\ncnn\ncnn\build\install\lib\OSDependent.libD:\working_soft\ncnn\ncnn\ncnn\build\install\lib\GenericCodeGen.lib

3. 调用Vulkan

示例:ncnn::create_gpu_instance();ncnn::VulkanDevice vkdev(1); // 使用GPU1ncnn::Net yolov5; yolov5.opt.use_packing_layout = true;yolov5.opt.use_vulkan_compute = true; // 使用vulkanyolov5.opt.use_bf16_storage = true;yolov5.set_vulkan_device(&vkdev);yolov5.load_param("./model/yolov5s_6.0.param");yolov5.load_model("./model/yolov5s_6.0.bin");

4. 总结

使用默认的ncnn时,会调用集显,速度已经很快;

使用vulkan,调用集显时,速度一致,使用显卡时,速度更慢了,可能是显卡太垃圾了,离谱。

经测试,主要加速方式为:yolov5.opt.use_bf16_storage

有没有大佬可以讲一下到底哪里出问题了,欢迎评论区留言。

VS2017中NCNN使用vulkan相关推荐

  1. VS2017中C++无法将参数1从const char [8] 转换为char[]

    VS2017中开发遇到的问题: 看到网上有两种解决办法: 1.结构体中定义的 char * 前面加上 "const": 原因应该是函数的实参与形参类型不匹配, 字符串在内存中是一个 ...

  2. 使用VS2017编译sqlite和在VS2017中配置使用sqlite的简单例子演示

    转自:http://blog.csdn.net/hyxiaohaiyang/article/details/7382551 知识补充: sqlite3.dll动态链接库,它允许程序共享执行特殊任务所必 ...

  3. 解决VS2017中使用scanf函数报错的问题

    解决VS2017中使用scanf函数报错的问题 参考文章: (1)解决VS2017中使用scanf函数报错的问题 (2)https://www.cnblogs.com/tanghaiyong/p/11 ...

  4. python可以用vs编辑吗_在VS2017中编写Python程序

    最近开始了python的学习,在搭建完python环境之后,在选择IDE的时候陷入了困境,首先选择的是PyCharm但是用着还是不习惯,毕竟用VS开发了几年了,突然换软件总感觉有点不适应,就想到了强大 ...

  5. VS2017中MFC的C++设计中给其它窗口发中文消息

    VS2017中MFC的C++设计中给其它窗口发中文消息 // MFCApplication1Dlg.cpp: 实 现 文 件 // #include "pch.h" #includ ...

  6. VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本

    VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本 前提条件 创建WPF项目和修改版本 添加按钮调用登录控件进行调试 总结 微软dynamics官网之前有个CRM ...

  7. VS2017中解决MSB4030报错问题

    VS2017中解决MSB4030报错问题 提前声明,本人小白一个如有说的不对请多多包涵和指出.谢谢!!! 今天偶然有兴趣写了一个小小的代码在(C语言)VS2017上,但是编译的过程中一直在报MSB40 ...

  8. VS2017中配置QT5.12开发环境

    VS2017中配置QT5.12开发环境 一.安装VS2017 二.安装QT5.12.0 1.下载 2.安装 二.在VS2017中配置QT 三.在VS2017中创建QT工程 一.安装VS2017 关于V ...

  9. VS2017中使用GitHub

    这些天在学习GitHub的相关知识, 尤其是VS2017中内置GitHub的使用,过程中遇到了一些问题,记录下来有所帮助. 一.GitHub Extension for Visual Studio 在 ...

最新文章

  1. 不快乐工作场所的生存法则
  2. 互联网协议 — HTTP/3 超文本传输协议第 3 版
  3. 【RAY TRACING THE REST OF YOUR LIFE 超详解】 光线追踪 3-5 random direction ONB
  4. Android应用插件式开发解决方法[转]
  5. NGINX 进程通信机制
  6. apiCloud中的API对象
  7. java apache commons_使用java apache commons下载文件?
  8. 存储过程之游标笔记小结
  9. appium+python 【Mac】Android夜神模拟器
  10. poj 3321 Apple Tree 树状数组
  11. Spark深入浅出企业级最佳实践
  12. 进行DosBox的下载与配置
  13. Python中sys模块使用
  14. 微信授权demo php,PHP微信公众平台oauth2.0网页授权登录类的封装demo
  15. python英文字符频率统计_Python中怎样统计英文文本中的字母频次?
  16. 解决minicom串口被锁Device /dev/ttyS? is locked
  17. 读论文《对 感知音频质量 的 客观评估 综述---对其 应用领域依赖性 的评估》
  18. 各大互联网大厂年终奖一览表,又是别人家的公司!
  19. 企业经营(数据)分析
  20. 疫情查询 国内疫情显示“无网络”解决方法

热门文章

  1. OpenLDAP介绍与说明
  2. 5款实用的jQuery验证码插件
  3. 【c++复习笔记】——智能指针详细解析(智能指针的使用,原理分析)
  4. 【YAML】YAML语言|YAML配置文件|YAML库用法|相比json的区别优势
  5. 解决微信小程序新版本覆盖 更新慢的问题
  6. Vue 前端对接第三方平台扫码登录(Oauth2)
  7. 软件技术实习项目:实验二、贪吃蛇游戏
  8. 基于springboot的医院血库管理系统
  9. CANoe基础操作教程
  10. 2017ACM-ICPC亚洲区域赛(青岛站)