Documentation
¶
Overview ¶
Command bench_train benchmarks PatchTST GPU training on synthetic data.
Usage:
bench_train [-samples 28000] [-channels 20] [-epochs 10] [-seed 42]
Seeding (T135.5 / plan-gpu-training-hardening.md T4.1): -seed governs BOTH weight initialization (via timeseries.SeedWeightInit, called before the model is constructed) and synthetic data generation, so two invocations with the same -seed are the reproducible baseline the ZTENSOR_DETERMINISTIC=1 bitwise-identity proof depends on.
Weight init specifically needed its own seeding hook: timeseries/*.go's Xavier/He init and PatchTST's positional embedding call math/rand/v2's top-level convenience functions, which v2 deliberately made unseedable (no global Seed function exists in math/rand/v2, unlike classic math/rand) -- so every model construction was non-reproducible regardless of any other seeding, until timeseries.SeedWeightInit existed.