Repository navigation
Rengz correl - #56
Draft
rengzhengcodes wants to merge 36 commits into
Draft
Rengz correl#56rengzhengcodes wants to merge 36 commits into
rengzhengcodes wants to merge 36 commits into
Conversation
…l-to-all due to extent formulation
The EC2 profiling scripts under notebooks/astrasim2_correlation/correlation/ now live in their own repo (rengzhengcodes/aws-gpu-profiler), generalized from an nccl-tests-only orchestrator into a manifest-driven GPU profiler. Wire it in as a submodule at the same path, tracking the profiling-data-20260904 branch, which carries the 2026-09-04 8x H100 all-to-all sweep (run correl-20260904-154601) that the notebook reads. Notebook: read empirical CSVs from correlation/data (inside the submodule) with the repo-root fallback, cite the aws-gpu-profiler run command instead of orchestrate.py, and re-execute in place. Fit unchanged: alpha 74.23 us, BW_eff 339.5 GB/s, R^2 0.9996. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…n git LFS notebooks/astrasim2_correlation/nvlink_probe.ipynb answers the five fabric questions (minimum NVLink packet, NVSwitch capacity, in-network reduction incl. Nsight HBM counters, SM role, launch overhead) from run nvlink-20260917-d of the aws-gpu-profiler nvlink_probe workload, executed inline. The correlation submodule moves to profiling-data-20260904 @ 62170dc, where data/ is stored through git LFS (install git-lfs before 'git submodule update'). correlation.ipynb now selects empirical CSVs by their unified header, so other workloads' results.csv files in the same data tree are ignored. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…tests The star/all-to-all cases modelled the N GPUs as a line (1-D Manhattan distance), but on an NVSwitch-style fabric every distinct pair is one hop apart. StarMulticastModel only uses the distance to drop 0-hop deliveries (and to pick the nearest holder), so the asserted loads are unchanged; the geometry now matches the fabric the test describes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Picks up profiling-data-20260904 @ 7d5b075: the nvlink-20260910-b sweep, analysis/edge_pressure_correlation.py, and its output under data/edge-pressure-correl-20261013 (fabric probe vs StarMulticastModel spoke EdgePressure; 1.1-1.7% average error on store-kernel patterns). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The profiling-data-20260904 branch is merged into aws-gpu-profiler main as 36e6fff, whose tree is identical to the previous pin 7d5b075. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…module Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Per-link EdgePressure on an n-node ring with shortest-path routing; the antipodal tie of an even ring goes clockwise. Each multicast tree covers a clockwise and a counter-clockwise arc from its source, crossing each link once. n is a constructor argument because the wrap-around cannot be read off the multicast networks. ring_dist_fn(n) builds the matching shortest-path distance function. Tests: a hand-derived YAML gamut (n = 8), per-link loads for the nvlink_probe flow sets (incast, perm_shift, personalised all-to-all), an odd ring, multicast arc sharing, and the 1-D precondition. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A donut is K rings of n nodes with complete bipartite lanes between neighbouring rings (wrap-around). The model builds no routing kernel of its own: one RingMulticastModel stands for every ring's links, and each node is the hub of a star to the next ring and of one to the previous ring (two StarMulticastModel subclasses that only rename the spokes). Deliveries are projected into the primitives' node spaces, costed there, and re-embedded as ring_cw[l,e], ring_ccw[l,e], bip_fwd[l,g,h] and bip_bwd[l,g,h]; the hub egress is dropped so hops counts physical link crossings. In-ring traffic takes the shortest arc (antipode clockwise), adjacent rings the direct lane; other deliveries raise. Tests: the hops gamut, the closed-form loads of a mixture-of-experts layer step (unicast, multicast, broadcast; 77/56/15 at 9 x 8), the equivalence with the ring and star primitives, and the contract suite. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A donut whose lanes run from ring l to ring l+1 only. The subclass builds no backward star, exposes EDGE_TYPES ring_cw, ring_ccw and bip_fwd, and rejects deliveries to a previous or non-adjacent ring; donut_dist_fn gains directed=True, pricing a cross-ring pair as (ld - ls) mod k lane hops. Loads on a forward-only workload equal the bidirectional model's. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A composition of the XY model's dimension-order tree and RingMulticastModel's link decomposition: phase k projects each delivery onto the 1-D ring of axis k (the line and the rest of the source ride in the tree key), calls _directed_ring_links and re-embeds the edges as x_cw/x_ccw/y_cw/y_ccw/z_cw/ z_ccw[x, y, z]. torus_dist_fn is the sum of the three ring distances, written without mod (4^3 affine pieces) so identify_mesh_casts stays fast. Tests: hand-derived tree, antipodal tie, self-delivery, a brute-force dimension-order enumerator on random multicasts (4x4x4, 3x4x5), single-axis equivalence with RingMulticastModel, and the contract. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The crossings of links that do not start at the tree's source: on a GPU fabric these are store-and-forward relays (a GPU cannot forward in hardware), which a cost model may price differently. Ring: every arc hop but the first; donut: ring-link hops only (a lane delivery is one hop); torus: also every hop of a later phase leaving a branch node other than the source. Read from the multicast network apply() already returns (parent_reads). Tests against hand-derived trees and the torus enumerator. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch was previously deployed
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.
No description provided.