SoA implementation for float and AVX2 includind the polyexp fix

This commit is contained in:
Linus Baumberger
2026-05-25 12:07:46 +02:00
committed by [Quy Anh] «Elliot» Nguyen
parent 1d585ffba7
commit f7bea275b3
9 changed files with 31574 additions and 3 deletions
+10 -3
View File
@@ -108,13 +108,20 @@ BENCH_ITER ?= 1000
# Verification parameters
ifneq ($(filter float_%,$(VARIANT)),)
REFERENCE_CSV ?= reference/baseline_float_n60_i4000.csv
# Float verify uses a short horizon (500 iters). The simulation is chaotic - a 1-ULP perturbation
# amplifies by ~exp(t/200) - so floats can't hold bit-equality across variants over 4000 iters
# no matter what we do (different layouts -> different FMA placements -> 1-ULP drift -> meters by t=4000).
# At 500 iters the amplifier is still small: AVX2 variants drift max ~4mm vs the scalar reference,
# well under 1cm, and real bugs still show as O(m) errors. 4000 iters drifts to meters even when
# the variant is correct, so that horizon is useless for verify.
REFERENCE_N_ITER ?= 500
REFERENCE_CSV ?= reference/baseline_float_n60_i500.csv
else
REFERENCE_N_ITER ?= 4000
REFERENCE_CSV ?= reference/baseline_n60_i4000.csv
endif
REFERENCE_N_P ?= 60
REFERENCE_N_ITER ?= 4000
VERIFY_CSV := verify_$(VARIANT).csv
.PHONY: all main run bench run-bench bench-suite video asm test clean clean-all verify
@@ -194,4 +201,4 @@ clean:
# WARNING: this deletes all *.csv and *.mp4 files in this directory.
# Move any output files you want to keep to another directory before running it.
clean-all: clean
rm -f *.csv *.mp4
rm -f *.csv *.mp4