Files
manifoldbt/.github/workflows
Jimmy7892 6a9849c79d bench: generate the same bars on every machine
The site joins the GPU run with the CPU run on the digest of their data, and
that digest depended on the processor. The walk was exp(cumsum(log returns)),
and numpy's exp rounds differently on an AVX-512 CPU, without AVX-512 and on
Windows: one seed, three datasets. The CPU run of 2026-10-25 landed on an
EPYC 9V45 (Zen 5) and the GPU run of 2026-10-26 on a Modal host without
AVX-512, so their points no longer matched and the ratios dropped out.

The walk is now 100 * cumprod(1 + r): additions and multiplications only,
rounded exactly whatever the CPU. Checked on numpy 2.4.3: the normal and
uniform draws and the new close are the same bits on Linux and Windows, where
exp was not. test_data.py pins it (the walk equals a plain Python product of
the draws, and the digest of the default dataset is fixed), and the
bench-report CI job now runs it.

The GPU report also names the runner's processor beside the ratio, since
GitHub hands out different generations and the ratio moves with them: the
same L4 times read x17.7 against an EPYC 9V45 and x36.3 against an EPYC 7763.

The dataset changes, so digests recorded before this commit will not match
runs made after it.
2026-10-26 13:21:47 +01:00
..