在win10+VS2019上编译支持Vulkan SDK的ncnn

参考官方:FAQ ncnn vulkan · Tencent/ncnn Wiki

事先说明,之前我编译过ncnn,只不过未将Vulkan SDK编译进去,接下来只阐述与Vulkan SDK有关步骤,其余步骤可参考:win10平台下将PyTorch模型转成ncnn模型

Vulkan SDK下载与安装

直接去下载官方最新版Vulkan SDK的话,可能会面临当前显卡不支持的问题,即Vulkan版本过高,因此建议事先去Device查看一下显卡型号支持的最高Vulkan版本与最新显卡驱动。

我的显卡型号目前对应的最高版本如下,可见1650s最高支持的Vulkan版本为1.3.194

在这里插入图片描述
前往Vulkan官网下载SDK,我选择版本1.2.170.0

在这里插入图片描述
不知道各位小伙伴下载速度如何,我这里下载是真滴慢呀!下载完毕直接安装即可

在这里插入图片描述
这里,我偏爱将软件放在D盘,于是修改了安装位置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Vulkan会自动添加环境变量,可以查看一下系统变量

在这里插入图片描述
在这里插入图片描述
验证一下Vulkan是否会报错,点击开始菜单中的Vulkan Cube.exe

在这里插入图片描述
报错如下

在这里插入图片描述

vkEnumerateInstanceExtensionProperties failed to find VK_KHR_surface extension

去网上找下原因,大概是因为Vulkan SDK版本过高,导致目前显卡驱动不支持。讲道理,我这下载的版本不是很高吧,可能真是显卡驱动版本456.71太旧了。ncnn官方推荐Vulkan报错时更新显卡驱动

nvidia显卡驱动更新

nvidia显卡驱动下载一下驱动程序,选好自己显卡型号手动搜索一下即可

在这里插入图片描述
我直接选择最新的显卡驱动512.77,点击立即下载

在这里插入图片描述
在这里插入图片描述
开始更新驱动

在这里插入图片描述
在这里插入图片描述

看一下是否成功更新,没问题啦

在这里插入图片描述
再试一下Vulkan cube.exe

在这里插入图片描述
注意ncnn编译只需要VulkanSDK,而Vulkan开发环境需要的GLFWGLM先不安装

支持Vulkan的ncnn编译

ncnn编译时加入Vulkan-DNCNN_VULKAN=on

cd <ncnn-root-dir>
mkdir buildVulkan
cd build
cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -DProtobuf_INCLUDE_DIR=D:/ncnnby/protobuf-3.4.0/build-vs2019/install/include -DProtobuf_LIBRARIES=D:/ncnnby/protobuf-3.4.0/build-vs2019/install/lib/libprotobuf.lib -DProtobuf_PROTOC_EXECUTABLE=D:/ncnnby/protobuf-3.4.0/build-vs2019/install/bin/protoc.exe -DNCNN_VULKAN=on -DOpenCV_DIR=D:/ncnnby/opencv/build ..
nmake
nmake install

得到需要文件

在这里插入图片描述
在VS2019中配置环境

包含目录

D:\ncnnby\opencv\build\include
D:\ncnnby\opencv\build\include\opencv
D:\ncnnby\opencv\build\include\opencv2
D:\ncnnby\ncnn\buildVulkan\install\include
D:\ncnnby\ncnn\buildVulkan\install\include\ncnn
D:\ncnnby\protobuf-3.4.0\build-vs2019\install\include
D:\Vulkan\1.2.170.0\Include

在这里插入图片描述
库目录

D:\ncnnby\opencv\build\x64\vc15\lib
D:\ncnnby\ncnn\buildVulkan\install\lib
D:\ncnnby\protobuf-3.4.0\build-vs2019\install\lib
D:\Vulkan\1.2.170.0\Lib

在这里插入图片描述
添加附加依赖项

D:\ncnnby\ncnn\buildVulkan\install\lib\ncnn.lib
D:\ncnnby\ncnn\buildVulkan\install\lib\GenericCodeGen.lib
D:\ncnnby\ncnn\buildVulkan\install\lib\glslang.lib
D:\ncnnby\ncnn\buildVulkan\install\lib\MachineIndependent.lib
D:\ncnnby\ncnn\buildVulkan\install\lib\OGLCompiler.lib
D:\ncnnby\ncnn\buildVulkan\install\lib\OSDependent.lib
D:\ncnnby\ncnn\buildVulkan\install\lib\SPIRV.lib
opencv_world3410.lib
libprotobuf.lib
libprotobuf-lite.lib
libprotoc.lib
vulkan-1.lib

在这里插入图片描述

实际速度测试,使用Vulkan加速的模型反而比CPU推理要慢。

猜你喜欢

转载自blog.csdn.net/Star_ID/article/details/124895301
今日推荐