TEST ONLY: verify SciML/PoissonRandom.jl#72 unblocks GPU tau-leaping#590
Closed
ChrisRackauckas-Claude wants to merge 1 commit into
Closed
Conversation
Temporary [sources] override so GPU CI on this branch picks up SciML/PoissonRandom.jl#72 (PassthroughRNG dispatch survives overlay method-table shadowing). Remove before merge — once that PR is released as 0.4.8, the existing PoissonRandom = "0.4" compat already covers it and no JumpProcesses change is needed. See issue SciML#588 and PR SciML#589 (closed) for the full debugging chain. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
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.
This PR exists solely to run GPU CI against the proposed fix in SciML/PoissonRandom.jl#72 before that PR is released. Do not merge.
Background
Issue #588: GPU kernel compile fails with
InvalidIRError: jl_f_throw_methoderroron Julia 1.12 / latest CUDACore.Root cause is in PoissonRandom, not in JumpProcesses. GPUCompiler installs CUDACore's overrides into a Julia overlay method table via
Base.Experimental.@consistent_overlay. Julia 1.12'sOverlayMethodTable.findallreturns overlay matches without consulting the base method table whenever the overlay fully covers the signature (Compiler/src/methodtable.jl:73–92). So@device_override Random.randexp(rng::AbstractRNG)shadows PoissonRandom's specificRandom.randexp(rng::PassthroughRNG)on the device, and the override body runs withrng::PassthroughRNG. ItsRandom.rand(rng, UInt52Raw())then reachesrng_native_52(::PassthroughRNG)which has no method — hence the staticthrow(MethodError)that GPUCompiler rejects.SciML/PoissonRandom.jl#72 fixes this by adding the two forwarding methods PassthroughRNG needs to survive overlay shadowing:
This PR
[sources]override inProject.tomlpinning PoissonRandom to the fix branch.test/gpu/regular_jumps.jl.Plan after CI
"0.4").@noinline randexp_unlikelytriggersjulia.get_pgcstackon Julia 1.12 — that may surface once the MethodError is unblocked).Notes
🤖 Generated with Claude Code