Sign inSign up

fardeen786/astra-sim

By fardeen786

Updated 15 days ago

Easy building and testing of network tools in Astra-Sim pipeline

Image
Networking
Machine learning & AI
0

99

fardeen786/astra-sim repository overview

ASTRA-sim — prebuilt

ASTRA-sim compiled and ready to run, with the Chakra execution-trace tools and the STAGE workload generator. No toolchain to build, no submodules to clone, no protobuf version conflicts.

Tags

TagContents
latestRuntime image — the binaries and tools (~925 MB)
astra-<sha>Same, pinned to an exact ASTRA-sim revision. Cite this in papers
devSource + full toolchain, for recompiling after source changes (large)

Quick start

docker pull fardeen786/astra-sim:latest

docker run --rm -it \
  -v "$PWD:/workspace" \
  --user "$(id -u):$(id -g)" \
  fardeen786/astra-sim:latest

--user keeps output files owned by you instead of root. Your current directory appears at /workspace.

Handy alias:

alias astra='docker run --rm -it -v "$PWD:/workspace" --user "$(id -u):$(id -g)" fardeen786/astra-sim:latest'

Commands

CommandWhat it is
astra-sim-analyticalAnalytical backend, congestion aware (--unaware for the other)
astra-sim-ns3ns-3 packet-level backend
astra-sim-htsimBroadcom csg-htsim backend
stageSTAGE — generates synthetic transformer workloads as Chakra ET
chakra_jsonizer, chakra_converter, chakra_generator, chakra_visualizer, chakra_timeline_visualizer, chakra_trace_linkChakra trace tools

Example configs are at /opt/astra-sim/examples:

E=/opt/astra-sim/examples
astra-sim-analytical \
  --workload-configuration=$E/workload/microbenchmarks/all_reduce/8npus_1MB/all_reduce \
  --system-configuration=$E/system/native_collectives/HGX-H100-validated.json \
  --network-configuration=$E/network/analytical/HGX-H100-validated.yml \
  --remote-memory-configuration=$E/remote_memory/analytical/no_memory_expansion.json

Generate your own workload and simulate it:

stage --output_dir ./gen --output_name 'workload.%d.et' --dp 2 --tp 2 --pp 2
astra-sim-analytical \
  --workload-configuration=./gen/workload \
  --comm-group-configuration=./gen/workload.json \
  --system-configuration=$E/system/native_collectives/Ring_4chunks.json \
  --network-configuration=$E/network/analytical/Ring_8npus.yml \
  --remote-memory-configuration=$E/remote_memory/analytical/no_memory_expansion.json

Notes

  • htsim seeding. htsim chooses ECMP paths randomly; this image seeds it from ASTRA_HTSIM_SEED (default 1) so runs reproduce. Upstream seeds from the wall clock, which makes identical runs disagree. The path choice changes the answer by up to ~33%, so report the seed and prefer sweeping several. A small fraction of seeds hit an upstream bug and abort — change the seed if so.
  • x86-64 only.
  • README.txt inside the container lists the commands on PATH and how to rebuild the binaries. Run cat README.txt in the shell.

Contents

ASTRA-sim 518bd513 · STAGE 71ceb423 · PARAM 5ee3dc2f · ns-3 3.42 (MPI) · Protobuf 29.0 / 5.29.0

Upstream project: https://github.com/astra-sim/astra-sim · Docs: https://astra-sim.github.io/astra-sim-docs/

Tag summary

Content type

Image

Digest

sha256:8ac27dbb4

Size

279 MB

Last updated

15 days ago

docker pull fardeen786/astra-sim