Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[GSD-13864] [Regression] IGC 2.41.5 produces invalid PrimeGrid AP27 OpenCL results on Arc A770 (DG2); IGC 2.40.13 is correct

Aperta
#1,031 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
cpp, linux

Direzione di ricerca

The report isolates the regression to IGC 2.41.5 with PrimeGrid's AP27 OpenCL workload on Arc A770; it does not name source files or tests in this repository. Start by reviewing the compiler changes between IGC 2.40.13 and 2.41.5 and reproduce the reported A/B with the same compute runtime. Done means AP27 results validate under IGC 2.41.5 as they do under 2.40.13.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Component: IGC Type: Regression

Pre-submission Checklist

  • I am using the latest GPU driver version (26.35.39758.10, IGC 2.41.5)
  • I have searched for similar issues and found none specific to this workload. Closest related: IGC #447 (IGC 2.41.5: masked-off lanes ...), IGC #451 (SIMD32 shuffle, Arc B570), compute-runtime #973 (fixed by 26.35). This report is a different, runtime-independent IGC 2.41.5 regression.

Note: the bisect below points at intel-graphics-compiler 2.41.5, not at the compute-runtime. Filing here per the Linux GPU Driver template so it gets triaged; please route to IGC.

GPU Hardware

Intel Arc A770 16 GB (DG2-512 / ACM-G10), PCI 8086:56a0, subsystem 8086:1020, single discrete GPU, i915 KMD.

DRI Devices Information

