OpenVINO GPU 性能优化

OpenVINO GPU performance optimization

我正在尝试加快对人员计数器应用程序的推理,为了使用 GPU,我已经按照所述设置了推理引擎配置设置:

device_name = "GPU"
ie.SetConfig({ {PluginConfigParams::KEY_CONFIG_FILE, "./cldnn_global_custom_kernels/cldnn_global_custom_kernels.xml"} }, device_name);

并在推理引擎上加载网络我设置了如下所述的目标设备:

CNNNetwork net = netReader.getNetwork();

TargetDevice t_device = InferenceEngine::TargetDevice::eGPU; 

network.setTargetDevice(t_device);

const std::map<std::string, std::string> dyn_config = { { PluginConfigParams::KEY_DYN_BATCH_ENABLED, PluginConfigParams::YES } };

ie_.LoadNetwork(network,device_name, dyn_config);

但是推理引擎还在使用 CPU,这会减慢推理时间。有没有办法以最大功率使用英特尔 GPU 在特定网络上进行推理?我正在使用 person-detection-retail-0013 模型。

谢谢。

你是说 person-detection-retail-0013 吗?因为我没有在 open_model_zoo 仓库中找到行人检测零售 013。

这可能是您在使用 GPU 时看到速度变慢的预料。您测试的网络具有以下层作为网络拓扑的一部分:PriorBox、DetectionOutput。这些层在 CPU 上执行,如文档所述:https://docs.openvinotoolkit.org/latest/_docs_IE_DG_supported_plugins_CL_DNN.html 我猜测这可能是减速的原因。

但要 100% 确定我会建议 运行 benchmark_app 工具对模型进行基准测试。该工具可以打印出每一层的详细性能信息。它应该有助于阐明经济放缓的真正根本原因。有关 benchmark_app 的更多信息可在此处找到:https://docs.openvinotoolkit.org/latest/_inference_engine_samples_benchmark_app_README.html

PS:关于 IE API 的使用建议。 network.setTargetDevice(t_device); - setTargetDevice 是一种已弃用的方法。在您的示例中使用 LoadNetwork 设置设备就足够了:ie_.LoadNetwork(network,device_name, dyn_config);

希望对您有所帮助。