Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,28 @@ Apache-2.0 license text is reproduced in `LICENSE`. This section records
cross-repository provenance for NVIDIA-authored predecessor code; it is not a
claim that AIConfigurator is owned by an unaffiliated third party.

## NVIDIA Dynamo Weka regression provenance

The `weka_seam_rekey_never_uses_a_future_parent` regression in repository-root
`crates/core/src/replay/loadgen/weka.rs` is adapted and modified from NVIDIA
Dynamo's `lib/mocker/src/loadgen/tests.rs` at immutable commit
`b113ceae74da3f6754429ade750b0f5b0c8de5d6`. The adaptation uses AISimulate's public
graph loader and adds assertions that the later continuation was selected while
the earlier fork retains its original parent.

Upstream source:
https://github.com/ai-dynamo/dynamo/blob/b113ceae74da3f6754429ade750b0f5b0c8de5d6/lib/mocker/src/loadgen/tests.rs

Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.

This material is licensed under the Apache License, Version 2.0. The upstream
license at the identified revision is available at:
https://github.com/ai-dynamo/dynamo/blob/b113ceae74da3f6754429ade750b0f5b0c8de5d6/LICENSE

The full Apache-2.0 license text is reproduced in `LICENSE`. This section
records provenance for NVIDIA-authored predecessor code; it is not a claim
that Dynamo is owned by an unaffiliated third party.

## SGLang feed-forward/decode composition and quantization exclusions

The dense-prefix composition and exclusion resolver in `src/aisimulate_core/sdk/models/deepseek_v32.py` and their regression fixtures in `tests/unit/sdk/models/test_deepseek_v32_dense.py` and `tests/unit/sdk/models/test_large_ep_model_graphs.py` adapt and modify the tensor-parallel communication and packed-linear selection behavior from SGLang revision `02c5a855aceb968c310e6fbc6632270e26edc84b`. Original source paths are `python/sglang/srt/models/deepseek_v2.py`, `python/sglang/srt/layers/communicator.py`, `python/sglang/srt/layers/quantization/modelopt_quant.py`, and `python/sglang/srt/layers/quantization/utils.py`. The adaptation models operator composition and projection precision without importing the serving runtime or its GPU dependencies.
Expand Down
50 changes: 49 additions & 1 deletion crates/core/src/replay/loadgen/weka.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
//
// The weka_seam_rekey_never_uses_a_future_parent regression is adapted and
// modified from NVIDIA Dynamo's lib/mocker/src/loadgen/tests.rs at
// b113ceae74da3f6754429ade750b0f5b0c8de5d6 (Apache-2.0):
// https://github.com/ai-dynamo/dynamo/blob/b113ceae74da3f6754429ade750b0f5b0c8de5d6/lib/mocker/src/loadgen/tests.rs

//! Local Weka/AgentX trace ingestion for typed agentic replay.

Expand Down Expand Up @@ -2192,6 +2197,49 @@ mod tests {
}));
}

#[test]
fn weka_seam_rekey_never_uses_a_future_parent() {
let directory = tempdir().unwrap();
let path = directory.path().join("trace.json");
write_trace(
&path,
serde_json::json!([
{"t":0.0,"type":"s","model":"model","in":12,"out":1,"hash_ids":[1,2,3],"api_time":0.2},
{"t":1.0,"type":"s","model":"model","in":8,"out":1,"hash_ids":[1,9],"api_time":0.2},
{"t":2.0,"type":"s","model":"model","in":12,"out":1,"hash_ids":[1,2,8],"api_time":0.2}
]),
);

let trace = load_weka_agentic_graph(&path, None).unwrap();
let find_node = |suffix| {
trace
.nodes()
.iter()
.find(|node| node.request_id().ends_with(suffix))
.unwrap()
};
let parent = find_node("outer:0");
let early_fork = find_node("outer:1");
let later_continuation = find_node("outer:2");

// The deeper overlap elects the later request as the parent's seam
// continuation. Rekeying must keep the earlier fork's original parent.
assert_eq!(parent.session_id(), later_continuation.session_id());
assert_ne!(parent.session_id(), early_fork.session_id());
assert!(
early_fork
.dependencies()
.iter()
.any(|dependency| dependency.request_id == parent.request_id())
);
assert!(
early_fork
.dependencies()
.iter()
.all(|dependency| { dependency.request_id != later_continuation.request_id() })
);
}

#[test]
fn explicit_subagent_spawn_and_join_use_one_parent_stream() {
let directory = tempdir().unwrap();
Expand Down
22 changes: 22 additions & 0 deletions python/aisimulate/THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,28 @@ Apache-2.0 license text is reproduced in `LICENSE`. This section records
cross-repository provenance for NVIDIA-authored predecessor code; it is not a
claim that AIConfigurator is owned by an unaffiliated third party.

## NVIDIA Dynamo Weka regression provenance

The `weka_seam_rekey_never_uses_a_future_parent` regression in repository-root
`crates/core/src/replay/loadgen/weka.rs` is adapted and modified from NVIDIA
Dynamo's `lib/mocker/src/loadgen/tests.rs` at immutable commit
`b113ceae74da3f6754429ade750b0f5b0c8de5d6`. The adaptation uses AISimulate's public
graph loader and adds assertions that the later continuation was selected while
the earlier fork retains its original parent.

Upstream source:
https://github.com/ai-dynamo/dynamo/blob/b113ceae74da3f6754429ade750b0f5b0c8de5d6/lib/mocker/src/loadgen/tests.rs

Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.

This material is licensed under the Apache License, Version 2.0. The upstream
license at the identified revision is available at:
https://github.com/ai-dynamo/dynamo/blob/b113ceae74da3f6754429ade750b0f5b0c8de5d6/LICENSE

The full Apache-2.0 license text is reproduced in `LICENSE`. This section
records provenance for NVIDIA-authored predecessor code; it is not a claim
that Dynamo is owned by an unaffiliated third party.

## SGLang feed-forward/decode composition and quantization exclusions

The dense-prefix composition and exclusion resolver in `src/aisimulate_core/sdk/models/deepseek_v32.py` and their regression fixtures in `tests/unit/sdk/models/test_deepseek_v32_dense.py` and `tests/unit/sdk/models/test_large_ep_model_graphs.py` adapt and modify the tensor-parallel communication and packed-linear selection behavior from SGLang revision `02c5a855aceb968c310e6fbc6632270e26edc84b`. Original source paths are `python/sglang/srt/models/deepseek_v2.py`, `python/sglang/srt/layers/communicator.py`, `python/sglang/srt/layers/quantization/modelopt_quant.py`, and `python/sglang/srt/layers/quantization/utils.py`. The adaptation models operator composition and projection precision without importing the serving runtime or its GPU dependencies.
Expand Down
Loading