$ ls -ls /dev/dri/*
0 crw-rw----+ 1 root video  226,   1 Oct 20 09:41 /dev/dri/card1
0 crw-rw-rw-  1 root render 226, 128 Oct 20 09:41 /dev/dri/renderD128

$ ls -la /dev/dri/by-path/
total 0
drwxr-xr-x 2 root root  80 Oct 20 09:41 .
drwxr-xr-x 3 root root 100 Oct 20 09:41 ..
lrwxrwxrwx 1 root root   8 Oct 20 09:41 pci-0000:28:00.0-card -> ../card1
lrwxrwxrwx 1 root root  13 Oct 20 09:41 pci-0000:28:00.0-render -> ../renderD128

GPU Detailed Information (lspci output)

$ sudo lspci -vvv -k -s 28:00.0
28:00.0 VGA compatible controller: Intel Corporation DG2 [Arc A770] (rev 08) (prog-if 00 [VGA controller])
        Subsystem: Intel Corporation Device 1020
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupts: unknown pin routed to IRQ 79, MSI(X) routed to IRQ 79
        IOMMU group: 19
        Region 0: Memory at fb000000 (64-bit, non-prefetchable) [size=16M]
        Region 2: Memory at 7800000000 (64-bit, prefetchable) [size=16G]
        Expansion ROM at fc000000 [disabled] [size=2M]
        Capabilities: [40] Vendor Specific Information: Intel Capabilities v1
                CapA: Peg60Dis- Peg12Dis- Peg11Dis- Peg10Dis- PeLWUDis- DmiWidth=x4
                      EccDis- ForceEccEn- VTdDis- DmiG2Dis- PegG2Dis- DDRMaxSize=Unlimited
                      1NDis- CDDis- DDPCDis- X2APICEn- PDCDis- IGDis- CDID=0 CRID=0
                      DDROCCAP- OCEn- DDRWrtVrefEn+ DDR3LEn+
                CapB: ImguDis- OCbySSKUCap- OCbySSKUEn- SMTCap- CacheSzCap 0x0
                      SoftBinCap- DDR3MaxFreqWithRef100=Disabled PegG3Dis-
                      PkgTyp- AddGfxEn- AddGfxCap- PegX16Dis- DmiG3Dis- GmmDis-
                      DDR3MaxFreq=2932MHz LPDDR3En-
        Capabilities: [70] Express (v2) Endpoint, IntMsgNum 0
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
                        ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0W TEE-IO-
                DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
                        RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
                        MaxPayload 128 bytes, MaxReadReq 128 bytes
                DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
                        ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
                LnkCtl: ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk-
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- FltModeDis-
                LnkSta: Speed 2.5GT/s, Width x1
                        TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Range B, TimeoutDis+ NROPrPrP- LTR+
                         10BitTagComp+ 10BitTagReq+ OBFF Not Supported, ExtFmt+ EETLPPrefix-
                         EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
                         FRS- TPHComp- ExtTPHComp-
                         AtomicOpsCap: 32bit- 64bit- 128bitCAS-
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
                         AtomicOpsCtl: ReqEn-
                         IDOReq- IDOCompl- LTR+ EmergencyPowerReductionReq-
                         10BitTagReq- OBFF Disabled, EETLPPrefixBlk-
                LnkCap2: Supported Link Speeds: 2.5GT/s, Crosslink- Retimer- 2Retimers- DRS-
                LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
                LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
                         EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
                         Retimer- 2Retimers- CrosslinkRes: unsupported, FltMode-
        Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable+ 64bit+
                Address: 00000000fee00000  Data: 0000
                Masking: 00000000  Pending: 00000000
        Capabilities: [d0] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [100 v1] Alternative Routing-ID Interpretation (ARI)
                ARICap: MFVC- ACS-, Next Function: 0
                ARICtl: MFVC- ACS-, Function Group: 0
        Capabilities: [420 v1] Physical Resizable BAR
                BAR 2: current size: 16GB, supported: 256MB 512MB 1GB 2GB 4GB 8GB 16GB
        Capabilities: [400 v1] Latency Tolerance Reporting
                Max snoop latency: 1048576ns
                Max no snoop latency: 1048576ns
        Kernel driver in use: i915
        Kernel modules: i915, xe

Resizable BAR is enabled (16 GB BAR). Monitor attached on DP-2.

Note: LnkCap/LnkSta report x1 at 2.5 GT/s on this platform due to a display/reporting artifact; the link actually operates at PCIe 3.0 x16. Not related to the compiler bisect.

Driver Version

26.35.39758.10 (broken, with IGC 2.41.5) — also tested with 26.31.39395.13 (same failure with IGC 2.41.5, works with IGC 2.40.13).

Installed GPU Driver Packages

Arch Linux packages:

intel-compute-runtime 26.35.39758.10-1
intel-graphics-compiler 1:2.41.5-1        # broken
intel-gmmlib 22.10.0-1
ocl-icd 2.3.5-1
level-zero-loader 1.32.0-1
linux 7.2.11.arch1-1                      # installed; running kernel is 7.2.8-9-omarchy

IGC 2.40.13 was obtained from the Arch Linux Archive and staged outside the package manager for A/B testing (1:2.40.13-1).

Driver Installation Details

  • Installation method: distribution repository (Arch Linux, pacman), no Intel repo, no DKMS, no custom driver build.
  • Running kernel: 7.2.8-9-omarchy (distribution/custom kernel package); i915 is in use; xe is loaded but unused (i915 owns the A770).
  • No kernel parameter overrides for the GPU.

Linux Distribution

Arch Linux (Omarchy 4.0.5)

Kernel Version & Boot Parameters

$ uname -r
7.2.8-9-omarchy

$ cat /proc/cmdline
quiet splash cryptdevice=PARTUUID=<redacted>:root root=/dev/mapper/root zswap.enabled=0 rootflags=subvol=@ rw rootfstype=btrfs initramfs_async=0 systemd.tty.term.console=dumb loglevel=0 systemd.show_status=false rd.udev.log_level=0 vt.global_cursor_default=0

$ lsmod | grep -E 'i915|xe'
xe                   5185536  0
i915                 5726208  69
intel_vsec             28672  1 xe
drm_ttm_helper         20480  1 xe
drm_suballoc_helper    24576  1 xe
drm_gpuvm              61440  1 xe
drm_exec               12288  2 drm_gpuvm,xe
drm_gpusvm_helper      69632  1 xe
drm_buddy              12288  2 xe,i915
drm_display_helper    344064  2 xe,i915

Actual Behavior

PrimeGrid's AP27 OpenCL workload (ap27_3.03_opencl_linux64, OpenCL 3.0 NEO, long-running integer kernel, app built May 2023) runs to completion and exits with status 0, with no OpenCL errors in stderr. The GPU is detected correctly (Intel(R) Arc(TM) A770 Graphics, 512 compute units). However, every completed result is rejected by the PrimeGrid validator as invalid/validate-error. The results are not usable by the project.

Bisect (same machine, same app, same runtime A/B, only IGC differs):

compute-runtime IGC AP27 results
26.35.39758.10 2.41.5 0 valid / 107 completed (all rejected)
26.35.39758.10 2.40.13 2 / 2 valid
26.31.39395.13 2.41.5 invalid (1 confirmed, 1 pending at time of writing)
26.31.39395.13 2.40.13 2 / 2 valid

The runtime version therefore does not matter; IGC 2.41.5 is the variable that breaks the results. CPU-only work on the same host validates normally (19 valid SR5 Sieve results, no CPU invalids; 36 CPU tasks were aborted by the user), so the host, network, and validator are not at fault.

Evidence:

  • PrimeGrid host: https://www.primegrid.com/results.php?hostid=1408924 (AP27 filter: appid=11)
  • BOINC client log (runtime 26.35, current):
    OpenCL: Intel GPU 0: Intel(R) Arc(TM) A770 Graphics (driver version 26.35.39758, device version OpenCL 3.0 NEO, 15.11GB, 15.11GB available, 9.83 TFLOPS peak)
  • App stderr:
    AP26 OpenCL 10-shift search version 23_5_6 by Bryan Little
    Compiled May  6 2023 with GCC 7.5.0
    Command line: ../../projects/www.primegrid.com/ap27_3.03_opencl_linux64 538059460 538059582 640
    GPU Info:
      Name:      Intel(R) Arc(TM) A770 Graphics
      Vendor:    Intel(R) Corporation
      Driver:    26.35.39758
      Compute Units: 512
    
  • A/B method: IGC 2.40.13 unpacked under /opt/intel-igc-2.40.13; only the BOINC service was pointed at it via LD_LIBRARY_PATH. LD_DEBUG=libs confirmed /usr/lib/intel-opencl/libigdrcl.so with /opt/intel-igc-2.40.13/usr/lib/libigc.so.2 and libigdfcl.so.2. The runtime version reported by BOINC and by the app was unchanged in each arm.
  • No changes to the app, project preferences, or task arguments between arms.

Expected Behavior

AP27 results should validate under IGC 2.41.5 exactly as they do under IGC 2.40.13, with the runtime held constant.

Reproduction Rate

Always reproduces - 100% (0/107 under IGC 2.41.5; 2/2 under IGC 2.40.13).

Steps to Reproduce

  1. Install compute-runtime 26.35.39758.10 with IGC 2.41.5 (or 26.31.39395.13 with IGC 2.41.5) on Arch Linux with an Arc A770 (DG2).
  2. Attach to PrimeGrid (https://www.primegrid.com/) and enable only the AP27 subproject with "Use Intel GPU" (Linux).
  3. Let several ap27_3.03_opencl_linux64 tasks run. Each takes ~5-20 minutes and exits 0.
  4. Check the results on the project host page: under IGC 2.41.5 they are rejected; under IGC 2.40.13 with the identical runtime they validate.
  5. To reproduce the A/B: unpack the IGC 2.40.13 Arch package to /opt/intel-igc-2.40.13, set LD_LIBRARY_PATH=/opt/intel-igc-2.40.13/usr/lib for the BOINC service, restart it, and run a few more tasks.

Is this a regression?

  • Yes, this is a regression - functionality that previously worked is now broken

Last Known Working Driver Version: IGC 2.40.13 (with compute-runtime 26.31.39395.13 and 26.35.39758.10)
First Known Failing Driver Version: IGC 2.41.5 (shipped with compute-runtime 26.35.39758.10; also fails with runtime 26.31.39395.13)

API Call Logs

Not captured yet (no crash/hang; the app reports no OpenCL errors). I can provide CLIntercept or unitrace captures for several AP27 tasks on request.

strace Logs

Not applicable — no crash or hang. Available on request.

System Logs / dmesg Output

$ sudo dmesg | grep -iE 'i915|xe|drm'
[45122.398797] i915 0000:28:00.0: Using 46-bit DMA addresses

No GPU errors observed around the runs. Full dmesg/journal available on request.

Backtrace (if crash or hang occurred)

Not applicable.

Source Code / Reproducer

The workload is PrimeGrid's public AP27 application, not a private kernel:

  • Project applications: https://www.primegrid.com/apps.php
  • Linux Intel GPU app: ap27_3.03_opencl_linux64 (fetched by the BOINC client; ~2.9 MB)
  • Exact invocation (from stderr): ap27_3.03_opencl_linux64 538059460 538059582 640

I can attach the binary and the full result/validation data, or provide a minimized OpenCL reproducer if the app cannot be used directly. The same application is used by other volunteers on Arc, so the binary is publicly distributed by the project.

Command Line / Application Details

Run via BOINC 8.2.15 on PrimeGrid; AP27 tasks use 0.106 CPUs + 1 Intel GPU. The app writes a small result file and exits 0; the project validator rejects it under IGC 2.41.5.

oneAPI Version (if applicable)

Not used. icpx is not installed. This is an OpenCL 3.0 NEO path.

Screenshots / Video

Can provide a screenshot of the PrimeGrid host result table (0 valid/107 invalid vs 2/2 valid) if useful.

Additional Notes

  • Related issues: IGC #447 (IGC 2.41.5 masked-off lane stores, BMG, closed after a PyTorch-side workaround rather than an IGC fix), IGC #451 (open, SIMD32 subgroup shuffle, Arc B570), compute-runtime #973 (DG2 silent wrong results fixed by 26.35). This report is a separate, runtime-independent IGC 2.41.5 regression; the timing and the LLVM 22 change set may be relevant.
  • IGC v2.41.5 is still the latest IGC release (2026-09-10); there is no newer compiler to test.
  • Workaround in daily use: IGC 2.40.13 selected only for the BOINC service; the rest of the system stays on 2.41.5.
  • Happy to run any requested instrumentation or bisect further inside IGC (e.g., IGC_ShaderDumpEnable, ocloc dumps) if that helps.
Lingua principale
C++
Stelle
1.5k
Fork
304
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di intel/compute-runtime

Tutte le issue di intel/compute-runtime

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.