Intel Arc README: the bisect and the fix as they went; the trace job on kit 2

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
igneum-labs 2026-10-07 11:31:38 +00:00
parent bd6efd928d
commit ad74ce87bd
2 changed files with 11 additions and 1 deletions

View file

@ -57,6 +57,16 @@ Bench c and the two family-probe runs left one fact: every instruction family of
packaging/ota/publish-jobs.sh add --kind fetch --target ae432dc7 --id fetch-ia-trace-kit-20261007 --file "$TMPDIR/igneum-ia-trace-kit.zip" --dir jobs --extract --title "Arc trace kit" --deploy
packaging/ota/publish-jobs.sh add --kind run --target ae432dc7 --id run-ia-arc-trace-20261007 --cards-off "other:Intel(R) Arc(TM) B580 Graphics" --script tools/intel-arc/pc1-arc-trace.ps1 --timeout-minutes 20 --title "Arc B580: register trace against the CPU interpreter" --deploy
## 2c. What the bisect found and the fix (7 October 2026, 12:1x to 12:2x UK)
| Job | Result |
|---|---|
| `run-ia-arc-family-20261007` and `-b` | every family exact on Intel's compiler, `mulhi` and `mad` included (60 rows, 0 `exact=no`) |
| `run-ia-arc-trace-20261007-b` | the first divergence at snapshot 7, instruction `6 rotr` (`r0 = rotr_var(r0, r2)`, r0 d1affd94, n f183b605): CPU a68d7fec = rotr(x, 5), the Arc 35ffb29a = rotl(x, 5): Intel's compiler folds `rotate(x, (0u - n) & 31u)` into a LEFT rotate by n; the same in both exchange modes |
| the fix | commit 26e135a3: `proto-opencl/intel_rotr.h` rewrites the one helper line to the shift form on an Intel platform before the build (host.c's buildProgram and the prepare path); `proto-opencl/test_intel_rotr.c` in the pre-push gate (Intel rewritten, AMD and NVIDIA untouched); taken into release-0.3.20 by the shipper as 9088293a |
| `run-ia-arc-trace-20261007-c` | with the fix, the local-exchange trace equals the CPU's in all 55,809 snapshots (the sub-group trace kernel alone diverges at a shuffle: the divergent lane-0 store before a sub-group shuffle, a trace-kernel artefact; the real kernel's vectors pass) |
| `run-ia-arc-bench-20261007-d` | self-test PASS on every pack, fingerprints equal to the Mac's and the 5090's; 11.011 MH/s on class v4, 11.019 on the v3 control, 11.002 on the live pack, 10.882 local exchange; the bench-log row and the card-picker entry |
## 3. Dry run
The playbooks are PowerShell; this Mac has no `pwsh` (the Homebrew cask is gone from the tap and the Command Line Tools are too old for a cask install today), so the Mac-side dry run against the UI mock (`node tools/ui-mock/server.mjs 4310` with `?scenario=intel`, whose `api/state` carries the Intel row) is owed until a PowerShell is on the Mac (Microsoft's pkg, the project lead's word for the download). What stands in: the driver playbook ran live on PC 1 twice with the same helper shapes (Stamp, Summary, the adapter and worker-list readers), and the four CI checks pass on both scripts (`kit-path-check`, `ps-drive-ref-check`, `kill-by-name-check`, `playbook-quit-check`).

View file

@ -8,7 +8,7 @@
# or quit. Lines: RESULT; the first divergence with 6 lines of context from both traces; a SUMMARY {json} line.
$ErrorActionPreference = 'Continue'
$jobName = 'pc1-arc-trace'
$kitId = 'fetch-ia-trace-kit-20261007'
$kitId = 'fetch-ia-trace-kit-20261007-b'
$started = Get-Date
function Stamp { (Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') }
function Summary([string] $status, [hashtable] $extra) {