intel / intel/torch-xpu-ops

[PTL][XPU][WSL]410 UTs fail on WSL (Ubuntu 26.04) in Windows 11 with Intel PTLP XPU (Intel(R) Graphics [0xb080]) with torch.export graph-serialization node-name mismatches

Open
#4,872 0 comments 0 reactions 0 assignees View on GitHub
hw: PTL os: WSL test: ut
Dominant language
Python
Stars
113
Forks
128
Avg merge
5d 13h
Merged PRs (30d)
107

Description

### 🐛 Describe the bug

### 🐛 Describe the bug

410 failures (0.9%) on WSL (Ubuntu 26.04) in Windows 11 with Intel PTLP XPU (Intel(R) Graphics
[0xb080]), spanning 51 distinct `AssertionError` diffs across `export.test_cpp_serdes_xpu`,
`export.test_export_xpu`, `export.test_retraceability_xpu`, and 3 more `export.*` modules. Every
variant follows the same pattern: comparing a freshly-exported FX graph against a
re-serialized/re-traced copy, where node names differ only by a suffix (`mul`→`mul_tensor`,
`cos`→`cos_default`, `add`→`add_tensor`, `to`→`to_dtype`, etc.) — consistent with a node-naming
convention change somewhere in the export/serialization pipeline rather than 51 independent op bugs.

### Affected Test Cases

```
Module breakdown:
export/test_cpp_serdes_xpu.py, export/test_export_xpu.py, export/test_retraceability_xpu.py,
and 3 more export.* modules — 410 failures total across 51 node-naming variants
```

Full per-test list not enumerated in the source report — see `ut_skip.log` for exact test IDs.

### Reproduction

```
# Installing UT requirements
cd ${PYTORCH_ROOT_DIR}
python -m pip install -r .ci/docker/requirements-ci.txt
python -m pip install pytest pytest-timeout pytest-xdist

# UT skip
cd $PYTORCH_ROOT_DIR/third_party/torch-xpu-ops/test/xpu
export PYTEST_ADDOPTS="-v --timeout 600 --timeout_method=thread -n 1"
export PYTORCH_TEST_WITH_SLOW=1
export PYTORCH_ENABLE_XPU_FALLBACK=1
time python run_test_with_skip.py | tee $HOME/ut_skip.log
```

### Error Message

ut_skip.log

```
AssertionError: 'graph():
%mul : [num_users=1] = call_function[target=torch.ops.aten.mul.Tensor](args = (%x, 2), kwargs = {})
...' != 'graph():
%mul_tensor : [num_users=1] = call_function[target=torch.ops.aten.mul.Tensor](args = (%x, 2), kwargs = {})
...'
```

### Versions

PyTorch version: 2.14.0.dev20260803+xpu
Is debug build: False
CUDA used to build PyTorch: None
ROCM used to build PyTorch: N/A

OS: Ubuntu 26.04 LTS (x86_64)
GCC version: (Ubuntu 15.2.0-16ubuntu1) 15.2.0
Clang version: Could not collect
CMake version: version 3.31.6
Libc version: glibc-2.43

Python version: 3.12.13 | packaged by conda-forge | (main, Mar 5 2026, 16:50:00) [GCC 14.3.0] (64-bit runtime)
Python platform: Linux-6.18.33.2-microsoft-standard-WSL2-x86_64-with-glibc2.43
Is CUDA available: False
CUDA runtime version: No CUDA
CUDA_MODULE_LOADING set to: N/A
GPU models and configuration: No CUDA
Nvidia driver version: No CUDA
cuDNN version: No CUDA
Is XPU available: True
XPU used to build PyTorch: 20260100
Intel GPU driver version:
* intel-opencl-icd: 26.22.38646.6-1~26.04~ppa1
* libze1: 1.28.6-1~26.04~ppa1
Intel GPU models onboard:
N/A
Intel GPU models detected:
* [0] _XpuDeviceProperties(name='Intel(R) Graphics [0xb080]', platform_name='Intel(R) oneAPI Unified Runtime over Level-Zero V2', type='gpu', device_id=0xB080, uuid=868080b0-0400-0000-0002-000000000000, driver_version='1.15.38646+6', total_memory=16900MB, local_mem_size=128KB, last_level_cache_size=16384KB, max_compute_units=96, memory_clock_rate=0MHz, memory_bus_width=64-bit, gpu_eu_count=96, gpu_subslice_count=12, max_work_group_size=1024, max_num_sub_groups=64, sub_group_sizes=[16 32], has_fp16=1, has_fp64=1, has_atomic64=1, is_integrated_gpu=1)
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: False
Caching allocator config: N/A

CPU:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 46 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: GenuineIntel
Model name: Genuine Intel(R) 0000
CPU family: 6
Model: 204
Thread(s) per core: 1
Core(s) per socket: 16
Socket(s): 1
Stepping: 2
BogoMIPS: 5990.40
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves avx_vnni vnmi umip waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize ibt flush_l1d arch_capabilities
Virtualization: VT-x
Hypervisor vendor: Microsoft
Virtualization type: full
L1d cache: 768 KiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 48 MiB (16 instances)
L3 cache: 18 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Ghostwrite: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Old microcode: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Mitigation; Enhanced IBRS
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2: Mitigation; Enhanced / Automatic IBRS; IBPB conditional; PBRSB-eIBRS SW sequence; BHI BHI_DIS_S
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected

