Repository navigation
Make the portable host suite run from a fresh x86-64 checkout - #192
Conversation
A fresh x86-64 checkout was assembling unguarded AArch64 barriers and the seeded binding. Production AArch64 keeps dsb sy. The portable suite uses a seq_cst fence, refuses the Blackwell device with ENOTSUP, and links a stand-in plus the C encoder and cubin writer. The OSC compiler is an explicit pin, and target-only checks exit 2. Refs #15 Co-authored-by: Drake Stapleton <[email protected]>
The suite passed under CUDAPP_MEM_RESERVE_MIB=0 on this VM. AArch64 native make test, the GB10 device path, and the eight-slice gate were not run. Refs #15 Co-authored-by: Drake Stapleton <[email protected]>
drakestapleton
left a comment
There was a problem hiding this comment.
Triage at head 0095006: needs-changes. The idea is sound and the evidence is honestly labelled. Before merge, the red drift check and the overlap with #170 need answers.
State. Open, not a draft, base main (not stacked), mergeable but unstable. Checks: drift failed, and host-tests, runtime-api, one build and CodeQL c-cpp/python were still running. Everything else is green.
drift. The job log for run 41053836447 shows DRIFT-GATE: FAIL (7 of 739 GPU paths changed in omega 089e5b05350e and not in CUDA++). Of those paths only Makefile is touched here. The rest (src/omega_blackwell_codegen.h, tests/bw_warp_sim*.h, tests/gpu_imadhi_rc_test.c) are not. drift passed on main at 78fea51 at 06:45 CT, so this may be upstream omega movement, not this diff. Please re-run, or show that main fails the same way, before treating it as unrelated.
Overlap with #170 (3b6ca6f, held under ADR 0043/0044). 14 files: Makefile, README.md, m16/m16_concurrent.c, m16/m16_native.c, mk/om-cubin.mk, mk/om-encoder.mk, mk/omega-gpu-engine.mk, nvrm/nvrm.c, src/omega_blackwell_engine.c, src/omega_blackwell_matmul.c, src/omega_blackwell_submit.c, src/omega_gpu_elementwise_api.c, src/omega_gpu_platform_linux.c, tools/gpu_engine_backend_mutations.sh. The PR body already warns about this. Since #170 must be reworked under ADR 0044 anyway, landing #192 first looks like the lower-cost order. That is the maintainers' call.
ADR 0043 Decision 0 (aien-architecture-mv docs/adr/0043-gpu-stack-portable-top-thin-backend.md). This is not P2–P4 backend work: no new backend, ABI or backend/<target>/. It is build portability of the existing C stack, so I don't read it as gated code. It is not a "host-only experiment that touches no shared file" either: it edits shared driver and engine files (nvrm/nvrm.c, m16/*, src/omega_blackwell_{engine,submit,matmul}.c, src/omega_gpu_platform_linux.c). It also adds new C (nvrm/cpu_barrier.h, src/cudapp_binding_portable.c, 221 lines). The ADR's language rule asks that "any new C needs a missing-feature reason with an extension proposal filed, behind a migration-pending build switch." The CUDAPP_MIGRATION_PENDING_C_* switches are there. Please add the missing-feature reason and the extension-proposal reference for cudapp_binding_portable.c and cpu_barrier.h, and have an architecture owner confirm that Decision 0 doesn't apply.
ADR 0044. src/omega_cubin.c and om/cubin/cubin_elf.om are not modified. The x86-64 path only compiles the frozen C writer behind CUDAPP_MIGRATION_PENDING_C_CUBIN. That is consistent, and the body is clear that this is not a cubin_elf.om run or an .om↔C differential.
GPU claims. None are unsupported. GB10, native AArch64 and the eight-slice gate are all marked NOT RUN, and dsb sy is evidenced only by an aarch64 cross-compile. One caveat: make test passed only with CUDAPP_MEM_RESERVE_MIB=0, and with the default reserve it exits 2 (evidence/HOST-X86-20261030/default-reserve.txt). So "make test is now the portable suite" holds only on hosts with more than about 4.7 GiB free. Please state that in docs/OMEGA_HOST_TESTS.md.
To reach ready: drift green or shown pre-existing on main, pending checks green, the new-C reason and proposal reference added, and the reserve caveat documented.
— Grokbot
|
Architecture's ruling on ADR 0043:
The frozen imported C stack in ADR 0043's Consequences includes — Grokbot |
The seven drift paths fail the same way on main against omega 089e5b05350e. AArch64 cross objects of the shared files match main. The default memory reserve still exits 2 on this VM, and the docs say so. — Grokbot Co-authored-by: Drake Stapleton <[email protected]>
|
Review answers are on Drift. The seven paths fail the same way on CUDA++ main ADR 0043. AArch64 objects. Reserve. — Grokbot |
…er. — Grokbot Native AArch64 make test compiled tests/test_omega_blackwell_arch_guard.c with -Werror. refuse_ok is only called on the non-AArch64 path, so the build stopped at unused-function. The AArch64 target now prints NOT_RUN without building that binary, and the helper is compiled only off AArch64. Refs #15 Co-authored-by: Drake Stapleton <[email protected]>
|
AArch64
That Makefile edit is the test target only. With
— Grokbot |
drakestapleton
left a comment
There was a problem hiding this comment.
Re-check at head 1b2ca5c: needs-changes (one item left). Everything else from my review at 0095006 is resolved.
CI. 14 of 15 checks are green: host-tests, runtime-api, both builds, library, sim, hello-sim, om-units, sbom, audit-scanner and CodeQL. drift is red. That failure is upstream: main 78fea51 re-ran at 08:00 CT and also failed, with the same 7 paths against omega 089e5b05350e (Makefile, src/omega_blackwell_codegen.h, tests/bw_warp_sim{,_k,_pa,_tc}.h, tests/gpu_imadhi_rc_test.c). This PR's run 41058056845 prints the same lines. So it doesn't block this PR, but it has to be fixed on main.
#170 overlap. Still 14 files, the same list as before.
Architecture's Decision 0 conditions (the ruling quoted in the 12:17Z comment):
- (a) aarch64 unchanged: met, by cross-compile.
evidence/HOST-X86-20261030/aarch64-objects.tsv:2-12lists 11 shared objects (nvrm.o,m16_*.o,omega_blackwell_{engine,submit,matmul}.o,matmul_fs.o,omega_gpu_platform_linux.o,omega_gpu_elementwise_api.o, both gate objects). Each is IDENTICAL by sha256 to main 78fea51. This isaarch64-linux-gnu-gccon x86-64, not a native AArch64 build or a GB10 receipt. The 1b2ca5c change (tests/test_omega_blackwell_arch_guard.cunder#if !defined(__aarch64__)) is test-only. - (b) New C files.
nvrm/cpu_barrier.h: the missing-feature reason is at L12-14. The draft proposal note is at L18-19 (proposal-cpu-barrier.md). The migration-pending switch is named at L15-17. The non-AArch64 body is selected by#if defined(__aarch64__)at L23. The header itself has no switch guard, and on AArch64 it is the productiondsb sypath, which is fine because the objects are identical.src/cudapp_binding_portable.c: the reason is at L7-9, the switches at L9-12, and the draft proposal note at L12-14. An#errorat L30-31 stops the build unlessCUDAPP_MIGRATION_PENDING_C_ENCODER,_C_CUBINorBINDING_PORTABLEis defined.
Remaining item. Architecture's ruling asks for a filed extension proposal. Both files say "drafted, not yet filed on omega-mv", and the drafts are in evidence/ (proposal-cpu-barrier.md:17). Either file the two proposals on omega-mv and replace the evidence-path pointers with the issue links, or get Architecture to accept a drafted-not-filed note. Once that's done, I'd rank this ready-to-merge.
ADR 0044. src/omega_cubin.c and om/cubin/cubin_elf.om are still untouched.
GPU claims. GB10 and native AArch64 make test are still NOT RUN, and the PR labels them that way. The reserve caveat is now in docs/OMEGA_HOST_TESTS.md and README.md.
— Grokbot
|
CI on
— Grokbot |
dsb sy on AArch64, a real fence elsewhere
aien-dev/omega-mv#939
…okbot nvrm/cpu_barrier.h points at omega-mv#939. src/cudapp_binding_portable.c points at omega-mv#940. The evidence copies record the same URLs. The comment edits do not change the AArch64 objects: the eleven hashes in evidence/HOST-X86-20261030/aarch64-objects.tsv match again. Refs #15 Co-authored-by: Drake Stapleton <[email protected]>
drakestapleton
left a comment
There was a problem hiding this comment.
Re-check at 6235ac1 (expected head, confirmed): ready-to-merge. The only red check is drift, which comes from upstream and is tracked in #193.
What changed since 1b2ca5c. One commit touching 5 files, all comments and docs:
- In both new C files, the "drafted, not yet filed" line is now a link to the filed issue. The line count is unchanged.
- The two proposal notes now say "Filed as …".
- The evidence README gained a "Filed extension proposals" section (+9 lines).
There is no code change.
The filed proposals exist.
- aien-dev/omega-mv#939, an open issue: "Seed a host CPU publication barrier:
dsb syon AArch64, a real fence elsewhere". - aien-dev/omega-mv#940, an open issue: "Emit a host-assembleable native binding, or keep a migration-pending portable stand-in".
Both were filed today. Neither is a PR.
ADR 0043 Decision 0, per Architecture's ruling: met.
- (a) aarch64 unchanged.
evidence/HOST-X86-20261030/aarch64-objects.tsvis not touched in this commit. The README's new section, L13 of the added hunk, records a re-run of the aarch64-linux-gnu-gcc 13.3.0 cross build: all 11 objects keep their SHA-256. The edits replace comment lines one for one, so no line numbers move. This is a cross-compile from an x86 host. Native AArch64 and GB10 are NOT_RUN, and nothing ran on the Spark. - (b)
nvrm/cpu_barrier.h:- Reason: L12-14.
- Switches: L14-17 (migration-pending,
CUDAPP_MIGRATION_PENDING_C_ENCODER/_C_CUBIN). - Filed link: L18 (omega-mv#939), with the drafted text kept at L19.
- The
__aarch64__split is at L23. As before, the switches are applied to the callers' compilation, not inside the header.
- (b)
src/cudapp_binding_portable.c:- Reason: L7-9.
- Switches: L9-12.
- Filed link: L13 (omega-mv#940), with the drafted text at L14.
#errorguard: L30-31.
The item from my last re-check, proposals filed rather than only drafted, is now resolved.
CI. 14 of 15 checks are green: build ×2, library, host-tests, om-units, sim, hello-sim, runtime-api, sbom, audit-scanner, and CodeQL with Analyze for actions, python and c-cpp. The one failure is drift.
Drift, reported separately and not counted against #192.
- This head's drift job (124083255422) reports
DRIFT-GATE: FAIL (7 of 739 GPU paths changed in omega 62d1d0d668f8). - Main 78fea51's drift job at 08:00 CT (124075795636) fails against the same omega revision on the identical 7 paths, with identical blob SHAs:
Makefile,src/omega_blackwell_codegen.h,tests/bw_warp_sim{,_k,_pa,_tc}.h, andtests/gpu_imadhi_rc_test.c(omega-only). - The only difference is the denominator, 739 vs 730, because this PR adds GPU-scoped paths. None of them drift.
- #193 exists, but it is an open issue tracking this upstream drift, not a fix PR. Drift stays red on main until that work lands.
Still true. src/omega_cubin.c is untouched (ADR 0044). The 14-file overlap with #170 means one of the two will need a rebase after the other merges.
— Grokbot
Bring in the drift fix from #194 (b4f0480). Keep both HOST_TESTS additions: main's test-gpu-imadhi-rc and test-dagsim, and this branch's portable omega targets, plus the x86 target-only filter. Refs #15 Co-authored-by: Drake Stapleton <[email protected]>
…switches. — Grokbot The x86-64 freestanding link uses src/cudapp_binding_portable.c and that file refuses to compile unless CUDAPP_MIGRATION_PENDING_C_ENCODER or CUDAPP_MIGRATION_PENDING_C_CUBIN is set. AArch64 still links src/cudapp_freest_units.c, so the new rule is unused there. Refs #15 Co-authored-by: Drake Stapleton <[email protected]>
…kbot Both targets pass on this x86-64 host, so they stay out of CUDAPP_TARGET_ONLY_TESTS. CUDAPP_MEM_RESERVE_MIB=0 make CC=gcc -j4 test exited 0 and ended CUDA++ HOST TESTS PASS (57 targets). test-gpu-imadhi-rc printed PASS for all four warp simulators. test-dagsim printed dagsim_unit: 171 checks, 0 failed. GB10 stays NOT RUN. Refs #15 Co-authored-by: Drake Stapleton <[email protected]>
|
Merged main
— Grokbot |
drakestapleton
left a comment
There was a problem hiding this comment.
Re-review at ba53e3bd1f9380cb63b60935a0365194b8b1c20b. Classification: ready-to-merge.
History. Merge 7e6abe3 has parents 6235ac1 (the previously reviewed head) and b4f0480 (main, #194). All 5 earlier branch commits are still in the history, so there was no force-push. Beyond the merge, #192 adds 2 commits, 5d186bb and ba53e3b. 7e6abe3...ba53e3b touches only mk/omega-gpu-engine.mk (+7) and docs/OMEGA_HOST_TESTS.md (+10). GitHub reports mergeable_state clean.
Checks at head (15/15 success).
- drift: run 41070699255
- ci run 41070699078: host-tests, om-units, sbom, audit-scanner
- CodeQL: run 41070691805 (c-cpp, python, actions), "No new alerts"
- hello-sim: 41070699119
- library: 41070699710
- sim: 41070699392
- build: 41070699165 and 41070699231
- runtime-api: 41070699216
HOST_TESTS (Makefile:418-431). Both sets of names are kept: this branch's test-omega-slice-runner test-omega-arch-guard test-omega-barrier-contract test-omega-binding-portable and main's test-gpu-imadhi-rc test-dagsim. After them, the filter-out $(CUDAPP_TARGET_ONLY_TESTS) runs, and only when that list is non-empty (x86). test-gpu-imadhi-rc and test-dagsim are not in CUDAPP_TARGET_ONLY_TESTS (Makefile:40), so they stay portable. Evidence: CI host-tests is native AArch64 only. The x86-64 pass (57 targets, dagsim 171 checks) is the author's VM receipt, and no CI job runs on x86.
New rule (mk/omega-gpu-engine.mk:147-152). It adds $(CUDAPP_PORTABLE_DEFS) when compiling cudapp_binding_portable.o. That object is in GPU_FS_OBJS only through CUDAPP_FS_BINDING:
- x86:
CUDAPP_FS_BINDING=src/cudapp_binding_portable.c(Makefile:37). - AArch64: it is
src/cudapp_freest_units.c(Makefile:52) andCUDAPP_PORTABLE_DEFSis empty (Makefile:54). On AArch64 the new rule is never reached, and the freestanding units link unchanged.
The new commits don't touch the GB10/sm_121 path or any C source, so ADR 0043 Decision 0 (a) still holds. Note that CI never builds the x86 freestanding link (host-tests is AArch64), so this fix is exercised only on the author's VM.
GPU claims. GB10 is NOT_RUN. The AArch64 object match is cross-compile evidence and CI host-tests opens no device. The IMAD.HI "PASS for all four warp simulators" result is a host simulator run, not on-hardware evidence.
Merge. Nothing blocks the merge. #194 is already in via b4f0480. #195 should rebase after this and update its gcc/CC lines.
— Grokbot
… binding); recompile stale crumbs
Purpose and scope
A fresh x86-64 checkout could not build the host suite.
src/omega_blackwell_engine.cemitted unguardeddsb sy, andtests/omega/run.shassumed a sibling compiler at$HOME/workspace/omega-osc-cubin.make testis now the portable suite on x86-64 and on AArch64. It needs no NVIDIA tool and no sibling checkout. Target-only checks name their requirement and exit 2. Production AArch64 ordering staysdsb sy.Refs #15. This pull request does not close the issue.
What landed:
nvrm/cpu_barrier.h. AArch64 executesdsb sy. Any other host executes__atomic_thread_fence(__ATOMIC_SEQ_CST).nvrm_cpu_relaxisyieldon AArch64 and a compiler barrier elsewhere. The publication barrier is a real fence on both hosts.ENOTSUPand the textrequires AArch64 Linuxon a non-AArch64 host. They do not call the driver. A translation unit built withOMEGA_BLACKWELL_HOST_SIMULATORkeeps the simulator path. Simulator and mutation builds set that macro. The x86-64 architecture-guard binary does not. On AArch64,make test-omega-arch-guardprintsNOT_RUNand does not build that binary.src/cudapp_binding_portable.cand compiles the C encoder and the C cubin writer (CUDAPP_MIGRATION_PENDING_C_ENCODER,CUDAPP_MIGRATION_PENDING_C_CUBIN).src/cudapp_om_units.candsrc/cudapp_freest_units.care unchanged and are not assembled.omega_native_revisionandomega_native_epochfollow the freestanding units. Every other seeded entry returns status 34 and does not write its result. That path is how the portable suite produces instruction words and cubin images. It is a run of the C bodies. It is not a run ofbw_enc_sm121.omorcubin_elf.om, and it is not a pass of the.omversus C differential.make test:test-om-encoder,test-om-cubin,test-gpu-native-runtime,test-om-spec-encoder,test-portable-receipts,test-model-capacity.make test-omega-target-onlyprints the same lines and exits 0. That exit is the report. On AArch64 those six targets stay insidemake test.OMEGA_OSC_COMPILER_DIRor the directory argument oftests/omega/run.sh. There is no$HOMEdefault. The checkout must be clean and must be source commit1accb93164ce68a2ac2e2c680acf54782f260d62. Missing compiler, missing slice, and a wrong pin each print a specific diagnostic.make test-omega-slicesis outsidemake test.CC=ccis replaced with gcc whenCCwas not set. An explicitCC=still wins. On AArch64,CC ?= gccleaves make's built-inCC=ccin place.omega_fp32_to_fp16_rne, so the link does not call libgcc__truncsfhf2. AArch64 keeps the hardware cast.Docs that separate the portable commands from the target-only ones:
docs/OMEGA_HOST_TESTS.md,README.md,AGENTS.md,docs/START_HERE.md,CONTRIBUTING.md,AUDIT_SCOPE.md.The seeded
.omreplacement of this shell runner remains #52. This pull request does not do that migration, and it does not include the CI work tracked by #90.Open pull request #170 also edits barrier call sites and several of these makefiles for an Ampere port. This branch does not take that port. Expect conflicts in
nvrm/nvrm.c,m16/, and the makefiles if both land.ADR 0043 Decision 0
Shared-file edits are build and portability guards.
aarch64-linux-gnu-gcc13.3.0 cross-compiled each edited C file from this tree and from main78fea51d6f8859ec8cc5e5561295fd5583b92c19with the production flags and withoutCUDAPP_PORTABLE_DEFSorOMEGA_BLACKWELL_HOST_SIMULATOR. Every object inevidence/HOST-X86-20261030/aarch64-objects.tsvis byte-identical. GB10 runs stay NOT RUN. Commit1b2ca5cdoes not edit those C files. Withuname -mforced toaarch64,CCstayscc, the portable defs stay empty, and the binding sources stay the two generated units.Each new C file links the filed Omega extension proposal:
nvrm/cpu_barrier.h: Seed a host CPU publication barrier:dsb syon AArch64, a real fence elsewhere omega-mv#939 (evidence/HOST-X86-20261030/proposal-cpu-barrier.md)src/cudapp_binding_portable.c: Emit a host-assembleable native binding, or keep a migration-pending portable stand-in omega-mv#940 (evidence/HOST-X86-20261030/proposal-binding-portable.md)Main
b4f0480(#194) is merged here.driftonba53e3bpassed:DRIFT-GATE: PASS (754 GPU paths, omega 62d1d0d668f8, none moved away from CUDA++ since the baseline)(https://github.com/aien-dev/CUDApp/actions/runs/41070699255).Evidence on the exact commit
Code commit
0d8084b26d6183ebac8f12861801aae733a4b67c. Receipt commit00950065b48062ae48b8e890b7f3ad5215d184d2. ADR and drift notec96fc6010d6d2540e8dc10caf74723edaf1c2508. AArch64 arch-guard compile fix1b2ca5c7be163f6c5b3aa7375d096089058f845c. Filed-issue links6235ac1cd27edd34777aa156e8f94c462c878101. After that comment-only edit, the same AArch64 cross compile kept every hash inevidence/HOST-X86-20261030/aarch64-objects.tsv. Merge of mainb4f0480is7e6abe3. Headba53e3bd1f9380cb63b60935a0365194b8b1c20b. x86-64CUDAPP_MEM_RESERVE_MIB=0 make CC=gcc -j4 testexited 0:CUDA++ HOST TESTS PASS (57 targets), includingtest-gpu-imadhi-rcandtest-dagsim. AArch64 CIhost-testsendedCUDA++ HOST TESTS PASS (62 targets)(https://github.com/aien-dev/CUDApp/actions/runs/41070699078). Linux 6.12.94+ x86_64, gcc 13.3.0, 4 cores. Receipt:evidence/HOST-X86-20261030/./dev/nvidia*and/dev/aien-gpuwere absent. No GPU device was opened.make test(host-only).CUDAPP_MEM_RESERVE_MIB=0 make CC=gcc -j4 testexited 0. Last line:CUDA++ HOST TESTS PASS (55 targets). The same command with the default reserve exited 2 on this VM: the serving test refused a 741.9 MiB upload because 4.6 GiB was free and the runtime keeps 4.0 GiB free (CUDAPP_MEM_RESERVE_MIB=4096). The default was not changed. After the merge of main the same command exited 0 withCUDA++ HOST TESTS PASS (57 targets).make test-native-artifact(host-only). Inside that suite:test_gpu_artifact_export: 47 checks, 0 failed.make zero-cuda-gateexited 0. The CUDA probe is rejected.build/hello_gpuneedslibmandlibc.build/gpu_matmul_api_testneedslibc.build/hello_gpu --simexited 0 and printedPASS. The suite's wrapper printedhello --sim tests: 12 passed, 0 failed. The program's existing ceiling sentence names a GB10 bandwidth figure; this run did not measure it.make doctorexited 1 and printedNOT READY: 5 problems above. The kernel module, the three device nodes, and the PCI GPU are absent. That is the expected report. The doctor checks nodes withaccessand did not open one. Its seeded target-table row isNOT_RUN(pinnedomcabsent).make hello-gpuwas not run.Also inside the passing suite: engine simulator
SUMMARY passed=334 failed=0; matmul boundsSUMMARY passed=6 failed=0; backend mutants120 total, 107 killed, 13 survived as redundant, 0 survived as test gaps;barrier-contract: PASSincludingaarch64-linux-gnu-gcc cross compile emits dsb sy;binding-portable: PASS;omega-runner-test: PASS (missing harness, missing slice, wrong source pin); Blackwell openENOTSUPand the fake driver was not entered.make test-om-encoderalone exited 2 with the AArch64NOT_RUNline.make test-omega-sliceswith no harness exited 2 and named the pin.make test-omega-target-onlyexited 0 after printing the refusals. After1b2ca5c,make CC=gcc test-omega-arch-guardon this VM still exits 0 and prints the twoENOTSUPlines.Host cross checks, labeled as such in the receipt, and not GB10 results:
src/cudapp_freest_units.c(cross compiled withaarch64-linux-gnu-gcc13.3.0). revision(0)=1, revision(1)=2, revision(UINT64_MAX)=0, epoch(0)=1, epoch(3)=4, epoch(UINT64_MAX)=UINT64_MAX, null or misaligned returns 32.omega_fp32_to_fp16_rnematched gcc's_Float16cast on 4294967296 inputs, 0 mismatches.CI
host-testsonba53e3b(https://github.com/aien-dev/CUDApp/actions/runs/41070699078) is the native AArch64make test. It exited 0. Last line:CUDA++ HOST TESTS PASS (62 targets). The count is 62 because AArch64 keeps the six target-only rows insidemake test, plustest-gpu-imadhi-rcandtest-dagsim. The x86-64 VM suite is 57. That run does not open a GPU.Correctness, compatibility and provenance
dsb syfixture must fail; a missing harness, a missinglaunch.osc, and a wrong source pin must fail; the architecture guard requiresENOTSUPand zero driver calls; the portable binding's other entries return 34 and leave the result unchanged.docs/runtime/omega_runtime_api.manifest, anddocs/runtime/API.mdare unchanged. The AArch64 library still links the generated units and still executesdsb sy. On x86-64, production Blackwell open returnsENOTSUPwhere the previous tree failed to assemble. A host or simulator pass is not a chip qualification.tests/omega/run.shkeeps its existing Apache-2.0 header. No NVIDIA binary, cubin, PTX, firmware, or vendor listing was added.evidence/HOST-X86-20261030/were not edited. That receipt records the filed issue URLs and the repeated object hashes.Known limitations
host-testsdoes not open a GPU.gh api repos/aien-dev/omega-osc-cubinreturned HTTP 404. Source pin1accb93164ce68a2ac2e2c680acf54782f260d62was not checked out. The historical AArch64 binary SHA-256a007283780347dd4a4b024844dc0c81fc09e0926f27f83e50c07d42508886f23was not re-measured.omctargets were not executed on the x86-64 VM. Their x86-64 result is exit 2. On AArch64 they stay insidemake test, and CIhost-testsis that run.make teston this VM requiredCUDAPP_MEM_RESERVE_MIB=0. A machine with enough free memory still uses the default 4096 MiB reserve.driftis green on this head after the merge of Mirror omega 62d1d0d so the drift gate is green (Refs #193) #194. GB10 device behavior stays NOT RUN.