多设备插件
多设备插件会在运行时检查当前各个计算设备的利用率,然后决定应该把哪个推理计算请求放到哪个计算设备中取,从而实现负载均衡。例如,有 4 个推理计算请求,电脑上有一个 CPU、一个 GPU、两个英特尔神经计算棒二代,则 4 个推理请求可以在 4 个计算设备上并行执行。
指定使用哪些设备
例如,配置为 MULTI:CPU, GPU, MYRID,意思是指定 Inference Engine 使用多设备插件,可以在 CPU、GPU、MYRID 上并行执行推理计算,排在前面的计算设备优先级高。
代码实例
// --------------------------- 5. 创建Infer Request--------------------------------------------
std::cout << "5.Create Infer Request..." << std::endl;
InferRequest::Ptr infer_request1 = executable_network.CreateInferRequestPtr();
InferRequest::Ptr infer_request2 = executable_network.CreateInferRequestPtr();
InferRequest::Ptr infer_request3 = executable_network.CreateInferRequestPtr();
InferRequest::Ptr infer_request4 = executable_network.CreateInferRequestPtr();
// --------------------------------------------------------------------------------------------
// --------------------------- 6. 准备输入数据 ------------------------------------------------
std::cout << "6.Prepare Input..." << std::endl;
cv::Mat img1 = cv::imread(imageFile);
cv::Mat img2 = cv::imread(imageFile);
cv::Mat img3 = cv::imread(imageFile);
cv::Mat img4 = cv::imread(imageFile);
frameToBlob(img1, infer_request1, imageInputName);
frameToBlob(img2, infer_request2, imageInputName);
frameToBlob(img3, infer_request3, imageInputName);
frameToBlob(img4,<