fix multi infer result corrupt issue (#10704)
* do not share blob Signed-off-by: fishbell <bell.song@intel.com> * build error Signed-off-by: fishbell <bell.song@intel.com> * remove comment codes Signed-off-by: fishbell <bell.song@intel.com>
This commit is contained in:
1 parent
fd18632d89
commit
8a2252b774
1 file changed
-22
@@ -593,7 +593,6 @@ InferenceEngine::IInferRequestInternal::Ptr MultiDeviceExecutableNetwork::Create
|
||||
const std::vector<std::shared_ptr<const ov::Node>>& inputs,
|
||||
const std::vector<std::shared_ptr<const ov::Node>>& outputs) {
|
||||
auto num = _numRequestsCreated++;
|
||||
size_t sum = 0;
|
||||
InferenceEngine::SoIInferRequestInternal request_to_share_blobs_with;
|
||||
InferenceEngine::RemoteContext::Ptr ctx = nullptr;
|
||||
|
||||
@@ -615,23 +614,12 @@ InferenceEngine::IInferRequestInternal::Ptr MultiDeviceExecutableNetwork::Create
|
||||
return std::make_shared<MultiDeviceInferRequest>(inputs, outputs, request_to_share_blobs_with, ctx);
|
||||
}
|
||||
|
||||
// borrowing device-specific blobs from the underlying requests for the device-agnostic, user-facing requests
|
||||
// this allows to potentially save on the data-copy later (if the requests are scheduled in the same order)
|
||||
for (const auto& device : _devicePrioritiesInitial) {
|
||||
auto& dev_requests = _workerRequests[device.deviceName];
|
||||
if ((num - sum) < dev_requests.size()) {
|
||||
request_to_share_blobs_with = dev_requests.at(num - sum)._inferRequest;
|
||||
break;
|
||||
}
|
||||
sum += dev_requests.size();
|
||||
}
|
||||
return std::make_shared<MultiDeviceInferRequest>(inputs, outputs, request_to_share_blobs_with);
|
||||
}
|
||||
|
||||
InferenceEngine::IInferRequestInternal::Ptr MultiDeviceExecutableNetwork::CreateInferRequestImpl(InferenceEngine::InputsDataMap networkInputs,
|
||||
InferenceEngine::OutputsDataMap networkOutputs) {
|
||||
auto num = _numRequestsCreated++;
|
||||
size_t sum = 0;
|
||||
InferenceEngine::SoIInferRequestInternal request_to_share_blobs_with;
|
||||
InferenceEngine::RemoteContext::Ptr ctx = nullptr;
|
||||
|
||||
@@ -652,16 +640,6 @@ InferenceEngine::IInferRequestInternal::Ptr MultiDeviceExecutableNetwork::Create
|
||||
return std::make_shared<MultiDeviceInferRequest>(networkInputs, networkOutputs, request_to_share_blobs_with, ctx);
|
||||
}
|
||||
|
||||
// borrowing device-specific blobs from the underlying requests for the device-agnostic, user-facing requests
|
||||
// this allows to potentially save on the data-copy later (if the requests are scheduled in the same order)
|
||||
for (const auto& device : _devicePrioritiesInitial) {
|
||||
auto& dev_requests = _workerRequests[device.deviceName];
|
||||
if ((num - sum) < dev_requests.size()) {
|
||||
request_to_share_blobs_with = dev_requests.at(num - sum)._inferRequest;
|
||||
break;
|
||||
}
|
||||
sum += dev_requests.size();
|
||||
}
|
||||
return std::make_shared<MultiDeviceInferRequest>(networkInputs, networkOutputs, request_to_share_blobs_with);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user