Versions of relevant libraries:
[pip3] dpcpp-cpp-rt==2026.1.0
[pip3] impi-rt==2021.18.1
[pip3] intel-cmplr-lib-rt==2026.1.0
[pip3] intel-cmplr-lib-ur==2026.1.0
[pip3] intel-cmplr-lic-rt==2026.1.0
[pip3] intel-opencl-rt==2026.1.0
[pip3] intel-openmp==2026.1.0
[pip3] intel-pti==1.0.1
[pip3] intel-sycl-rt==2026.1.0
[pip3] mkl==2026.1.0
[pip3] mkl-include==2024.2.0
[pip3] mkl-static==2024.2.0
[pip3] mypy==1.16.0
[pip3] mypy_extensions==1.1.0
[pip3] numpy==1.26.4
[pip3] nvidia-cuda-cupti==13.3.75
[pip3] oneccl==2022.1.1
[pip3] oneccl-devel==2022.1.1
[pip3] onemkl-license==2026.1.0
[pip3] onemkl-sycl-blas==2026.1.0
[pip3] onemkl-sycl-dft==2026.1.0
[pip3] onemkl-sycl-lapack==2026.1.0
[pip3] onemkl-sycl-rng==2026.1.0
[pip3] onemkl-sycl-sparse==2026.1.0
[pip3] onnx==1.21.0
[pip3] onnx-ir==0.1.16
[pip3] onnxscript==0.6.2
[pip3] optree==0.13.0
[pip3] tbb==2023.1.0
[pip3] tcmlib==1.5.0
[pip3] torch==2.14.0.dev20260803+xpu
[pip3] torchao==0.18.0+xpu
[pip3] torchaudio==2.11.0.dev20260804+xpu
[pip3] torchvision==0.29.0.dev20260804+xpu
[pip3] triton-xpu==3.7.2+git5fcc14d9
[pip3] umf==1.1.0
[conda] dpcpp-cpp-rt 2026.1.0 pypi_0 pypi
[conda] impi-rt 2021.18.1 pypi_0 pypi
[conda] intel-cmplr-lib-rt 2026.1.0 pypi_0 pypi
[conda] intel-cmplr-lib-ur 2026.1.0 pypi_0 pypi
[conda] intel-cmplr-lic-rt 2026.1.0 pypi_0 pypi
[conda] intel-opencl-rt 2026.1.0 pypi_0 pypi
[conda] intel-openmp 2026.1.0 pypi_0 pypi
[conda] intel-pti 1.0.1 pypi_0 pypi
[conda] intel-sycl-rt 2026.1.0 pypi_0 pypi
[conda] mkl 2026.1.0 pypi_0 pypi
[conda] mkl-include 2024.2.0 pypi_0 pypi
[conda] mkl-static 2024.2.0 pypi_0 pypi
[conda] numpy 1.26.4 pypi_0 pypi
[conda] nvidia-cuda-cupti 13.3.75 pypi_0 pypi
[conda] oneccl 2022.1.1 pypi_0 pypi
[conda] oneccl-devel 2022.1.1 pypi_0 pypi
[conda] onemkl-license 2026.1.0 pypi_0 pypi
[conda] onemkl-sycl-blas 2026.1.0 pypi_0 pypi
[conda] onemkl-sycl-dft 2026.1.0 pypi_0 pypi
[conda] onemkl-sycl-lapack 2026.1.0 pypi_0 pypi
[conda] onemkl-sycl-rng 2026.1.0 pypi_0 pypi
[conda] onemkl-sycl-sparse 2026.1.0 pypi_0 pypi
[conda] optree 0.13.0 pypi_0 pypi
[conda] tbb 2023.1.0 pypi_0 pypi
[conda] tcmlib 1.5.0 pypi_0 pypi
[conda] torch 2.14.0.dev20260803+xpu pypi_0 pypi
[conda] torchao 0.18.0+xpu pypi_0 pypi
[conda] torchaudio 2.11.0.dev20260804+xpu pypi_0 pypi
[conda] torchvision 0.29.0.dev20260804+xpu pypi_0 pypi
[conda] triton-xpu 3.7.2+git5fcc14d9 pypi_0 pypi
[conda] umf 1.1.0 pypi_0 pypi

Contributor guide

Open the contributing guide

Research direction

Start by reviewing ut_skip.log and the failures in export/test_cpp_serdes_xpu.py, export/test_export_xpu.py, export/test_retraceability_xpu.py, and the other export.* modules named in the report. Run the provided run_test_with_skip.py command to reproduce the 410 failures. Done means the exported and re-serialized or re-traced graphs use consistent node names and the affected tests pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, pytorch
Domain
backend, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.