You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 8c11101
Browse filesBrowse the repository at this point in the historyBrowse files
Build and ship the OpenVINO backend in the Windows wheel
The OpenVINO delegate lets ExecuTorch run models on Intel hardware (CPUs,
integrated and discrete GPUs, and NPUs). Until now the prebuilt delegate shipped
only in the Linux wheels. The Windows wheel left it out, even though Intel
publishes an OpenVINO runtime for Windows x86-64, so Windows users could not use
it without building from source.
This brings the Windows wheel to parity with Linux.
What changed:
- The runtime loader now works on Windows. It loaded the OpenVINO C library with
POSIX calls (dlopen/dlsym) and a hardcoded libopenvino_c.so name. The loader is
now split by platform: LoadLibraryExA/GetProcAddress/FreeLibrary and
openvino_c.dll on Windows, the existing dlopen path on Linux. On Windows it
loads with LOAD_WITH_ALTERED_SEARCH_PATH so the runtime's own dependencies
(openvino.dll, TBB, the device plugins) resolve from its folder.
- The build file sets exceptions and RTTI with the compiler's own flags: /EHsc
and /GR for MSVC, -frtti and -fexceptions otherwise.
- setup.py enables EXECUTORCH_BUILD_OPENVINO on Windows as well as Linux, and
packages the delegate's import library (.lib) beside the other Windows DLLs.
- The openvino extra now installs the OpenVINO runtime on Windows x86-64 too, so
pip install "executorch[openvino]" activates the backend on both platforms. The
Python auto-discovery looks for openvino_c.dll on Windows.
- The Windows wheel smoke test now checks the delegate registers and runs a model
through it, the same checks the Linux wheel already runs.
Test plan:
- Compiled both the Windows and POSIX branches of the loader in isolation.
- Confirmed the single-owner symbol check matches the delegate's exported name in
both the Linux (nm) and Windows (dumpbin) spellings.
- Ran black, clang-format and cmake-format on the changed files.
- The Windows wheel CI job builds the wheel and runs the smoke test end to end.
0 commit comments