系统环境
Win10,NVIDIA Driver Version:399.24,Cuda V9.2.148,cuDNN 7.6.3
出错情况
下载完OpenPose v1.5.1的Windows Demo,按照instructions.txt下载好模型,使用bin\OpenPoseDemo.exe --video examples\media\video.avi --face --hand
运行,出现报错。
Cuda check failed (35 vs. 0): CUDA driver version is insufficient for CUDA runtime version
解决方法
开始以为是Cuda版本与Driver版本不匹配,查询NVIDIA官网后发现是没有问题的。
再认真查看报错反馈(可以在运行命令后添加参数--logging_level 0 --disable_multi_thread
获得更多信息),发现它的报错位置是src/openpose/gpu/cuda.cpp的23行的cudaPeekAtLastError函数,查看官方文档后得知这个函数是在线程出现问题的时候会报错(不知道理解得对不对)。这下就到头了。
不过OpenPose官方文档似乎对类似问题指了两条路
-
更新NVIDIA driver
这个方法感觉会牵一发而动全身,万一出问题了就闯大祸了
-
使用旧版的OpenPose
于是我尝试部署OpenPose v1.4.0,成功运行。
推断是高版本的OpenPose与本地NVIDIA Driver不适配。