From f65329e32c5a11217d302f06c24b3b42596ff0a9 Mon Sep 17 00:00:00 2001 From: hualxie Date: Mon, 25 May 2026 15:49:00 +0800 Subject: [PATCH 1/2] feat: update is_npu for OpenVINO --- src/winml/modelkit/sysinfo/pdh_adapters.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/winml/modelkit/sysinfo/pdh_adapters.py b/src/winml/modelkit/sysinfo/pdh_adapters.py index 63a04bd13..e1bf60688 100644 --- a/src/winml/modelkit/sysinfo/pdh_adapters.py +++ b/src/winml/modelkit/sysinfo/pdh_adapters.py @@ -88,18 +88,10 @@ class AdapterInfo: @property def is_npu(self) -> bool: - """NPU heuristic: only Compute engine types, no 3D/Video/Copy/etc.""" - non_compute = {e for e in self.engine_types if not e.startswith("Compute")} + """NPU heuristic: only Compute/Neural engine types, no 3D/Video/Copy/etc.""" + non_compute = {e for e in self.engine_types if not e.startswith("Compute") and not e.startswith("Neural")} return len(non_compute) == 0 and len(self.engine_types) > 0 - @property - def compute_engine_type(self) -> str | None: - """Return the first Compute engine type name.""" - for et in sorted(self.engine_types): - if et.startswith("Compute"): - return et - return None - def enumerate_adapters() -> dict[str, AdapterInfo]: """Enumerate all GPU/NPU adapters via PDH GPU Engine instances. From f063c273499aa75cd8af3036a0f42f1298ab8b73 Mon Sep 17 00:00:00 2001 From: hualxie Date: Mon, 25 May 2026 16:54:40 +0800 Subject: [PATCH 2/2] nit --- src/winml/modelkit/sysinfo/pdh_adapters.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/winml/modelkit/sysinfo/pdh_adapters.py b/src/winml/modelkit/sysinfo/pdh_adapters.py index e1bf60688..6ec4a2c56 100644 --- a/src/winml/modelkit/sysinfo/pdh_adapters.py +++ b/src/winml/modelkit/sysinfo/pdh_adapters.py @@ -89,8 +89,9 @@ class AdapterInfo: @property def is_npu(self) -> bool: """NPU heuristic: only Compute/Neural engine types, no 3D/Video/Copy/etc.""" - non_compute = {e for e in self.engine_types if not e.startswith("Compute") and not e.startswith("Neural")} - return len(non_compute) == 0 and len(self.engine_types) > 0 + return len(self.engine_types) > 0 and all( + e.startswith(("Compute", "Neural")) for e in self.engine_types + ) def enumerate_adapters() -> dict[str, AdapterInfo]: