Conversation
|
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.


Closes #21 (and #20).
This PR separates engine construction from runtime setup so the same Engine instance can be reused across multiple parameter sets without re-instantiating the full model stack each time.
The main goal is to support workflows where parameters are updated repeatedly, especially in differentiable and optimization use cases, while avoiding the current need to deep-copy the parameter provider before every run.
Changes
setup(...toEnginesetupwhenEngineis initialize_reset_runtime_statemethod so an engine instance can be safely reused_finish_cropsimulationto avoid callingclear_override()that would pop away variables from theEngineVariableKioskto support external states the main engineEngineTestHelperso it relies on the same engine setup logicEngineTestHelperonce and call setup(...) for each forward pass, so that we can avoid the combo ofpop+deepcopySo now we basically go from this (before):
to this (after):