Оптимизация производительности OpenVINO GPU - PullRequest
1 голос
/ 28 января 2020

Я пытаюсь ускорить вывод в приложении счетчика людей, чтобы использовать графический процессор, я установил настройку конфигурации механизма вывода, как описано:

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);

, но механизм вывода еще использует ЦП, и это замедляет время вывода. Есть ли способ использовать Intel GPU на максимальной мощности, чтобы сделать вывод в конкретной сети? Я использую модель person-tracking-retail-0013.

Спасибо.

1 Ответ

1 голос
/ 28 января 2020

Вы имели в виду лицо-обнаружение-розница-0013? Потому что я не нашел pedestrian-detection-retail-013 в репозитории open_model_zoo.

Можно ожидать, что вы увидите замедление при использовании графического процессора. Протестированная сеть имеет следующие уровни как часть топологии сети: 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);

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...