Skip to content

Commit 6ebb945

Browse files
committed
chore: no em-dashes in anything a reader sees
The GitHub About line had one, which is what prompted this. Fixing that made it worth sweeping the rest. All prose is clean: README, CONTRIBUTING, every doc, the justfile, the scripts, the devcontainer files and the PR template. All printed output is clean too, which mattered more than it sounds. Ninety-eight em-dashes lived inside println strings, so they were in the first line of every command. Banners became colons, the line-leading ones that were acting as bullets became hyphens, and three that read badly as colons became commas or full stops. Code comments were left alone. There are 97 of them across the core crates and the kernel source, they predate this work, and they are the authors' own voice rather than anything generated. Verified by reading the output rather than trusting the substitution: probe, gpu-selftest, model-decode, code-object-info and the OLMo gates all still read correctly. 169 tests, the 79-command model API gate, the plugin contract, the demo sandbox gate and all policy gates pass.
1 parent 909f259 commit 6ebb945

25 files changed

Lines changed: 141 additions & 144 deletions

.devcontainer/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
# mainarch dev image — a clean Rust toolchain that talks to AMD silicon at the
1+
# mainarch dev image. A clean Rust toolchain that talks to AMD silicon at the
22
# KERNEL ABI. Deliberately NO ROCm / HIP / HSA runtime: this project replaces
33
# that stack rather than building on it. The only AMD-specific things needed are
44
# * the kernel UAPI headers (linux/kfd_ioctl.h) shipped by linux-libc-dev
55
# * libdrm's amdgpu_drm.h for the DRM render-node ioctls
66
# * LLVM/clang, whose upstream amdgpu backend can emit gfx950 ISA on its own
77
# The GPU, when present, is reached purely via /dev/kfd + /dev/dri passthrough
88
# (see .devcontainer/gpu/devcontainer.json). The image itself builds and runs
9-
# fine on a machine with no AMD GPU at all every CPU-only path still works.
9+
# fine on a machine with no AMD GPU at all, and every CPU-only path still works.
1010
ARG BASE=docker.io/library/ubuntu:24.04
1111
FROM ${BASE}
1212

.devcontainer/post-create.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ echo
1111
if [ -e /dev/kfd ] && [ -d /sys/class/kfd/kfd/topology/nodes ]; then
1212
echo "AMD kernel driver visible: /dev/kfd is present."
1313
ls -l /dev/kfd /dev/dri/renderD* 2>/dev/null | head -4
14-
echo "GPU lane available 'just demo' will run the live KFD/AQL path."
14+
echo "GPU lane available. 'just demo' will run the live KFD/AQL path."
1515
else
1616
echo "No /dev/kfd in this container: running the CPU-only lane."
1717
echo "Everything in 'just tour' still works; the live GPU proofs are skipped."

.github/pull_request_template.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ the evidence validates.
2121
- [ ] Focused model API checks, if `model_api` changed
2222
(`python3 tools/check_model_api_public_examples.py`)
2323
- [ ] Hardware gate, if the claim involves GPU execution
24-
- [ ] Apples-to-apples baseline, if the claim involves performance
25-
say which configuration the baseline ran in
24+
- [ ] Apples-to-apples baseline, if the claim involves performance.
25+
Say which configuration the baseline ran in
2626

2727
## Evidence
2828

CONTRIBUTING.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ and honestly described.
1414
is enforced by `just check-policy`, not just by review.
1515
- **Do not claim GPU execution, correctness, or performance without the run that
1616
backs it.** Paste the command and its output in the pull request. A
17-
performance claim needs an apples-to-apples baseline the relevant ROCm,
18-
RCCL, Composable Kernel, vLLM, or SGLang result, or a prior in-repo number —
19-
and needs to say which configuration the baseline ran in.
17+
performance claim needs an apples-to-apples baseline, meaning the relevant
18+
ROCm, RCCL, Composable Kernel, vLLM, or SGLang result, or a prior in-repo
19+
number, and it needs to say which configuration that baseline ran in.
2020
- **Numerics go against a reference.** New kernels compare against an `f64` host
2121
implementation, with the tolerance stated.
2222
- **Keep CPU-only work labelled CPU-only.** The model API layer plans, validates,
@@ -29,9 +29,9 @@ and honestly described.
2929

3030
Use the devcontainer.
3131

32-
- `.devcontainer/devcontainer.json` the default. CPU only, works on any
32+
- `.devcontainer/devcontainer.json` is the default. CPU only, works on any
3333
x86-64 Linux host, no GPU required.
34-
- `.devcontainer/gpu/devcontainer.json` adds `/dev/kfd` and `/dev/dri`
34+
- `.devcontainer/gpu/devcontainer.json` adds `/dev/kfd` and `/dev/dri`
3535
passthrough. Use this on an AMD GPU host. The host user must be in the
3636
`render` group before the container starts.
3737

@@ -111,7 +111,7 @@ spend a run on them.
111111
- The change is scoped to one clear atom.
112112
- Formatting, tests, and the gates appropriate to the change pass.
113113
- New behavior has evidence: the command, the hardware, and the output.
114-
- New claims state their negative scope what the change does *not* prove.
114+
- New claims state their negative scope, meaning what the change does *not* prove.
115115
- CPU-only, preflight-only, or non-executing work is labelled as such.
116116
- Documentation and README status text match the actual behavior.
117117
- No unrelated local files, generated output, or secrets.

