Speedup rollout - #25
Merged
Merged
Conversation
The GraphNetCore 0.4 migration (cfbe629) dropped the neighbor_backend wiring: Args lost the field and meta["neighbor_backend"] was set nowhere, so build_graph silently fell back to :pointneighbors and passing neighbor_backend= to eval_network crashed the Args constructor (MethodError) — breaking the eval/benchmark path entirely. Restore the documented design (Args.neighbor_backend -> meta["neighbor_backend"]): re-add the field (default :pointneighbors) and thread it at all four meta sites (train x2, eval, extrapolate). :octopus is required for the larger droplets/Duese (:pointneighbors OOMs on a 24 GB card). Also drop the Zygote.Buffer/copy from ode_step_eval: rollout solves an ODEProblem{false} with no sensealg, so this RHS is never differentiated — the AD bookkeeping was dead weight in a hot loop run ~trajectory_length times per trajectory. Denormalize the output slices directly; value- identical to the buffer path (for a single output field it reduces to inverse_data(o_norm, output) .* val_mask). Verified on A30: full 39-trajectory D50 Euler eval runs end-to-end with :octopus, rollout stable, MSE in the baseline range. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.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.
Patch release (0.1.2). Non-breaking — additive config + internal perf work;
default behavior is preserved (bit-identical values/gradients).
Changes
vcatover thepresent blocks instead of chained per-block
vcats. ~4.8× faster forward, ~1/3 lessfwd+bwd allocation; values and gradients are bit-identical.
Args.neighbor_backend::Symbol(default:pointneighbors, unchanged behavior;:octopusopt-in). Octopus.jl added as aregistered dependency; backend is threaded through
build_graphviameta.GNS_EVAL_NTRAJenv var caps the number of evaluatedtrajectories (default: all) for tractable A/B timing runs.
convert_csv/→src/import_data/;move
JuliaFormatterfrom[deps]to test-only[extras].Not breaking
No exported symbols changed;
neighbor_backendis a defaultedArgsfield; theconvert_csv/→src/import_data/move is an internalincluderelocation(
csv_to_hdf5/vtk_to_hdf5exports unchanged).