OpenVINO execution provider defaults to CPU on Linux with Intel Arc GPU (no GPU device config passed)

Author: DealsBeamCreated May 13, 2026Updated May 13, 2026

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.