From 7104ad6378bb5b64aa4076d8aa769f759dde1af0 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Thu, 29 Aug 2024 21:15:19 -0700 Subject: [PATCH] openvino: improve device selection --- plugins/openvino/.vscode/launch.json | 2 +- plugins/openvino/.vscode/settings.json | 10 +++++----- plugins/openvino/package-lock.json | 4 ++-- plugins/openvino/package.json | 2 +- plugins/openvino/src/ov/__init__.py | 17 +++++++++++++++-- 5 files changed, 24 insertions(+), 11 deletions(-) diff --git a/plugins/openvino/.vscode/launch.json b/plugins/openvino/.vscode/launch.json index ee46b594f3..9411c4155e 100644 --- a/plugins/openvino/.vscode/launch.json +++ b/plugins/openvino/.vscode/launch.json @@ -21,7 +21,7 @@ }, { "localRoot": "${workspaceFolder}/src", - "remoteRoot": "${config:scrypted.pythonRemoteRoot}" + "remoteRoot": "." }, ] diff --git a/plugins/openvino/.vscode/settings.json b/plugins/openvino/.vscode/settings.json index 3969954e47..be3007ca8e 100644 --- a/plugins/openvino/.vscode/settings.json +++ b/plugins/openvino/.vscode/settings.json @@ -1,12 +1,12 @@ { // docker installation - "scrypted.debugHost": "scrypted-demo", - "scrypted.serverRoot": "/server", + // "scrypted.debugHost": "scrypted-demo", + // "scrypted.serverRoot": "/server", // proxmox installation - // "scrypted.debugHost": "scrypted-server", - // "scrypted.serverRoot": "/root/.scrypted", + "scrypted.debugHost": "scrypted-server", + "scrypted.serverRoot": "/root/.scrypted", // pi local installation // "scrypted.debugHost": "192.168.2.119", @@ -18,7 +18,7 @@ // "scrypted.debugHost": "koushik-winvm", // "scrypted.serverRoot": "C:\\Users\\koush\\.scrypted", - "scrypted.pythonRemoteRoot": "${config:scrypted.serverRoot}/volume/plugin.zip", + "scrypted.pythonRemoteRoot": "${config:scrypted.serverRoot}/volume", "python.analysis.extraPaths": [ "./node_modules/@scrypted/sdk/types/scrypted_python" ] diff --git a/plugins/openvino/package-lock.json b/plugins/openvino/package-lock.json index 685952fa52..619afca28e 100644 --- a/plugins/openvino/package-lock.json +++ b/plugins/openvino/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/openvino", - "version": "0.1.109", + "version": "0.1.110", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/openvino", - "version": "0.1.109", + "version": "0.1.110", "devDependencies": { "@scrypted/sdk": "file:../../sdk" } diff --git a/plugins/openvino/package.json b/plugins/openvino/package.json index cdecd665a0..0e2a3c170c 100644 --- a/plugins/openvino/package.json +++ b/plugins/openvino/package.json @@ -42,5 +42,5 @@ "devDependencies": { "@scrypted/sdk": "file:../../sdk" }, - "version": "0.1.109" + "version": "0.1.110" } diff --git a/plugins/openvino/src/ov/__init__.py b/plugins/openvino/src/ov/__init__.py index 021bfeef7b..c7454ee40c 100644 --- a/plugins/openvino/src/ov/__init__.py +++ b/plugins/openvino/src/ov/__init__.py @@ -101,6 +101,8 @@ def __init__(self, nativeId: str | None = None): nvidia = False iris_xe = False arc = False + npu = False + gpu = False dgpus = [] # search for NVIDIA dGPU, as that is not preferred by AUTO for some reason? @@ -116,6 +118,10 @@ def __init__(self, nativeId: str | None = None): if "NVIDIA" in full_device_name and "dGPU" in full_device_name: dgpus.append(device) nvidia = True + if "NPU" in device: + npu = True + if "GPU" in device: + gpu = True except: pass @@ -123,8 +129,15 @@ def __init__(self, nativeId: str | None = None): if mode == "Default": mode = "AUTO" - if len(dgpus): + if npu: + if gpu: + mode = f"AUTO:NPU,GPU,CPU" + else: + mode = f"AUTO:NPU,CPU" + elif len(dgpus): mode = f"AUTO:{','.join(dgpus)},CPU" + elif gpu: + mode = f"GPU" mode = mode or "AUTO" self.mode = mode @@ -137,7 +150,7 @@ def __init__(self, nativeId: str | None = None): if model == "Default" or model not in availableModels: if model != "Default": self.storage.setItem("model", "Default") - if arc or nvidia: + if arc or nvidia or npu: model = "scrypted_yolov9c_320" elif iris_xe: model = "scrypted_yolov9s_320"