Research-2136: what an Intel GPU tester image needs at run time, on Linux and under WSL2¶
- Date: 2026-10-03
- Status: input to ADR-1505
- Measured on: Arc A380 (
dg2-g11, IP 12.56.5, xe driver, Linux 7.2), in the image built fromdocker/Dockerfile.tester --target final-sycl.
Question¶
Which files does a SYCL build of libvmaf load to run its kernels on an Intel GPU, which Intel GPUs does the pinned compute runtime drive, and how does a container reach an Intel GPU under WSL2?
Sources¶
intel/compute-runtimerelease 26.35.39758.10 (theINTEL_NEO_VERSIONofbuild-config.env): supported platforms "Tiger Lake, Rocket Lake, Alder Lake, Raptor Lake, Meteor Lake, Arrow Lake, Lunar Lake, Panther Lake, Wildcat Lake, DG1, Alchemist (DG2), and Battlemage" at production quality; IGC 2.41.5, gmmlib 22.10.0; "WSL support was tested for all platforms with Windows host driver 101.8991".intel/compute-runtimedocumentation/WSL.md: Windows 11 host, WSL kernel 6.1 or later, the Intel Windows driver (the Arc driver for Xe and later, the "11th-14th Gen" driver for older integrated GPUs), and the latest compute runtime release inside WSL.intel/compute-runtimeshared/source/dll/linux/options_linux.inl: the runtime opens/usr/lib/wsl/lib/libdxcore.soby that absolute path.- Research-2128: this compute runtime ran SYCL kernels on an Arc B580 and a UHD 770 under Docker Desktop's WSL2 backend on Windows 11 with
/dev/dxgpassed through and/usr/lib/wslmounted. ocloc idsof compute-runtime 26.35 for the GPU IP version of every target of the default AOT list (tgllp12.0,adl-s/rpl-s12.2,adl-p/rpl-p12.3,dg112.10,dg2-g1112.56.5,pvc12.60.7,mtl-u12.70.4,arl-h12.74.4,bmg-g2120.1.0,lnl-m20.4.4,ptl-h30.0.4).- The Intel End User License Agreement for Developer Tools (Version August 2024) and
credist.txtof the oneAPI DPC++/C++ Compiler 2026.1.1.
Findings¶
- The SYCL runtime a GPU run loads is small.
lddoflibvmaf.soand of the Unified Runtime adapters nameslibsycl.so.9,libur_loader.so.0,libur_adapter_level_zero.so.0and_v2,libsvml,libimf,libintlc,libirng,libirc,libumf.so.1andlibhwloc.so.15: 77 MB, every compiler file among them incredist.txt. Intel's runtime meta-package installs 1.1 GB. Withlibsycl-jit,libomptarget,icx-lto.so,libinteloclandlibcommon_clangmoved away,test_sycl_exact_twins,test_sycl_kernel_scratch,test_sycl_ciede_parityandtest_sycl_psnr_hvs_paritypass on the A380. - SPIR-V needs neither OpenCL nor IGC's OpenCL front end. A SYCL program built with
-fsycl-targets=spir64only (so the kernel is compiled from SPIR-V at run time) returns correct values on the A380 afterintel-opencl-icd,intel-igc-opencl-2andocl-icd-libopencl1are purged, withNEO_CACHE_PERSISTENT=0; so do the device tests. The Level Zero driver needs IGC core and gmmlib. - A family follows from the GPU IP version. Level Zero's
ze_device_ip_version_ext_tgives(major << 22) | (minor << 14) | revision; the A380 reports 12.56.5, whichocloc ids dg2-g11prints. Xe-LP is 12.0 to 12.4 and 12.10, Xe-HPG 12.55 to 12.57, Xe-HPC 12.60, Xe-LPG 12.70 to 12.74, Xe2 20.x, Xe3 30.x. A UHD 770 (Alder Lake-S or Raptor Lake-S) is 12.2. - The hardened run works on Linux.
--read-only --cap-drop ALL --security-opt no-new-privilegeswith--device /dev/driand the render group added runs every device test as uid 10001; one test writes into its working directory, so each test runs in a fresh directory under/tmp. - WSL2 is reachable but not measured with this image. Under WSL2 the GPU is
/dev/dxgand the host driver's user-mode half sits in/usr/lib/wsl/lib; the compute runtime of this image is the one Research-2128 ran there. What that run did not cover: the read-only, capability-free run as a non-root user, the permissions of/dev/dxginside the container, and the "11th-14th Gen" Windows driver a UHD 770 needs.
Open questions¶
- The first WSL2 report (its
gpu.access.pathiswsl) answers finding 5. - Whether the Xe-LP slot kernel of
ssimulacra2_sycluses scratch memory on a UHD 770, as the build log predicts (the state row), is the measurement the kit exists for.