baseline/README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Baseline: upstream rccl-tests (reference only)
22

3-
`mainarch-collectives` mirrors the **rccl-tests methodology** the same size
4-
sweep, correctness check, and algbw/busbw convention so the numbers are
3+
`mainarch-collectives` mirrors the **rccl-tests methodology**, the same size
4+
sweep, correctness check, and algbw/busbw convention, so the numbers are
55
directly comparable. This directory holds reference runs captured from the
66
*existing* ROCm stack to compare against.
77

@@ -38,7 +38,8 @@ This runs both stacks over the same 8-GPU ladder and writes
3838
`baseline/allreduce-comparison.txt`.
3939

4040
**Pick the RCCL configuration honestly.** `bench/compare-allreduce.sh` defaults
41-
to `RCCL_ARGS="-t 8 -g 1"` — 8 threads, one GPU each — which is RCCL's *fastest*
41+
to `RCCL_ARGS="-t 8 -g 1"`, meaning 8 threads with one GPU each, which is
42+
RCCL's *fastest*
4243
layout and therefore the right comparator. `-g 8` puts one host thread in charge
4344
of all 8 GPUs, which serializes RCCL's launch path and flatters mainarch. If you
4445
quote a `-g 8` number, say so.

baseline/allreduce-comparison.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# all-reduce: mainarch (raw KFD/AQL, no ROCm) vs RCCL 8x gfx950 (MI355X)
1+
# all-reduce: mainarch (raw KFD/AQL, no ROCm) vs RCCL, 8x gfx950 (MI355X)
22
# generated by bench/compare-allreduce.sh
33
# busbw convention: algbw * 2*(R-1)/R; lower time is better
44
#

bench/compare-allreduce.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# container built from upstream rccl-tests; mainarch runs natively from this
77
# workspace.
88
#
9-
# You must supply the RCCL image yourself — there is no public image with
9+
# You must supply the RCCL image yourself. There is no public image with
1010
# rccl-tests prebuilt. See baseline/README.md for how to build one:
1111
#
1212
# MAINARCH_RCCL_IMAGE=<your-rccl-tests-image> bench/compare-allreduce.sh
@@ -51,7 +51,7 @@ docker run --rm --device /dev/kfd --device /dev/dri \
5151
2>/dev/null | grep -E "^ +[0-9]+ +[0-9]+ +float" > "$rh" || true
5252

5353
{
54-
echo "# all-reduce: mainarch (raw KFD/AQL, no ROCm) vs RCCL 8x gfx950"
54+
echo "# all-reduce: mainarch (raw KFD/AQL, no ROCm) vs RCCL, 8x gfx950"
5555
echo "# generated by bench/compare-allreduce.sh"
5656
echo "# busbw convention: algbw * 2*(R-1)/R; lower time is better"
5757
echo "# RCCL invocation: all_reduce_perf -b $MINB -e $MAXB -f 2 $RCCL_ARGS"

bench/compare-rccl.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env bash
2-
# compare-rccl.shside-by-side rccl all-reduce: ROCm baseline vs mainarch.
2+
# compare-rccl.sh: side-by-side rccl all-reduce, ROCm baseline vs mainarch.
33
#
44
# THE PATTERN (see README / docs/ROADMAP.md):
55
# Run this ON THE HOST with access to the container engine.
@@ -225,7 +225,7 @@ echo ">> ROCm baseline (${ROCM_IMAGE:-<unset>})"
225225
BASELINE_OK=0
226226
MAINARCH_COMPARE=0
227227
if [ -z "$ROCM_IMAGE" ]; then
228-
echo " SKIPPED — set ROCM_IMAGE to a ROCm image with rccl-tests built."
228+
echo " SKIPPED. Set ROCM_IMAGE to a ROCm image with rccl-tests built."
229229
echo " See baseline/README.md to build one (ROCm + RCCL + rccl-tests)."
230230
else
231231
if [ "$DRY_RUN" != "1" ] && ! has_image "$ROCM_IMAGE"; then
@@ -334,7 +334,7 @@ echo "mainarch -> $MAINARCH_OUT"
334334
fi
335335
fi
336336
else
337-
echo " STATUS: both outputs not present yet — set ROCM_IMAGE and rerun for a true apples-to-apples ratio."
337+
echo " STATUS: both outputs not present yet. Set ROCM_IMAGE and rerun for a true apples-to-apples ratio."
338338
fi
339339
fi
340340

crates/mainarch-cli/src/demo.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1430,7 +1430,7 @@ pub fn serve(bind: &str, node: u32, olmo: Option<Arc<crate::olmo_lane::OlmoLane>
14301430
match &olmo {
14311431
Some(lane) => {
14321432
println!(
1433-
" OLMo 2 lane: {} resident on node {} {} layers, hidden {}, vocab {}, {:.2} GiB",
1433+
" OLMo 2 lane: {} resident on node {}, {} layers, hidden {}, vocab {}, {:.2} GiB",
14341434
lane.model_id,
14351435
lane.node,
14361436
lane.layers,

0 commit comments

Comments
 (0)