VS2017中NCNN使用vulkan
目录
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相关推荐
- VS2017中C++无法将参数1从const char [8] 转换为char[]
VS2017中开发遇到的问题: 看到网上有两种解决办法: 1.结构体中定义的 char * 前面加上 "const": 原因应该是函数的实参与形参类型不匹配, 字符串在内存中是一个 ...
- 使用VS2017编译sqlite和在VS2017中配置使用sqlite的简单例子演示
转自:http://blog.csdn.net/hyxiaohaiyang/article/details/7382551 知识补充: sqlite3.dll动态链接库,它允许程序共享执行特殊任务所必 ...
- 解决VS2017中使用scanf函数报错的问题
解决VS2017中使用scanf函数报错的问题 参考文章: (1)解决VS2017中使用scanf函数报错的问题 (2)https://www.cnblogs.com/tanghaiyong/p/11 ...
- python可以用vs编辑吗_在VS2017中编写Python程序
最近开始了python的学习,在搭建完python环境之后,在选择IDE的时候陷入了困境,首先选择的是PyCharm但是用着还是不习惯,毕竟用VS开发了几年了,突然换软件总感觉有点不适应,就想到了强大 ...
- VS2017中MFC的C++设计中给其它窗口发中文消息
VS2017中MFC的C++设计中给其它窗口发中文消息 // MFCApplication1Dlg.cpp: 实 现 文 件 // #include "pch.h" #includ ...
- VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本
VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本 前提条件 创建WPF项目和修改版本 添加按钮调用登录控件进行调试 总结 微软dynamics官网之前有个CRM ...
- VS2017中解决MSB4030报错问题
VS2017中解决MSB4030报错问题 提前声明,本人小白一个如有说的不对请多多包涵和指出.谢谢!!! 今天偶然有兴趣写了一个小小的代码在(C语言)VS2017上,但是编译的过程中一直在报MSB40 ...
- VS2017中配置QT5.12开发环境
VS2017中配置QT5.12开发环境 一.安装VS2017 二.安装QT5.12.0 1.下载 2.安装 二.在VS2017中配置QT 三.在VS2017中创建QT工程 一.安装VS2017 关于V ...
- VS2017中使用GitHub
这些天在学习GitHub的相关知识, 尤其是VS2017中内置GitHub的使用,过程中遇到了一些问题,记录下来有所帮助. 一.GitHub Extension for Visual Studio 在 ...
最新文章
- 不快乐工作场所的生存法则
- 互联网协议 — HTTP/3 超文本传输协议第 3 版
- 【RAY TRACING THE REST OF YOUR LIFE 超详解】 光线追踪 3-5 random direction ONB
- Android应用插件式开发解决方法[转]
- NGINX 进程通信机制
- apiCloud中的API对象
- java apache commons_使用java apache commons下载文件?
- 存储过程之游标笔记小结
- appium+python 【Mac】Android夜神模拟器
- poj 3321 Apple Tree 树状数组
- Spark深入浅出企业级最佳实践
- 进行DosBox的下载与配置
- Python中sys模块使用
- 微信授权demo php,PHP微信公众平台oauth2.0网页授权登录类的封装demo
- python英文字符频率统计_Python中怎样统计英文文本中的字母频次?
- 解决minicom串口被锁Device /dev/ttyS? is locked
- 读论文《对 感知音频质量 的 客观评估 综述---对其 应用领域依赖性 的评估》
- 各大互联网大厂年终奖一览表,又是别人家的公司!
- 企业经营(数据)分析
- 疫情查询 国内疫情显示“无网络”解决方法