|
28 | 28 |
|
29 | 29 | ROOT = Path(__file__).resolve().parents[1] |
30 | 30 | DATESTAMP = "20260601" |
| 31 | +# Optional run parameterization (env-driven). Defaults reproduce the original |
| 32 | +# batch=1 seq=512 matrix byte-for-byte. MATRIX_TAG suffixes every output path + |
| 33 | +# work/cache dir so a batch=4 fair run does NOT clobber the batch=1 artifacts. |
| 34 | +TAG = os.environ.get("MATRIX_TAG", "").strip() |
| 35 | +_SUF = f"_{TAG}" if TAG else "" |
| 36 | +BATCH_SIZE = int(os.environ.get("MATRIX_BATCH_SIZE", "1")) |
| 37 | +SEQ_LEN = int(os.environ.get("MATRIX_SEQ_LEN", "512")) |
| 38 | +STEPS = int(os.environ.get("MATRIX_STEPS", "10")) |
31 | 39 | TARGET_PARQUET = ( |
32 | 40 | ROOT / "data" / "parquet_samples" / "gb10" / "clang_semantic_4k_v10" / "val_00000.parquet" |
33 | 41 | ) |
34 | | -WORK_DIR = Path(f"/tmp/cppmega_1b_speed_matrix_gb10_fastfused_{DATESTAMP}_cells") |
35 | | -CACHE_ROOT = Path(f"/tmp/cppmega_1b_speed_matrix_gb10_fastfused_{DATESTAMP}_tilelang_cache") |
36 | | -MD_OUT = ROOT / "reports" / f"cppmega_1b_speed_matrix_gb10_fastfused_{DATESTAMP}.md" |
37 | | -HTML_OUT = ROOT / "reports" / f"cppmega_1b_speed_matrix_gb10_fastfused_{DATESTAMP}.html" |
| 42 | +WORK_DIR = Path(f"/tmp/cppmega_1b_speed_matrix_gb10_fastfused_{DATESTAMP}{_SUF}_cells") |
| 43 | +CACHE_ROOT = Path(f"/tmp/cppmega_1b_speed_matrix_gb10_fastfused_{DATESTAMP}{_SUF}_tilelang_cache") |
| 44 | +MD_OUT = ROOT / "reports" / f"cppmega_1b_speed_matrix_gb10_fastfused_{DATESTAMP}{_SUF}.md" |
| 45 | +HTML_OUT = ROOT / "reports" / f"cppmega_1b_speed_matrix_gb10_fastfused_{DATESTAMP}{_SUF}.html" |
38 | 46 |
|
39 | 47 | PYTHON = sys.executable |
40 | 48 | def _timeout_bin(): |
@@ -111,9 +119,9 @@ def build_command(dtype: str, optimizer: str, bits: int, path: str, out_json: Pa |
111 | 119 | "--data-path", str(TARGET_PARQUET.relative_to(ROOT)), |
112 | 120 | "--data-format", "parquet", |
113 | 121 | "--token-key", "token_ids", |
114 | | - "--steps", "10", |
115 | | - "--batch-size", "1", |
116 | | - "--seq-len", "512", |
| 122 | + "--steps", str(STEPS), |
| 123 | + "--batch-size", str(BATCH_SIZE), |
| 124 | + "--seq-len", str(SEQ_LEN), |
117 | 125 | "--dtype", dtype_arg(dtype, path), |
118 | 126 | "--optimizer", OPT_CLI[(optimizer, bits)], |
119 | 127 | "--optimizer-quant-scheme", "dynamic_int8_v1", |
@@ -300,7 +308,8 @@ def write_markdown(results, identity): |
300 | 308 | L.append("- Host: gb10 (NVIDIA GB10, CUDA sm_121)") |
301 | 309 | L.append("- Model profile: local_gb10_quarter") |
302 | 310 | L.append(f"- Data: {TARGET_PARQUET.relative_to(ROOT)} (parquet, token_ids)") |
303 | | - L.append("- Settings: seq-len 512, batch 1, --steps 10 warm, --grad-checkpoint, --optimizer-quant-scheme dynamic_int8_v1") |
| 311 | + L.append(f"- Settings: seq-len {SEQ_LEN}, batch {BATCH_SIZE}, --steps {STEPS} warm, --grad-checkpoint, --optimizer-quant-scheme dynamic_int8_v1" |
| 312 | + + (f" (tokens/step = {BATCH_SIZE*SEQ_LEN})" if (BATCH_SIZE != 1 or SEQ_LEN != 512) else "")) |
304 | 313 | L.append("- Paths: `path_b` (reference); `path_c` = Path-C flag-OFF (serial mamba3, prior baseline); " |
305 | 314 | "`path_c_chunked` = Path-C **flag-ON** (CPPMEGA_PATH_C_MAMBA3_CHUNKED_SCAN=1, FAST chunked fused mamba3).") |
306 | 315 | L.append("- Path-C route: SPLIT/WARM (Path C fwd + Path B mamba3 bwd, mamba3 bwd=path_b).") |
@@ -420,7 +429,7 @@ def write_html(results, identity): |
420 | 429 | <h1>cppmega 1B Speed Matrix — gb10 (NVIDIA GB10, CUDA) — FAST FUSED Path-C</h1> |
421 | 430 | <ul class="meta"> |
422 | 431 | <li>Date: {DATESTAMP} · Host: gb10 (NVIDIA GB10, CUDA sm_121) · Profile: local_gb10_quarter</li> |
423 | | - <li>seq-len 512, batch 1, --steps 10 warm, --grad-checkpoint, dynamic_int8_v1</li> |
| 432 | + <li>seq-len {SEQ_LEN}, batch {BATCH_SIZE}, --steps {STEPS} warm, --grad-checkpoint, dynamic_int8_v1 (tokens/step = {BATCH_SIZE*SEQ_LEN})</li> |
424 | 433 | <li>path_b=reference · path_c=flag-OFF serial mamba3 · path_c_chunked=flag-ON CPPMEGA_PATH_C_MAMBA3_CHUNKED_SCAN=1 (FAST chunked fused mamba3)</li> |
425 | 434 | <li>loss check = all losses finite AND final<initial (fail-loud) · per-cell bound {CELL_TIMEOUT_S}s</li> |
426 | 435 | <li>cppmega SHA: <code>{_esc(identity['cppmega_sha'])}</code> · TileLang SHA: <code>{_esc(identity['tilelang_sha'])}</code></li> |
|
0 commit comments