参考官方: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
编译只需要Vulkan
的SDK
,而Vulkan
开发环境需要的GLFW
和GLM
先不安装
支持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推理要慢。