Repository navigation
fix: bound Nemotron-H SSD prefill memory - #2290
Merged
Merged
Conversation
Process Nemotron-H SSD prefill in configured chunks and materialize each chunk before building the next graph. Preserve recurrent state, float32 numerical boundaries, and partial-tail behavior. Add focused configuration and numerical regression coverage plus reproducible real-checkpoint memory and output evidence. The benchmark record documents that request-level transient-memory admission remains outside this change. Refs #2281
Member
Author
Implementation Review SummaryIntent
Findings Addressed
Remaining Items
Verification
No code-level correctness finding remains within the declared partial scope. Formatting, diff hygiene, benchmark artifact consistency, Python harness compilation, the 22-test Nemotron-H module suite, two serial Metal numerical tests, release server build, and current CI checks were reviewed as passing; the supplementary external reviewer could not initialize in this sandbox, so this conclusion is based on direct review and executed validation. |
Record the chunked SSD prefill design, numerical and real-checkpoint evidence, and the unresolved request-admission requirement. Flag the current closing relationship so issue #2281 is not silently completed by this partial change.
Mark the bounded SSD-prefill scope complete after review while retaining the unresolved request-level transient-memory risk. Record the approved separate follow-up and the cleared GitHub closing relationship without inventing a follow-up issue number. Validation: - cargo fmt --check - git diff --check - Nemotron-H module tests: 22 passed, 3 ignored - Serial Metal numerical tests: 2 passed Refs #2281
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
Real-checkpoint evidence
On an M1 Ultra 128 GB host with
nvidia-nemotron-3-nano-30b-a3b-4bit, three fresh-process repetitions per cell reduced median process peak memory from 20.9/31.4/48.5/72.2 GiB to 17.6/18.0/18.4/18.7 GiB at 1,519/3,019/4,519/6,019 prompt tokens. All rounded ranges were 0.0 GiB atvmmap's 0.1 GiB resolution. The candidate also completed three 8,019-token runs at 19.3 GiB. Both attribution markers were absent from every baseline run and present in every candidate run. Three substantive greedy prompts, including a 2,810-token prompt, produced byte-identical choices between baseline and candidate. No latency claim is made because the host carried background load.Validation
RUSTC_WRAPPER= cargo build --release --features metal,accelerate --bin mlxcel-serverRUSTC_WRAPPER= cargo test --profile test-fast --features metal,accelerate --lib models::nemotron_h::tests:: -- --test-threads=1(22 passed, 3 ignored)RUSTC_WRAPPER= cargo test --profile test-fast --features metal,accelerate --lib models::nemotron_h::tests::chunked_ssd -- --ignored --test-threads=1(2 passed)cargo fmt --checkgit diff --checkpython3 scripts/ci/check_cross_repo_refs.pyApproved follow-up
The bounded SSD-prefill fix is complete. Request-level activation/transient-memory admission will be implemented in a separate follow-up, as approved by the maintainer. This PR does not provide recovery from arbitrary Metal command-buffer OOM. Issue #2281 remains open until the follow-up is linked.
Implementation and security reviews found no code defects within this scope; bilingual technical reports are included.
Refs #2281