mirror of
https://github.com/manifoldbt/manifoldbt.git
synced 2026-11-02 07:56:11 +00:00
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.