@tscircuit/fanout-solver 0.0.65 → 0.0.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -15
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -282,8 +282,8 @@ extents.
|
|
|
282
282
|
|
|
283
283
|
## Dataset 31 benchmark
|
|
284
284
|
|
|
285
|
-
Run `./benchmark.sh` (or `bun run benchmark`) to benchmark **all
|
|
286
|
-
directional cases: 12 AM62L and 12
|
|
285
|
+
Run `./benchmark.sh` (or `bun run benchmark`) to benchmark **all 36 dataset 31
|
|
286
|
+
directional cases: 12 AM62L, 12 RK3308, and 12 K230** from
|
|
287
287
|
[`tscircuit/dataset-fanout31-am62l`](https://github.com/tscircuit/dataset-fanout31-am62l).
|
|
288
288
|
The upstream revision is pinned in `scripts/generate-repro/package.json` and
|
|
289
289
|
recorded in every report. Other datasets remain available for regression tests
|
|
@@ -294,6 +294,7 @@ and the debugger, but have no benchmark commands or workflows.
|
|
|
294
294
|
./benchmark.sh --list
|
|
295
295
|
./benchmark.sh --sample 11-left-center
|
|
296
296
|
./benchmark.sh --sample 13-rk3308-top-left-offset
|
|
297
|
+
./benchmark.sh --sample 25-k230-top-left-offset
|
|
297
298
|
./benchmark.sh --concurrency 8 --sample-timeout-seconds 300
|
|
298
299
|
```
|
|
299
300
|
|
|
@@ -307,11 +308,16 @@ constraints:
|
|
|
307
308
|
| --- | ---: | ---: | ---: | ---: | ---: |
|
|
308
309
|
| AM62L | 12 | 33 | 102 | 135 | 573 |
|
|
309
310
|
| RK3308 | 12 | 49 | 113 | 162 | 451 |
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
and
|
|
313
|
-
The
|
|
314
|
-
|
|
311
|
+
| K230 | 12 | 65 | 106 | 171 | 790 |
|
|
312
|
+
|
|
313
|
+
AM62L and RK3308 have nine DDR signal buses each. The RK3308 samples use a
|
|
314
|
+
355-ball SoC and 96-ball DDR3L RAM. The K230 samples use a 390-ball SoC and two
|
|
315
|
+
200-ball x16 LPDDR4 RAM packages, with 17 signal buses and six differential pairs.
|
|
316
|
+
Each family places its RAM on all four sides at three offsets per side. K230
|
|
317
|
+
retains both physical RAM endpoints of its shared RESET net; the two RAM packages
|
|
318
|
+
have separate breakout regions. All 790 pads in each K230 case remain obstacles,
|
|
319
|
+
including unused signal and supply pads. The timed workers run **this checkout's
|
|
320
|
+
solver**, not the upstream package's released solver.
|
|
315
321
|
To capture the inputs without solving, use `bun run generate:dataset31`.
|
|
316
322
|
The optional `--dataset dataset31` flag is accepted for explicit CI invocation;
|
|
317
323
|
other dataset selections are rejected.
|
|
@@ -343,20 +349,21 @@ Timed-out workers do not retain their in-flight routing counts.
|
|
|
343
349
|
Every solved case also writes `benchmark-results/<sample-id>.svg`. These SVGs
|
|
344
350
|
are committed so route changes can be reviewed in Git. A run replaces the selected
|
|
345
351
|
cases' snapshots and removes their stale SVGs if they no longer solve; filtered
|
|
346
|
-
runs preserve unselected snapshots. JSON
|
|
347
|
-
ignored. CI includes the
|
|
352
|
+
runs preserve unselected snapshots. The latest JSON and Markdown reports are
|
|
353
|
+
also committed; captured inputs remain ignored. CI includes the reports, inputs,
|
|
354
|
+
and SVGs in its benchmark artifacts.
|
|
348
355
|
Compare reports with the same dataset revision and budgets to track progress.
|
|
349
356
|
A case is solved only when every SoC connection has validated fanout: all 135
|
|
350
|
-
connections for AM62L or all
|
|
351
|
-
fanout and downstream inter-chip routing are separate phases.
|
|
352
|
-
and timeout rows are benchmark results (exit 0); invalid CLI arguments or report
|
|
357
|
+
connections for AM62L, all 162 for RK3308, or all 171 for K230. This covers the SoC
|
|
358
|
+
fanout phase; RAM fanout and downstream inter-chip routing are separate phases.
|
|
359
|
+
Partial, error, and timeout rows are benchmark results (exit 0); invalid CLI arguments or report
|
|
353
360
|
I/O failures are command failures (nonzero exit).
|
|
354
361
|
|
|
355
362
|
### PR comment trigger
|
|
356
363
|
|
|
357
364
|
Once `.github/workflows/benchmark.yml` is on the default branch, a repository
|
|
358
365
|
writer can comment **`/benchmark`** on an open PR. The workflow captures that
|
|
359
|
-
PR's exact head SHA, runs all
|
|
366
|
+
PR's exact head SHA, runs all 36 dataset 31 samples on a **32-vCPU Blacksmith ARM**
|
|
360
367
|
runner, then updates a status comment with solve totals, per-sample results,
|
|
361
368
|
and a link to the complete JSON/Markdown reports and captured inputs. The Actions
|
|
362
369
|
UI also supports a manual run, optionally supplying an open PR number. No custom
|
|
@@ -522,8 +529,8 @@ bun run render:dataset
|
|
|
522
529
|
bun run start
|
|
523
530
|
```
|
|
524
531
|
|
|
525
|
-
The benchmark runs all
|
|
526
|
-
counts, validation, and timing. `bun run start` opens all regression
|
|
532
|
+
The benchmark runs all 36 dataset 31 AM62L, RK3308, and K230 cases and reports
|
|
533
|
+
solve counts, validation, and timing. `bun run start` opens all regression
|
|
527
534
|
datasets in the standard tscircuit solver debugger. `bun run
|
|
528
535
|
render:dataset` writes `graphics-debug` PNGs under one subdirectory per dataset,
|
|
529
536
|
with a red shared boundary, gray component courtyards, and green fanout-exit
|