Skip to content

records: land lc0, nothing outstanding - #58

Merged
jeffdaily merged 72 commits into
mainfrom
port/lc0
Oct 27, 2026
Merged

jeffdaily merged 72 commits into
mainfrom
port/lc0

Conversation

@jeffdaily

Copy link
Copy Markdown
Collaborator

Lands the completed control-plane records for lc0, plus two cuda-to-rocm lessons from its Windows investigation.

  • Upstream PR Add a native HIP (ROCm) backend for AMD GPUs LeelaChessZero/lc0#2420 merged. Upstream #2454 later fixed the weight-upload race our follow-up round carried, so that round was abandoned (fix_abandoned) and moat-port now points at upstream master (4975680, upstream's own tree). pr_ready reads that as nothing to offer, so no follow-up PR is pending.
  • linux-gfx90a, linux-gfx1100 and windows-gfx1151 completed at 4975680, so wave64, wave32 and windows are all satisfied. windows-gfx1151 carries a release-noted known issue: the large moves-left nets bugcheck that APU host's GPU scheduler (a driver-stack failure; no check failed).
  • Deferrals: lc0-move-sync-below-memset closed as done by upstream #2454 (jeff's ruling); lc0-ck-fused-mha stays ruled defer.
  • License: GPL-3.0.

Skill text (needs review, since it publishes to every agent):

  • fault-classes.md: an init-time kernel on the legacy null stream is not ordered against non-blocking streams. Fingerprint, why Windows loses the race, and fix at the boundary with one sync after the last null-stream operation (upstream #2454 is the reference shape).
  • validation.md: check what a project's cross-backend checker actually compares, and whether the test input reaches the changed path (lc0's --backend=check never compares moves-left).

Part of the misplaced-branch sweep.

🤖 Generated with Claude Code

A deferral is discovered while porting and is evidence about THIS port, so it lives with the notes and the plan it came out of and is reviewed with them, rather than in a trunk-global file only the trunk can write.
A full real-GPU revalidation at 7727fa3 -- 222/222 conv-SE cross-checks in fp32 and fp16, 130/130 attention, determinism bit-identical to the original baseline -- got recorded through `carry_forward` because `set-state completed` no-ops when the stored state is already `completed`. That is the bug #9 fixed and this branch has not merged it. The tag asserts no GPU ran for this sha, the opposite of the truth, and under-sells a stronger result. The validation stands.
# Conflicts:
#	.claude/skills/cuda-to-rocm/references/validation.md
# Conflicts:
#	README.md
The lc0 lesson put the single construction-end sync before the evaluation
buffers are allocated, which leaves their async memset racing the
non-blocking compute streams -- the hole review found in August. Upstream
lc0 #2454 syncs after the memset loop; cite it as the reference shape.

Authored with Claude.
@jeffdaily
jeffdaily merged commit bbc2997 into main Oct 27, 2026
1 check passed
@jeffdaily
jeffdaily deleted the port/lc0 branch October 27, 2026 19:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant