Repository navigation
Wire allocation tests into the CPU group - #573
Draft
ChrisRackauckas-Claude wants to merge 2 commits into
Draft
ChrisRackauckas-Claude wants to merge 2 commits into
ChrisRackauckas-Claude wants to merge 2 commits into
Conversation
test/alloc_tests.jl was added gated behind GROUP == "all" || "nopre", but neither group exists in test_groups.toml or any workflow, so the tests have never run in CI. Include them in the CPU group, where they pass, and drop the dead gate. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Devin <noreply@cognition.ai> Agent-Harness: Devin CLI 3000.11.3 Agent-Model: swe-2-high Agent-Session: local session, transcript at /home/crackauc/sandbox/goals/qa-hygiene/jobs/gpu-fixes/log.txt on amdci2
On Julia <= 1.10, @allocated evaluated directly in a @testset body also counts boxing the measured call's result, so the three == 0 checks fail on lts (32 == 0 for lorenz, 16 == 0 for diffeqgpunorm) even though the code under test does not allocate. The same calls measured inside a function report 0 on 1.10 and 1.13, and an escaping-allocation control still reports > 0 through the wrapper. No VERSION gate and no loosened thresholds. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Devin <noreply@cognition.ai> Agent-Harness: Devin CLI 3000.11.3 Agent-Model: swe-2-high Agent-Session: local session, transcript at /home/crackauc/sandbox/goals/qa-hygiene/jobs/gpu-fixes/log.txt on amdci2
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
test/alloc_tests.jlwas added in e72e1aa gated behindGROUP == "all" || GROUP == "nopre", but neither group exists intest/test_groups.tomlor in any workflow — so the tests have never run in CI. This moves the safetestset into theGROUP == "CPU"block (which also covers the "CPU 32-bit" CI group,group = "CPU") and removes the dead gate.Second commit fixes a Julia-version sensitivity in the test itself: on Julia <= 1.10,
@allocatedevaluated directly in a@testsetbody also counts boxing the measured call's result, so the three== 0checks fail on lts (32 == 0forlorenz,16 == 0fordiffeqgpunorm) even though the code under test does not allocate. The measurements are now made inside zero-arg functions, which report 0 on both 1.10 and 1.13 and still detect real allocations. NoVERSIONgate and no loosened thresholds.Verification
Machine has no NVIDIA GPU; verified on CPU only. Envs were resolved per Julia version from
test/Project.tomlwith DiffEqGPUPkg.develop'd at this checkout (not the registered release).Safetestset wired exactly as
runtests.jlincludes it, on Julia 1.10.12 before the fix — reproduces the CI failure:Root cause probe on 1.10.12 (same calls, different measurement site):
After the fix,
GROUP=CPU julia +1.10 --project=<dev-env> test/runtests.jl(1.10.12) — full CPU group green, including:GROUP=CPU julia +1 --project=<dev-env> test/runtests.jl(1.13.1) — full CPU group green, tail:No
Fail/Error/did not passentries in either log.runic --inplacemade no changes andtyposis clean on both touched files.Not verified / notes
test/reverse_ad_tests.jlstays commented out. It was disabled in c550bb9 ("test without reversediff", Fix master tests (v1.10 and v1.11) #348) during the SciMLBase v3-era test fixes, and it still fails today: Zygote's pullback hitsSciMLBaseChainRulesCoreExt'srruleforODESolution, which constructs the solution with an outdated argument list — an upstream SciMLBase/ChainRules issue, not something this repo's test wiring can fix.tests / CUDAjob failure seen in CI (Enzyme ensemble gradients,test/enzyme/cuda_records.jl) is pre-existing on master — tracked in CUDA CI: test/enzyme/cuda_records.jl fails on released CUDACore (Enzyme undef-shadow fill! for non-numeric eltypes) #546 — and unrelated to this diff. No GPU paths were run locally.== 0byte counts /< 1024on host-side code.Please ignore this draft until reviewed by @ChrisRackauckas.
Risk assessment
@allocatedassertions (~1s) to the CPU group; no src changes.test/runtests.jldispatch plus the measurement pattern intest/alloc_tests.jl; the CPU 32-bit job also runs it.GROUP=CPUrun oftest/runtests.jlobserved green locally on Julia 1.10.12 and 1.13.1 against the dev'd checkout, including the newly wired safetestset; red-before/green-after for the measurement fix.🤖 Generated with Devin CLI 3000.11.3 (model: swe-2-high). Local session, transcript at /home/crackauc/sandbox/goals/qa-hygiene/jobs/gpu-fixes/log.txt on amdci2.