OpenVINO execution provider defaults to CPU on Linux with Intel Arc GPU (no GPU device config passed)
System
- OS: CachyOS Linux x86_64 (Arch-based), Kernel 7.0.5
- GPU: Intel Arc A380 (discrete)
- CPU: Intel Xeon E5-2680 v4
- Python: 3.11.14
- onnxruntime-openvino: 1.24.1 (bundles OpenVINO 2025.4.1)
- intel-compute-runtime and level-zero-loader installed
Problem
Running python run.py --execution-provider openvino always runs on CPU: [platform] accelerator:
CPU | providers: ['OpenVINOExecutionProvider', 'CPUExecutionProvider']
OpenVINO correctly detects the GPU (['CPU', 'GPU'] via ov.Core().available_devices), but the app stays on CPU because build_provider_config() in _onnx_enhancer.py passes OpenVINOExecutionProvider as a bare string with no device options, defaulting to CPU.
What I tried
Manually adding {"device_type": "GPU"} to the provider config causes a SIGSEGV crash. This is expected because device_type is deprecated since ORT 1.23 — the correct approach is the load_config JSON method.
Expected fix
build_provider_config() should pass OpenVINO GPU config using the modern load_config approach for users with Intel Arc GPUs on Linux, e.g.:
("OpenVINOExecutionProvider", {"load_config": '{"DEVICE": "GPU"}'})
Result
1-2 FPS on live mode due to CPU-only inference.
Source: hacksider/Deep-Live-Cam