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

目录

    • Vulkan SDK下载与安装
    • nvidia显卡驱动更新
    • 支持Vulkan的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

在win10+VS2019上编译支持Vulkan SDK的ncnn_第1张图片
前往Vulkan官网下载SDK,我选择版本1.2.170.0

在win10+VS2019上编译支持Vulkan SDK的ncnn_第2张图片
不知道各位小伙伴下载速度如何,我这里下载是真滴慢呀!下载完毕直接安装即可

在win10+VS2019上编译支持Vulkan SDK的ncnn_第3张图片
这里,我偏爱将软件放在D盘,于是修改了安装位置

在win10+VS2019上编译支持Vulkan SDK的ncnn_第4张图片
在win10+VS2019上编译支持Vulkan SDK的ncnn_第5张图片
在win10+VS2019上编译支持Vulkan SDK的ncnn_第6张图片
Vulkan会自动添加环境变量,可以查看一下系统变量

在win10+VS2019上编译支持Vulkan SDK的ncnn_第7张图片
在win10+VS2019上编译支持Vulkan SDK的ncnn_第8张图片
验证一下Vulkan是否会报错,点击开始菜单中的Vulkan Cube.exe

在win10+VS2019上编译支持Vulkan SDK的ncnn_第9张图片
报错如下

在win10+VS2019上编译支持Vulkan SDK的ncnn_第10张图片

vkEnumerateInstanceExtensionProperties failed to find VK_KHR_surface extension

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

nvidia显卡驱动更新

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

在win10+VS2019上编译支持Vulkan SDK的ncnn_第11张图片
我直接选择最新的显卡驱动512.77,点击立即下载

在win10+VS2019上编译支持Vulkan SDK的ncnn_第12张图片
在win10+VS2019上编译支持Vulkan SDK的ncnn_第13张图片
开始更新驱动

在win10+VS2019上编译支持Vulkan SDK的ncnn_第14张图片
在win10+VS2019上编译支持Vulkan SDK的ncnn_第15张图片

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

在win10+VS2019上编译支持Vulkan SDK的ncnn_第16张图片
再试一下Vulkan cube.exe

在win10+VS2019上编译支持Vulkan SDK的ncnn_第17张图片
注意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

得到需要文件

在win10+VS2019上编译支持Vulkan SDK的ncnn_第18张图片
在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

在win10+VS2019上编译支持Vulkan SDK的ncnn_第19张图片
库目录

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

在win10+VS2019上编译支持Vulkan SDK的ncnn_第20张图片
添加附加依赖项

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

在win10+VS2019上编译支持Vulkan SDK的ncnn_第21张图片

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

你可能感兴趣的:(图像处理,pytorch,深度学习,python)