From b1f15f1a863093d9d716dc64a5f4764cf5fe3950 Mon Sep 17 00:00:00 2001 From: sa_ddam213 Date: Thu, 21 Dec 2023 15:36:24 +1300 Subject: [PATCH 1/2] Add OpenVino EP support to core --- OnnxStack.Core/Config/ExecutionProvider.cs | 3 ++- OnnxStack.Core/Extensions/Extensions.cs | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/OnnxStack.Core/Config/ExecutionProvider.cs b/OnnxStack.Core/Config/ExecutionProvider.cs index f1413e3d..beccce8c 100644 --- a/OnnxStack.Core/Config/ExecutionProvider.cs +++ b/OnnxStack.Core/Config/ExecutionProvider.cs @@ -5,6 +5,7 @@ public enum ExecutionProvider DirectML = 0, Cuda = 1, Cpu = 2, - CoreML = 3 + CoreML = 3, + OpenVino = 4 } } diff --git a/OnnxStack.Core/Extensions/Extensions.cs b/OnnxStack.Core/Extensions/Extensions.cs index d4771dc2..e8b24585 100644 --- a/OnnxStack.Core/Extensions/Extensions.cs +++ b/OnnxStack.Core/Extensions/Extensions.cs @@ -36,9 +36,11 @@ public static SessionOptions GetSessionOptions(this OnnxModelConfig configuratio sessionOptions.AppendExecutionProvider_CPU(); return sessionOptions; case ExecutionProvider.CoreML: - sessionOptions.AppendExecutionProvider_CoreML( - CoreMLFlags.COREML_FLAG_ONLY_ENABLE_DEVICE_WITH_ANE - ); + sessionOptions.AppendExecutionProvider_CoreML(CoreMLFlags.COREML_FLAG_ONLY_ENABLE_DEVICE_WITH_ANE); + return sessionOptions; + case ExecutionProvider.OpenVino: + //TODO: DeviceId = "CPU_FP32"|"GPU_FP32"|"GPU_FP16"|"MYRIAD_FP16"|"VAD-M_FP16"|"VAD-F_FP32" + sessionOptions.AppendExecutionProvider_OpenVINO(); return sessionOptions; } } From 4c110543499a887af84d12adaeec912d12c68970 Mon Sep 17 00:00:00 2001 From: sa_ddam213 Date: Thu, 21 Dec 2023 15:50:49 +1300 Subject: [PATCH 2/2] Support all device types --- OnnxStack.Core/Extensions/Extensions.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/OnnxStack.Core/Extensions/Extensions.cs b/OnnxStack.Core/Extensions/Extensions.cs index e8b24585..3cd55b9d 100644 --- a/OnnxStack.Core/Extensions/Extensions.cs +++ b/OnnxStack.Core/Extensions/Extensions.cs @@ -39,8 +39,17 @@ public static SessionOptions GetSessionOptions(this OnnxModelConfig configuratio sessionOptions.AppendExecutionProvider_CoreML(CoreMLFlags.COREML_FLAG_ONLY_ENABLE_DEVICE_WITH_ANE); return sessionOptions; case ExecutionProvider.OpenVino: - //TODO: DeviceId = "CPU_FP32"|"GPU_FP32"|"GPU_FP16"|"MYRIAD_FP16"|"VAD-M_FP16"|"VAD-F_FP32" - sessionOptions.AppendExecutionProvider_OpenVINO(); + var deviceId = configuration.DeviceId switch + { + 0 => "CPU_FP32", + 1 => "GPU_FP32", + 2 => "GPU_FP16", + 3 => "MYRIAD_FP16", + 4 => "VAD-M_FP16", + 5 => "VAD-F_FP32", + _ => string.Empty + }; + sessionOptions.AppendExecutionProvider_OpenVINO(deviceId); return sessionOptions; } }