Perf plot

This commit is contained in:
[Quy Anh] «Elliot» Nguyen
2026-06-18 11:59:50 +02:00
committed by Linus Baumberger
parent ca969564a6
commit e7af3103e8
153 changed files with 22042 additions and 24220 deletions
@@ -1,58 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX2_polyexp.cpp -o main_float_inlining_SoA_AVX2_polyexp -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX2_polyexp_expfix.cpp -o main_float_inlining_SoA_AVX2_polyexp_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 4538634.50 cycles
P(n): 8.09 flops/cycle
T(n): 5860437.00 cycles
P(n): 6.27 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 14836382.00 cycles
P(n): 9.81 flops/cycle
T(n): 19736818.00 cycles
P(n): 7.37 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 52866688.00 cycles
P(n): 10.95 flops/cycle
T(n): 71295200.00 cycles
P(n): 8.12 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 314877088.00 cycles
P(n): 11.46 flops/cycle
T(n): 434200736.00 cycles
P(n): 8.31 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 1228216448.00 cycles
P(n): 11.74 flops/cycle
T(n): 1690932352.00 cycles
P(n): 8.52 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 4888108544.00 cycles
P(n): 11.79 flops/cycle
T(n): 6726832128.00 cycles
P(n): 8.57 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 30235383808.00 cycles
P(n): 11.91 flops/cycle
T(n): 41595662336.00 cycles
P(n): 8.66 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 166348996608.00 cycles
P(n): 3.49 flops/cycle
@@ -1,66 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX2_polyexp.cpp -o main_float_inlining_SoA_AVX2_polyexp -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX2_polyexp_expfix.cpp -o main_float_inlining_SoA_AVX2_polyexp_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 4573347.00 cycles
P(n): 8.03 flops/cycle
T(n): 5885449.00 cycles
P(n): 6.24 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 14972852.00 cycles
P(n): 9.72 flops/cycle
T(n): 19775262.00 cycles
P(n): 7.36 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 53246808.00 cycles
P(n): 10.87 flops/cycle
T(n): 71759640.00 cycles
P(n): 8.07 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 317441728.00 cycles
P(n): 11.36 flops/cycle
T(n): 442073856.00 cycles
P(n): 8.16 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 1237166592.00 cycles
P(n): 11.65 flops/cycle
T(n): 1698162944.00 cycles
P(n): 8.49 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 4899325440.00 cycles
P(n): 11.76 flops/cycle
T(n): 6719285248.00 cycles
P(n): 8.58 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 30502610944.00 cycles
P(n): 11.80 flops/cycle
T(n): 41795964928.00 cycles
P(n): 8.62 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 122120396800.00 cycles
P(n): 4.76 flops/cycle
T(n): 166340608000.00 cycles
P(n): 3.49 flops/cycle
@@ -0,0 +1,64 @@
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 5839795.00 cycles
P(n): 6.29 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 19706848.00 cycles
P(n): 7.38 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 71913632.00 cycles
P(n): 8.05 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 431199296.00 cycles
P(n): 8.37 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 1710698496.00 cycles
P(n): 8.43 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 6773665792.00 cycles
P(n): 8.51 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 43346759680.00 cycles
P(n): 8.31 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 169504800768.00 cycles
P(n): 3.43 flops/cycle
@@ -1,58 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX2_polyexp_rsqrt.cpp -o main_float_inlining_SoA_AVX2_polyexp_rsqrt -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX2_polyexp_rsqrt_expfix.cpp -o main_float_inlining_SoA_AVX2_polyexp_rsqrt_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3922583.00 cycles
P(n): 9.37 flops/cycle
T(n): 5075402.00 cycles
P(n): 7.24 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 12656640.00 cycles
P(n): 11.49 flops/cycle
T(n): 16874942.00 cycles
P(n): 8.62 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 44724200.00 cycles
P(n): 12.95 flops/cycle
T(n): 60586048.00 cycles
P(n): 9.56 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 264998976.00 cycles
P(n): 13.61 flops/cycle
T(n): 363991840.00 cycles
P(n): 9.91 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 1051923712.00 cycles
P(n): 13.70 flops/cycle
T(n): 1424352768.00 cycles
P(n): 10.12 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 4077504256.00 cycles
P(n): 14.13 flops/cycle
T(n): 5638619648.00 cycles
P(n): 10.22 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 25317951488.00 cycles
P(n): 14.22 flops/cycle
T(n): 35081228288.00 cycles
P(n): 10.26 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 140734889984.00 cycles
P(n): 4.13 flops/cycle
@@ -1,66 +1,64 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX2_polyexp_rsqrt.cpp -o main_float_inlining_SoA_AVX2_polyexp_rsqrt -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3968185.50 cycles
P(n): 9.26 flops/cycle
T(n): 5095124.00 cycles
P(n): 7.21 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 12830122.00 cycles
P(n): 11.34 flops/cycle
T(n): 16958378.00 cycles
P(n): 8.58 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 45279400.00 cycles
P(n): 12.79 flops/cycle
T(n): 60894740.00 cycles
P(n): 9.51 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 268426256.00 cycles
P(n): 13.44 flops/cycle
T(n): 364922464.00 cycles
P(n): 9.89 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 1064596800.00 cycles
P(n): 13.54 flops/cycle
T(n): 1432131456.00 cycles
P(n): 10.07 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 4126754304.00 cycles
P(n): 13.96 flops/cycle
T(n): 5669585408.00 cycles
P(n): 10.16 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 25623275520.00 cycles
P(n): 14.05 flops/cycle
T(n): 35706060800.00 cycles
P(n): 10.08 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 102223626240.00 cycles
P(n): 5.69 flops/cycle
T(n): 143150546944.00 cycles
P(n): 4.06 flops/cycle
@@ -0,0 +1,64 @@
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 5107488.00 cycles
P(n): 7.19 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 16972588.00 cycles
P(n): 8.57 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 61120552.00 cycles
P(n): 9.47 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 375650720.00 cycles
P(n): 9.60 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 1444334464.00 cycles
P(n): 9.98 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 5717088768.00 cycles
P(n): 10.08 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 36025249792.00 cycles
P(n): 10.00 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 143378251776.00 cycles
P(n): 4.05 flops/cycle
@@ -1,58 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX2_polyexp_rsqrt_loopopt.cpp -o main_float_inlining_SoA_AVX2_polyexp_rsqrt_loopopt -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX2_polyexp_rsqrt_loopopt_expfix.cpp -o main_float_inlining_SoA_AVX2_polyexp_rsqrt_loopopt_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3857942.00 cycles
P(n): 9.52 flops/cycle
T(n): 4870774.50 cycles
P(n): 7.54 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 11939004.00 cycles
P(n): 12.19 flops/cycle
T(n): 15640118.00 cycles
P(n): 9.30 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 41343432.00 cycles
P(n): 14.00 flops/cycle
T(n): 55310808.00 cycles
P(n): 10.47 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 242607552.00 cycles
P(n): 14.87 flops/cycle
T(n): 329563872.00 cycles
P(n): 10.95 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 939774144.00 cycles
P(n): 15.34 flops/cycle
T(n): 1283268352.00 cycles
P(n): 11.23 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3710422272.00 cycles
P(n): 15.53 flops/cycle
T(n): 5083250688.00 cycles
P(n): 11.34 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 23019415552.00 cycles
P(n): 15.64 flops/cycle
T(n): 31586570240.00 cycles
P(n): 11.40 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 126882955264.00 cycles
P(n): 4.58 flops/cycle
@@ -1,66 +1,64 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX2_polyexp_rsqrt_loopopt.cpp -o main_float_inlining_SoA_AVX2_polyexp_rsqrt_loopopt -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3896576.25 cycles
P(n): 9.43 flops/cycle
T(n): 4872185.50 cycles
P(n): 7.54 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 12081705.00 cycles
P(n): 12.04 flops/cycle
T(n): 15664138.00 cycles
P(n): 9.29 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 41848524.00 cycles
P(n): 13.83 flops/cycle
T(n): 55368740.00 cycles
P(n): 10.46 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 245348896.00 cycles
P(n): 14.70 flops/cycle
T(n): 329987008.00 cycles
P(n): 10.93 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 950120256.00 cycles
P(n): 15.17 flops/cycle
T(n): 1293044736.00 cycles
P(n): 11.15 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3760375296.00 cycles
P(n): 15.33 flops/cycle
T(n): 5130688512.00 cycles
P(n): 11.23 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 23338608640.00 cycles
P(n): 15.43 flops/cycle
T(n): 32060348416.00 cycles
P(n): 11.23 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 93044531200.00 cycles
P(n): 6.25 flops/cycle
T(n): 129057972224.00 cycles
P(n): 4.50 flops/cycle
@@ -0,0 +1,64 @@
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 4901788.00 cycles
P(n): 7.50 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 15669965.00 cycles
P(n): 9.28 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 55911480.00 cycles
P(n): 10.35 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 338225088.00 cycles
P(n): 10.67 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 1302161408.00 cycles
P(n): 11.07 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 5189515776.00 cycles
P(n): 11.11 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 32577761280.00 cycles
P(n): 11.05 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 129035010048.00 cycles
P(n): 4.50 flops/cycle
@@ -1,58 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp.cpp -o main_float_inlining_SoA_AVX512_polyexp -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3952082.50 cycles
P(n): 9.30 flops/cycle
T(n): 4618692.00 cycles
P(n): 7.95 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 11806225.00 cycles
P(n): 12.32 flops/cycle
T(n): 14020708.00 cycles
P(n): 10.38 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 39147728.00 cycles
P(n): 14.79 flops/cycle
T(n): 47426524.00 cycles
P(n): 12.21 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 220870336.00 cycles
P(n): 16.33 flops/cycle
T(n): 271672832.00 cycles
P(n): 13.28 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 843467072.00 cycles
P(n): 17.09 flops/cycle
T(n): 1041892096.00 cycles
P(n): 13.84 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3297570560.00 cycles
P(n): 17.48 flops/cycle
T(n): 4086357760.00 cycles
P(n): 14.10 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 20527921152.00 cycles
P(n): 17.54 flops/cycle
T(n): 25345890304.00 cycles
P(n): 14.21 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 100797374464.00 cycles
P(n): 5.77 flops/cycle
@@ -1,66 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp.cpp -o main_float_inlining_SoA_AVX512_polyexp -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3995093.75 cycles
P(n): 9.20 flops/cycle
T(n): 4660804.50 cycles
P(n): 7.88 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 11929089.00 cycles
P(n): 12.20 flops/cycle
T(n): 14015782.00 cycles
P(n): 10.38 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 39616448.00 cycles
P(n): 14.61 flops/cycle
T(n): 47630040.00 cycles
P(n): 12.16 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 223771808.00 cycles
P(n): 16.12 flops/cycle
T(n): 272007200.00 cycles
P(n): 13.26 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 854663616.00 cycles
P(n): 16.87 flops/cycle
T(n): 1042778816.00 cycles
P(n): 13.82 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3338979072.00 cycles
P(n): 17.26 flops/cycle
T(n): 4092400640.00 cycles
P(n): 14.08 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 20689987584.00 cycles
P(n): 17.40 flops/cycle
T(n): 25352386560.00 cycles
P(n): 14.20 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 82361786368.00 cycles
P(n): 7.06 flops/cycle
T(n): 101285814272.00 cycles
P(n): 5.74 flops/cycle
@@ -0,0 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 4633135.50 cycles
P(n): 7.93 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 14098810.00 cycles
P(n): 10.32 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 47519168.00 cycles
P(n): 12.18 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 272423904.00 cycles
P(n): 13.24 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 1060791424.00 cycles
P(n): 13.59 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 4102831872.00 cycles
P(n): 14.05 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 25357774848.00 cycles
P(n): 14.20 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 100551254016.00 cycles
P(n): 5.78 flops/cycle
@@ -1,58 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_fastinvsqrt.cpp -o main_float_inlining_SoA_AVX512_polyexp_fastinvsqrt -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_fastinvsqrt_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_fastinvsqrt_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 4235088.00 cycles
P(n): 8.68 flops/cycle
T(n): 4899351.00 cycles
P(n): 7.50 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 12301878.00 cycles
P(n): 11.83 flops/cycle
T(n): 14704840.00 cycles
P(n): 9.89 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 40178688.00 cycles
P(n): 14.41 flops/cycle
T(n): 48870456.00 cycles
P(n): 11.85 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 223423168.00 cycles
P(n): 16.15 flops/cycle
T(n): 274548320.00 cycles
P(n): 13.14 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 848105152.00 cycles
P(n): 17.00 flops/cycle
T(n): 1067638016.00 cycles
P(n): 13.50 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3303374080.00 cycles
P(n): 17.45 flops/cycle
T(n): 4133780736.00 cycles
P(n): 13.94 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 20445360128.00 cycles
P(n): 17.61 flops/cycle
T(n): 25536294912.00 cycles
P(n): 14.10 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 101531860992.00 cycles
P(n): 5.72 flops/cycle
@@ -1,66 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_fastinvsqrt.cpp -o main_float_inlining_SoA_AVX512_polyexp_fastinvsqrt -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_fastinvsqrt_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_fastinvsqrt_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 4261088.00 cycles
P(n): 8.62 flops/cycle
T(n): 4906050.00 cycles
P(n): 7.49 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 12455221.00 cycles
P(n): 11.68 flops/cycle
T(n): 14798538.00 cycles
P(n): 9.83 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 40661000.00 cycles
P(n): 14.24 flops/cycle
T(n): 48817384.00 cycles
P(n): 11.86 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 226296576.00 cycles
P(n): 15.94 flops/cycle
T(n): 276943584.00 cycles
P(n): 13.03 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 859257920.00 cycles
P(n): 16.78 flops/cycle
T(n): 1052295168.00 cycles
P(n): 13.70 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3344503808.00 cycles
P(n): 17.23 flops/cycle
T(n): 4133724672.00 cycles
P(n): 13.94 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 20797153280.00 cycles
P(n): 17.31 flops/cycle
T(n): 25570220032.00 cycles
P(n): 14.08 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 82334916608.00 cycles
P(n): 7.06 flops/cycle
T(n): 101490999296.00 cycles
P(n): 5.73 flops/cycle
@@ -0,0 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_fastinvsqrt_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_fastinvsqrt_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 4896082.00 cycles
P(n): 7.50 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 14589518.00 cycles
P(n): 9.97 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 48579536.00 cycles
P(n): 11.92 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 275277376.00 cycles
P(n): 13.10 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 1050094400.00 cycles
P(n): 13.73 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 4110344448.00 cycles
P(n): 14.02 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 25639516160.00 cycles
P(n): 14.04 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 101213003776.00 cycles
P(n): 5.74 flops/cycle
@@ -1,58 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3667923.00 cycles
P(n): 10.02 flops/cycle
T(n): 4444855.00 cycles
P(n): 8.27 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 11422578.00 cycles
P(n): 12.74 flops/cycle
T(n): 13834708.00 cycles
P(n): 10.52 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 37820328.00 cycles
P(n): 15.31 flops/cycle
T(n): 47410956.00 cycles
P(n): 12.21 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 216471376.00 cycles
P(n): 16.66 flops/cycle
T(n): 276381408.00 cycles
P(n): 13.05 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 832166400.00 cycles
P(n): 17.32 flops/cycle
T(n): 1067362496.00 cycles
P(n): 13.51 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3253410304.00 cycles
P(n): 17.71 flops/cycle
T(n): 4156325376.00 cycles
P(n): 13.87 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 20200312832.00 cycles
P(n): 17.83 flops/cycle
T(n): 26170245120.00 cycles
P(n): 13.76 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 104163885056.00 cycles
P(n): 5.58 flops/cycle
@@ -1,66 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3700145.00 cycles
P(n): 9.93 flops/cycle
T(n): 4415419.00 cycles
P(n): 8.32 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 11292105.00 cycles
P(n): 12.88 flops/cycle
T(n): 13731945.00 cycles
P(n): 10.59 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 38161324.00 cycles
P(n): 15.17 flops/cycle
T(n): 47216112.00 cycles
P(n): 12.26 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 218794224.00 cycles
P(n): 16.49 flops/cycle
T(n): 273902208.00 cycles
P(n): 13.17 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 840880000.00 cycles
P(n): 17.14 flops/cycle
T(n): 1066031616.00 cycles
P(n): 13.52 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3292569344.00 cycles
P(n): 17.50 flops/cycle
T(n): 4168480512.00 cycles
P(n): 13.83 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 20442466304.00 cycles
P(n): 17.61 flops/cycle
T(n): 25959776256.00 cycles
P(n): 13.87 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 81447813120.00 cycles
P(n): 7.14 flops/cycle
T(n): 103256596480.00 cycles
P(n): 5.63 flops/cycle
@@ -0,0 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 4421310.50 cycles
P(n): 8.31 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 13851305.00 cycles
P(n): 10.50 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 47453300.00 cycles
P(n): 12.20 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 275350432.00 cycles
P(n): 13.10 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 1059425216.00 cycles
P(n): 13.61 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 4161480448.00 cycles
P(n): 13.85 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 25909958656.00 cycles
P(n): 13.90 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 102891044864.00 cycles
P(n): 5.65 flops/cycle
@@ -1,58 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2 -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3477458.00 cycles
P(n): 10.57 flops/cycle
T(n): 4116743.00 cycles
P(n): 8.92 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 11784472.00 cycles
P(n): 12.35 flops/cycle
T(n): 14193060.00 cycles
P(n): 10.25 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 38291872.00 cycles
P(n): 15.12 flops/cycle
T(n): 46275016.00 cycles
P(n): 12.51 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 202935328.00 cycles
P(n): 17.78 flops/cycle
T(n): 250446432.00 cycles
P(n): 14.40 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 792025088.00 cycles
P(n): 18.20 flops/cycle
T(n): 977844992.00 cycles
P(n): 14.74 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3083133952.00 cycles
P(n): 18.69 flops/cycle
T(n): 3811610624.00 cycles
P(n): 15.12 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 19033051136.00 cycles
P(n): 18.92 flops/cycle
T(n): 23616888832.00 cycles
P(n): 15.25 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 94000291840.00 cycles
P(n): 6.18 flops/cycle
@@ -1,66 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2 -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3489274.50 cycles
P(n): 10.53 flops/cycle
T(n): 4130377.00 cycles
P(n): 8.90 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 11797675.00 cycles
P(n): 12.33 flops/cycle
T(n): 14179700.00 cycles
P(n): 10.26 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 38045456.00 cycles
P(n): 15.22 flops/cycle
T(n): 46318220.00 cycles
P(n): 12.50 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 203912944.00 cycles
P(n): 17.69 flops/cycle
T(n): 250998336.00 cycles
P(n): 14.37 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 794322688.00 cycles
P(n): 18.15 flops/cycle
T(n): 982180672.00 cycles
P(n): 14.68 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3086995712.00 cycles
P(n): 18.67 flops/cycle
T(n): 3805426944.00 cycles
P(n): 15.14 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 19067494400.00 cycles
P(n): 18.88 flops/cycle
T(n): 23592302592.00 cycles
P(n): 15.26 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 75557011456.00 cycles
P(n): 7.69 flops/cycle
T(n): 93937680384.00 cycles
P(n): 6.19 flops/cycle
@@ -0,0 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 4107580.00 cycles
P(n): 8.94 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 14142018.00 cycles
P(n): 10.29 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 46132236.00 cycles
P(n): 12.55 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 248790048.00 cycles
P(n): 14.50 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 974417088.00 cycles
P(n): 14.79 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3791391744.00 cycles
P(n): 15.20 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 23488210944.00 cycles
P(n): 15.33 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 93195214848.00 cycles
P(n): 6.24 flops/cycle
@@ -1,58 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_moreilp.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_moreilp -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_moreilp_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_moreilp_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3500766.25 cycles
P(n): 10.49 flops/cycle
T(n): 4119329.50 cycles
P(n): 8.92 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 11807499.00 cycles
P(n): 12.32 flops/cycle
T(n): 14140615.00 cycles
P(n): 10.29 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 38032600.00 cycles
P(n): 15.22 flops/cycle
T(n): 46104904.00 cycles
P(n): 12.56 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 204147360.00 cycles
P(n): 17.67 flops/cycle
T(n): 248777184.00 cycles
P(n): 14.50 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 791926400.00 cycles
P(n): 18.20 flops/cycle
T(n): 972575296.00 cycles
P(n): 14.82 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3074645504.00 cycles
P(n): 18.74 flops/cycle
T(n): 3793779712.00 cycles
P(n): 15.19 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 19024320512.00 cycles
P(n): 18.93 flops/cycle
T(n): 23662673920.00 cycles
P(n): 15.22 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 93648879616.00 cycles
P(n): 6.21 flops/cycle
@@ -1,66 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_moreilp.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_moreilp -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_moreilp_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_moreilp_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3498589.50 cycles
P(n): 10.50 flops/cycle
T(n): 4131873.00 cycles
P(n): 8.89 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 11758110.00 cycles
P(n): 12.37 flops/cycle
T(n): 14207365.00 cycles
P(n): 10.24 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 37864020.00 cycles
P(n): 15.29 flops/cycle
T(n): 46157304.00 cycles
P(n): 12.54 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 202672640.00 cycles
P(n): 17.80 flops/cycle
T(n): 249512304.00 cycles
P(n): 14.46 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 790035264.00 cycles
P(n): 18.25 flops/cycle
T(n): 974145152.00 cycles
P(n): 14.80 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3070306304.00 cycles
P(n): 18.77 flops/cycle
T(n): 3796545280.00 cycles
P(n): 15.18 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 18978818048.00 cycles
P(n): 18.97 flops/cycle
T(n): 23539767296.00 cycles
P(n): 15.30 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 75496284160.00 cycles
P(n): 7.70 flops/cycle
T(n): 93385080832.00 cycles
P(n): 6.22 flops/cycle
@@ -0,0 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_moreilp_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_moreilp_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 4133901.25 cycles
P(n): 8.89 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 14286805.00 cycles
P(n): 10.18 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 46514768.00 cycles
P(n): 12.45 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 250415104.00 cycles
P(n): 14.41 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 979476864.00 cycles
P(n): 14.72 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3790536448.00 cycles
P(n): 15.20 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 23435288576.00 cycles
P(n): 15.36 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 93591674880.00 cycles
P(n): 6.21 flops/cycle
@@ -1,58 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3466542.50 cycles
P(n): 10.60 flops/cycle
T(n): 4119765.00 cycles
P(n): 8.92 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 11758505.00 cycles
P(n): 12.37 flops/cycle
T(n): 14158772.00 cycles
P(n): 10.27 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 38354536.00 cycles
P(n): 15.09 flops/cycle
T(n): 46276376.00 cycles
P(n): 12.51 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 203609408.00 cycles
P(n): 17.72 flops/cycle
T(n): 249878624.00 cycles
P(n): 14.44 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 792448704.00 cycles
P(n): 18.19 flops/cycle
T(n): 982863872.00 cycles
P(n): 14.67 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3076762624.00 cycles
P(n): 18.73 flops/cycle
T(n): 3826156544.00 cycles
P(n): 15.06 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 19086870528.00 cycles
P(n): 18.87 flops/cycle
T(n): 23693496320.00 cycles
P(n): 15.20 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 94222524416.00 cycles
P(n): 6.17 flops/cycle
@@ -1,66 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3470556.25 cycles
P(n): 10.59 flops/cycle
T(n): 4102695.50 cycles
P(n): 8.96 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 11748129.00 cycles
P(n): 12.38 flops/cycle
T(n): 14151872.00 cycles
P(n): 10.28 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 37961964.00 cycles
P(n): 15.25 flops/cycle
T(n): 46248272.00 cycles
P(n): 12.52 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 203245888.00 cycles
P(n): 17.75 flops/cycle
T(n): 249935680.00 cycles
P(n): 14.43 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 792723072.00 cycles
P(n): 18.18 flops/cycle
T(n): 977354240.00 cycles
P(n): 14.75 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3083602944.00 cycles
P(n): 18.69 flops/cycle
T(n): 3821584896.00 cycles
P(n): 15.08 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 19105830912.00 cycles
P(n): 18.85 flops/cycle
T(n): 23594674176.00 cycles
P(n): 15.26 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 75556601856.00 cycles
P(n): 7.69 flops/cycle
T(n): 94093844480.00 cycles
P(n): 6.18 flops/cycle
@@ -0,0 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 4124268.00 cycles
P(n): 8.91 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 14218675.00 cycles
P(n): 10.23 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 46843476.00 cycles
P(n): 12.36 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 250210640.00 cycles
P(n): 14.42 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 982352128.00 cycles
P(n): 14.67 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3823222016.00 cycles
P(n): 15.07 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 23695175680.00 cycles
P(n): 15.20 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 94304829440.00 cycles
P(n): 6.16 flops/cycle
@@ -1,58 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 2966264.00 cycles
P(n): 12.39 flops/cycle
T(n): 3472917.50 cycles
P(n): 10.58 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 9680198.00 cycles
P(n): 15.03 flops/cycle
T(n): 11763622.00 cycles
P(n): 12.37 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 30652810.00 cycles
P(n): 18.89 flops/cycle
T(n): 38070640.00 cycles
P(n): 15.21 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 160992976.00 cycles
P(n): 22.41 flops/cycle
T(n): 204154320.00 cycles
P(n): 17.67 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 629138816.00 cycles
P(n): 22.91 flops/cycle
T(n): 798999808.00 cycles
P(n): 18.04 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 2423142656.00 cycles
P(n): 23.78 flops/cycle
T(n): 3114275584.00 cycles
P(n): 18.50 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 15022035968.00 cycles
P(n): 23.97 flops/cycle
T(n): 19146825728.00 cycles
P(n): 18.81 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 76207964160.00 cycles
P(n): 7.63 flops/cycle
@@ -1,66 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 2942563.50 cycles
P(n): 12.49 flops/cycle
T(n): 3503500.00 cycles
P(n): 10.49 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 9665785.00 cycles
P(n): 15.05 flops/cycle
T(n): 11802675.00 cycles
P(n): 12.33 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 30626330.00 cycles
P(n): 18.90 flops/cycle
T(n): 37947776.00 cycles
P(n): 15.26 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 161586752.00 cycles
P(n): 22.32 flops/cycle
T(n): 203323776.00 cycles
P(n): 17.74 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 626457472.00 cycles
P(n): 23.01 flops/cycle
T(n): 821986944.00 cycles
P(n): 17.54 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 2423129344.00 cycles
P(n): 23.78 flops/cycle
T(n): 3103710720.00 cycles
P(n): 18.57 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 14910323712.00 cycles
P(n): 24.15 flops/cycle
T(n): 19254915072.00 cycles
P(n): 18.70 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 59213176832.00 cycles
P(n): 9.81 flops/cycle
T(n): 76036898816.00 cycles
P(n): 7.64 flops/cycle
@@ -0,0 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3474629.50 cycles
P(n): 10.57 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 11869545.00 cycles
P(n): 12.26 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 38112416.00 cycles
P(n): 15.19 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 203449264.00 cycles
P(n): 17.73 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 816738752.00 cycles
P(n): 17.65 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3081998592.00 cycles
P(n): 18.70 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 19241965568.00 cycles
P(n): 18.71 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 76032835584.00 cycles
P(n): 7.64 flops/cycle
@@ -0,0 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt_expfix_improved.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt_expfix_improved -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3443131.25 cycles
P(n): 10.67 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 11289992.00 cycles
P(n): 12.89 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 36293512.00 cycles
P(n): 15.95 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 193259072.00 cycles
P(n): 18.67 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 752713344.00 cycles
P(n): 19.15 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 2940765440.00 cycles
P(n): 19.60 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 18122862592.00 cycles
P(n): 19.87 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 71869390848.00 cycles
P(n): 8.09 flops/cycle
@@ -0,0 +1,64 @@
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3387230.00 cycles
P(n): 10.85 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 11326786.00 cycles
P(n): 12.84 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 36351516.00 cycles
P(n): 15.93 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 194490336.00 cycles
P(n): 18.55 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 753201792.00 cycles
P(n): 19.14 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 2954236416.00 cycles
P(n): 19.51 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 18356828160.00 cycles
P(n): 19.62 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 73678970880.00 cycles
P(n): 7.89 flops/cycle
@@ -0,0 +1,64 @@
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3445767.00 cycles
P(n): 10.66 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 11501729.00 cycles
P(n): 12.65 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 36756200.00 cycles
P(n): 15.75 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 198376320.00 cycles
P(n): 18.18 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 765950336.00 cycles
P(n): 18.82 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 2987576576.00 cycles
P(n): 19.29 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 18625347584.00 cycles
P(n): 19.33 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 73340780544.00 cycles
P(n): 7.92 flops/cycle
@@ -0,0 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt_expfix_improved_moreilp.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt_expfix_improved_moreilp -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 2430659.75 cycles
P(n): 15.12 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 8285106.00 cycles
P(n): 17.56 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 30615050.00 cycles
P(n): 18.91 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 186199040.00 cycles
P(n): 19.37 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 728076288.00 cycles
P(n): 19.80 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 2895743232.00 cycles
P(n): 19.90 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 18180956160.00 cycles
P(n): 19.81 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 72372396032.00 cycles
P(n): 8.03 flops/cycle
@@ -0,0 +1,64 @@
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 2443465.25 cycles
P(n): 15.04 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 8370210.00 cycles
P(n): 17.38 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 30839560.00 cycles
P(n): 18.77 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 185338336.00 cycles
P(n): 19.46 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 737704256.00 cycles
P(n): 19.54 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 2915981056.00 cycles
P(n): 19.76 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 18362775552.00 cycles
P(n): 19.61 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 73707225088.00 cycles
P(n): 7.88 flops/cycle
@@ -0,0 +1,64 @@
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 2445340.00 cycles
P(n): 15.02 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 8350645.00 cycles
P(n): 17.42 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 30609110.00 cycles
P(n): 18.91 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 186796768.00 cycles
P(n): 19.31 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 733212800.00 cycles
P(n): 19.66 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 2960800768.00 cycles
P(n): 19.46 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 18505687040.00 cycles
P(n): 19.46 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 73613836288.00 cycles
P(n): 7.89 flops/cycle
@@ -1,58 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_4.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_4 -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_4_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_4_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3587017.50 cycles
P(n): 10.24 flops/cycle
T(n): 3897775.00 cycles
P(n): 9.43 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 12215910.00 cycles
P(n): 11.91 flops/cycle
T(n): 13522278.00 cycles
P(n): 10.76 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 44944608.00 cycles
P(n): 12.88 flops/cycle
T(n): 50063060.00 cycles
P(n): 11.56 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 214169936.00 cycles
P(n): 16.84 flops/cycle
T(n): 240297888.00 cycles
P(n): 15.01 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 828421248.00 cycles
P(n): 17.40 flops/cycle
T(n): 942706688.00 cycles
P(n): 15.29 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3268490496.00 cycles
P(n): 17.63 flops/cycle
T(n): 3722795008.00 cycles
P(n): 15.48 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 20012742656.00 cycles
P(n): 17.99 flops/cycle
T(n): 22749288448.00 cycles
P(n): 15.83 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 90110476288.00 cycles
P(n): 6.45 flops/cycle
@@ -1,66 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_4.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_4 -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_4_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_4_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3567542.00 cycles
P(n): 10.30 flops/cycle
T(n): 3907767.50 cycles
P(n): 9.40 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 12180789.00 cycles
P(n): 11.94 flops/cycle
T(n): 13510660.00 cycles
P(n): 10.77 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 44522004.00 cycles
P(n): 13.00 flops/cycle
T(n): 50107380.00 cycles
P(n): 11.55 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 212099104.00 cycles
P(n): 17.01 flops/cycle
T(n): 239951200.00 cycles
P(n): 15.03 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 830612480.00 cycles
P(n): 17.35 flops/cycle
T(n): 940302272.00 cycles
P(n): 15.33 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3272956672.00 cycles
P(n): 17.61 flops/cycle
T(n): 3722942720.00 cycles
P(n): 15.48 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 20105635840.00 cycles
P(n): 17.91 flops/cycle
T(n): 22711234560.00 cycles
P(n): 15.85 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 79669575680.00 cycles
P(n): 7.29 flops/cycle
T(n): 90064855040.00 cycles
P(n): 6.45 flops/cycle
@@ -0,0 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main-float.cpp ./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_4_expfix.cpp -o main_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_4_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 3864792.00 cycles
P(n): 9.51 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 13472545.00 cycles
P(n): 10.80 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 49757488.00 cycles
P(n): 11.64 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 238792880.00 cycles
P(n): 15.11 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 953924224.00 cycles
P(n): 15.11 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 3701525248.00 cycles
P(n): 15.57 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 22775025664.00 cycles
P(n): 15.81 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772800.00 flops
Q(n) per iteration: 640056 bytes
I(n): 4539.87 flops/byte
W(n): 581154570240.00 flops
T(n): 90258751488.00 cycles
P(n): 6.44 flops/cycle
@@ -0,0 +1,58 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
sudo /usr/bin/g++ main-float.cpp ./variants/variant_float_inlining.cpp -o main_float_inlining -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 3256 bytes
I(n): 56.42 flops/byte
W(n): 36740000.00 flops
T(n): 10826171.00 cycles
P(n): 3.39 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 6456 bytes
I(n): 112.67 flops/byte
W(n): 145480000.00 flops
T(n): 48929320.00 cycles
P(n): 2.97 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 12856 bytes
I(n): 225.17 flops/byte
W(n): 578960000.00 flops
T(n): 190686384.00 cycles
P(n): 3.04 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 32056 bytes
I(n): 562.67 flops/byte
W(n): 3607399936.00 flops
T(n): 1427274624.00 cycles
P(n): 2.53 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 64056 bytes
I(n): 1125.17 flops/byte
W(n): 14414799872.00 flops
T(n): 6172825600.00 cycles
P(n): 2.34 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 128056 bytes
I(n): 2250.17 flops/byte
W(n): 57629601792.00 flops
T(n): 27468242944.00 cycles
P(n): 2.10 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800369920.00 flops
Q(n) per iteration: 320056 bytes
I(n): 5625.17 flops/byte
W(n): 360073986048.00 flops
T(n): 192917569536.00 cycles
P(n): 1.87 flops/cycle
@@ -1,58 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main.cpp ./variants/variant_inlining_7_SoA_AVX2_polyexp.cpp -o main_inlining_7_SoA_AVX2_polyexp -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main.cpp ./variants/variant_inlining_7_SoA_AVX2_polyexp_expfix.cpp -o main_inlining_7_SoA_AVX2_polyexp_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 6512 bytes
I(n): 28.21 flops/byte
W(n): 36740000.00 flops
T(n): 9225415.00 cycles
P(n): 3.98 flops/cycle
T(n): 11371033.75 cycles
P(n): 3.23 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 12912 bytes
I(n): 56.34 flops/byte
W(n): 145480000.00 flops
T(n): 32320875.00 cycles
P(n): 4.50 flops/cycle
T(n): 39890030.00 cycles
P(n): 3.65 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 25712 bytes
I(n): 112.59 flops/byte
W(n): 578960000.00 flops
T(n): 122392560.00 cycles
P(n): 4.73 flops/cycle
T(n): 153171560.00 cycles
P(n): 3.78 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 64112 bytes
I(n): 281.34 flops/byte
W(n): 3607400000.00 flops
T(n): 727457980.00 cycles
P(n): 4.96 flops/cycle
T(n): 926036960.00 cycles
P(n): 3.90 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 128112 bytes
I(n): 562.59 flops/byte
W(n): 14414800000.00 flops
T(n): 2871839460.00 cycles
P(n): 5.02 flops/cycle
T(n): 3676943300.00 cycles
P(n): 3.92 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 256112 bytes
I(n): 1125.09 flops/byte
W(n): 57629600000.00 flops
T(n): 11342093520.00 cycles
P(n): 5.08 flops/cycle
T(n): 14545721140.00 cycles
P(n): 3.96 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800370000.00 flops
Q(n) per iteration: 640112 bytes
I(n): 2812.59 flops/byte
W(n): 360074000000.00 flops
T(n): 70407692300.00 cycles
P(n): 5.11 flops/cycle
T(n): 90702048200.00 cycles
P(n): 3.97 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772704.00 flops
Q(n) per iteration: 1280112 bytes
I(n): 2269.94 flops/byte
W(n): 581154540800.00 flops
T(n): 362081083160.00 cycles
P(n): 1.61 flops/cycle
@@ -1,66 +1,64 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main.cpp ./variants/variant_inlining_7_SoA_AVX2_polyexp.cpp -o main_inlining_7_SoA_AVX2_polyexp -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 6512 bytes
I(n): 28.21 flops/byte
W(n): 36740000.00 flops
T(n): 9074662.50 cycles
P(n): 4.05 flops/cycle
T(n): 11368170.00 cycles
P(n): 3.23 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 12912 bytes
I(n): 56.34 flops/byte
W(n): 145480000.00 flops
T(n): 31994315.00 cycles
P(n): 4.55 flops/cycle
T(n): 39909820.00 cycles
P(n): 3.65 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 25712 bytes
I(n): 112.59 flops/byte
W(n): 578960000.00 flops
T(n): 120234740.00 cycles
P(n): 4.82 flops/cycle
T(n): 152279380.00 cycles
P(n): 3.80 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 64112 bytes
I(n): 281.34 flops/byte
W(n): 3607400000.00 flops
T(n): 719504200.00 cycles
P(n): 5.01 flops/cycle
T(n): 925130680.00 cycles
P(n): 3.90 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 128112 bytes
I(n): 562.59 flops/byte
W(n): 14414800000.00 flops
T(n): 2844257700.00 cycles
P(n): 5.07 flops/cycle
T(n): 3668254420.00 cycles
P(n): 3.93 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 256112 bytes
I(n): 1125.09 flops/byte
W(n): 57629600000.00 flops
T(n): 11300324680.00 cycles
P(n): 5.10 flops/cycle
T(n): 14660040260.00 cycles
P(n): 3.93 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800370000.00 flops
Q(n) per iteration: 640112 bytes
I(n): 2812.59 flops/byte
W(n): 360074000000.00 flops
T(n): 70554568640.00 cycles
P(n): 5.10 flops/cycle
T(n): 93340296780.00 cycles
P(n): 3.86 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772704.00 flops
Q(n) per iteration: 1280112 bytes
I(n): 2269.94 flops/byte
W(n): 581154540800.00 flops
T(n): 281416807980.00 cycles
P(n): 2.07 flops/cycle
T(n): 362367747120.00 cycles
P(n): 1.60 flops/cycle
@@ -0,0 +1,64 @@
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 6512 bytes
I(n): 28.21 flops/byte
W(n): 36740000.00 flops
T(n): 11342471.25 cycles
P(n): 3.24 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 12912 bytes
I(n): 56.34 flops/byte
W(n): 145480000.00 flops
T(n): 40124180.00 cycles
P(n): 3.63 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 25712 bytes
I(n): 112.59 flops/byte
W(n): 578960000.00 flops
T(n): 151911440.00 cycles
P(n): 3.81 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 64112 bytes
I(n): 281.34 flops/byte
W(n): 3607400000.00 flops
T(n): 923357200.00 cycles
P(n): 3.91 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 128112 bytes
I(n): 562.59 flops/byte
W(n): 14414800000.00 flops
T(n): 3687447740.00 cycles
P(n): 3.91 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 256112 bytes
I(n): 1125.09 flops/byte
W(n): 57629600000.00 flops
T(n): 14732693600.00 cycles
P(n): 3.91 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800370000.00 flops
Q(n) per iteration: 640112 bytes
I(n): 2812.59 flops/byte
W(n): 360074000000.00 flops
T(n): 90864696480.00 cycles
P(n): 3.96 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772704.00 flops
Q(n) per iteration: 1280112 bytes
I(n): 2269.94 flops/byte
W(n): 581154540800.00 flops
T(n): 361983172200.00 cycles
P(n): 1.61 flops/cycle
@@ -1,58 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_fastinvsqrt.cpp -o main_inlining_8_SoA_AVX512_polyexp_fastinvsqrt -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_expfix.cpp -o main_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 6512 bytes
I(n): 28.21 flops/byte
W(n): 36740000.00 flops
T(n): 7287068.75 cycles
P(n): 5.04 flops/cycle
T(n): 8339301.25 cycles
P(n): 4.41 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 12912 bytes
I(n): 56.34 flops/byte
W(n): 145480000.00 flops
T(n): 24479917.50 cycles
P(n): 5.94 flops/cycle
T(n): 28662660.00 cycles
P(n): 5.08 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 25712 bytes
I(n): 112.59 flops/byte
W(n): 578960000.00 flops
T(n): 88304220.00 cycles
P(n): 6.56 flops/cycle
T(n): 104402900.00 cycles
P(n): 5.55 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 64112 bytes
I(n): 281.34 flops/byte
W(n): 3607400000.00 flops
T(n): 532537300.00 cycles
P(n): 6.77 flops/cycle
T(n): 636519040.00 cycles
P(n): 5.67 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 128112 bytes
I(n): 562.59 flops/byte
W(n): 14414800000.00 flops
T(n): 2074603460.00 cycles
P(n): 6.95 flops/cycle
T(n): 2499027620.00 cycles
P(n): 5.77 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 256112 bytes
I(n): 1125.09 flops/byte
W(n): 57629600000.00 flops
T(n): 8222911780.00 cycles
P(n): 7.01 flops/cycle
T(n): 9941452140.00 cycles
P(n): 5.80 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800370000.00 flops
Q(n) per iteration: 640112 bytes
I(n): 2812.59 flops/byte
W(n): 360074000000.00 flops
T(n): 51149290420.00 cycles
P(n): 7.04 flops/cycle
T(n): 61650558000.00 cycles
P(n): 5.84 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772704.00 flops
Q(n) per iteration: 1280112 bytes
I(n): 2269.94 flops/byte
W(n): 581154540800.00 flops
T(n): 246792591620.00 cycles
P(n): 2.35 flops/cycle
@@ -1,66 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_fastinvsqrt.cpp -o main_inlining_8_SoA_AVX512_polyexp_fastinvsqrt -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_expfix.cpp -o main_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 6512 bytes
I(n): 28.21 flops/byte
W(n): 36740000.00 flops
T(n): 7237100.00 cycles
P(n): 5.08 flops/cycle
T(n): 8445907.50 cycles
P(n): 4.35 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 12912 bytes
I(n): 56.34 flops/byte
W(n): 145480000.00 flops
T(n): 24227557.50 cycles
P(n): 6.00 flops/cycle
T(n): 28691310.00 cycles
P(n): 5.07 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 25712 bytes
I(n): 112.59 flops/byte
W(n): 578960000.00 flops
T(n): 87321790.00 cycles
P(n): 6.63 flops/cycle
T(n): 104933160.00 cycles
P(n): 5.52 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 64112 bytes
I(n): 281.34 flops/byte
W(n): 3607400000.00 flops
T(n): 529210780.00 cycles
P(n): 6.82 flops/cycle
T(n): 639568720.00 cycles
P(n): 5.64 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 128112 bytes
I(n): 562.59 flops/byte
W(n): 14414800000.00 flops
T(n): 2064752120.00 cycles
P(n): 6.98 flops/cycle
T(n): 2515964020.00 cycles
P(n): 5.73 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 256112 bytes
I(n): 1125.09 flops/byte
W(n): 57629600000.00 flops
T(n): 8154495340.00 cycles
P(n): 7.07 flops/cycle
T(n): 9996713720.00 cycles
P(n): 5.76 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800370000.00 flops
Q(n) per iteration: 640112 bytes
I(n): 2812.59 flops/byte
W(n): 360074000000.00 flops
T(n): 50962729840.00 cycles
P(n): 7.07 flops/cycle
T(n): 62098746740.00 cycles
P(n): 5.80 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772704.00 flops
Q(n) per iteration: 1280112 bytes
I(n): 2269.94 flops/byte
W(n): 581154540800.00 flops
T(n): 203476930280.00 cycles
P(n): 2.86 flops/cycle
T(n): 247013435860.00 cycles
P(n): 2.35 flops/cycle
@@ -0,0 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_expfix.cpp -o main_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 6512 bytes
I(n): 28.21 flops/byte
W(n): 36740000.00 flops
T(n): 8335317.50 cycles
P(n): 4.41 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 12912 bytes
I(n): 56.34 flops/byte
W(n): 145480000.00 flops
T(n): 28557990.00 cycles
P(n): 5.09 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 25712 bytes
I(n): 112.59 flops/byte
W(n): 578960000.00 flops
T(n): 104404360.00 cycles
P(n): 5.55 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 64112 bytes
I(n): 281.34 flops/byte
W(n): 3607400000.00 flops
T(n): 635858120.00 cycles
P(n): 5.67 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 128112 bytes
I(n): 562.59 flops/byte
W(n): 14414800000.00 flops
T(n): 2509183840.00 cycles
P(n): 5.74 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 256112 bytes
I(n): 1125.09 flops/byte
W(n): 57629600000.00 flops
T(n): 9956726160.00 cycles
P(n): 5.79 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800370000.00 flops
Q(n) per iteration: 640112 bytes
I(n): 2812.59 flops/byte
W(n): 360074000000.00 flops
T(n): 61839346220.00 cycles
P(n): 5.82 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772704.00 flops
Q(n) per iteration: 1280112 bytes
I(n): 2269.94 flops/byte
W(n): 581154540800.00 flops
T(n): 246699025260.00 cycles
P(n): 2.36 flops/cycle
@@ -1,58 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_sr.cpp -o main_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_sr -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_sr_expfix.cpp -o main_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_sr_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 6512 bytes
I(n): 28.21 flops/byte
W(n): 36740000.00 flops
T(n): 7143010.00 cycles
P(n): 5.14 flops/cycle
T(n): 8308587.50 cycles
P(n): 4.42 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 12912 bytes
I(n): 56.34 flops/byte
W(n): 145480000.00 flops
T(n): 24630712.50 cycles
P(n): 5.91 flops/cycle
T(n): 28404470.00 cycles
P(n): 5.12 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 25712 bytes
I(n): 112.59 flops/byte
W(n): 578960000.00 flops
T(n): 88030350.00 cycles
P(n): 6.58 flops/cycle
T(n): 103978120.00 cycles
P(n): 5.57 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 64112 bytes
I(n): 281.34 flops/byte
W(n): 3607400000.00 flops
T(n): 538550140.00 cycles
P(n): 6.70 flops/cycle
T(n): 633362280.00 cycles
P(n): 5.70 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 128112 bytes
I(n): 562.59 flops/byte
W(n): 14414800000.00 flops
T(n): 2077772880.00 cycles
P(n): 6.94 flops/cycle
T(n): 2494262100.00 cycles
P(n): 5.78 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 256112 bytes
I(n): 1125.09 flops/byte
W(n): 57629600000.00 flops
T(n): 8277950160.00 cycles
P(n): 6.96 flops/cycle
T(n): 9899453320.00 cycles
P(n): 5.82 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800370000.00 flops
Q(n) per iteration: 640112 bytes
I(n): 2812.59 flops/byte
W(n): 360074000000.00 flops
T(n): 51513976020.00 cycles
P(n): 6.99 flops/cycle
T(n): 61865956520.00 cycles
P(n): 5.82 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772704.00 flops
Q(n) per iteration: 1280112 bytes
I(n): 2269.94 flops/byte
W(n): 581154540800.00 flops
T(n): 246306063920.00 cycles
P(n): 2.36 flops/cycle
@@ -1,66 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_sr.cpp -o main_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_sr -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_sr_expfix.cpp -o main_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_sr_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 6512 bytes
I(n): 28.21 flops/byte
W(n): 36740000.00 flops
T(n): 7224345.00 cycles
P(n): 5.09 flops/cycle
T(n): 8344811.25 cycles
P(n): 4.40 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 12912 bytes
I(n): 56.34 flops/byte
W(n): 145480000.00 flops
T(n): 24323830.00 cycles
P(n): 5.98 flops/cycle
T(n): 28520365.00 cycles
P(n): 5.10 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 25712 bytes
I(n): 112.59 flops/byte
W(n): 578960000.00 flops
T(n): 87541580.00 cycles
P(n): 6.61 flops/cycle
T(n): 104404120.00 cycles
P(n): 5.55 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 64112 bytes
I(n): 281.34 flops/byte
W(n): 3607400000.00 flops
T(n): 540497680.00 cycles
P(n): 6.67 flops/cycle
T(n): 636400560.00 cycles
P(n): 5.67 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 128112 bytes
I(n): 562.59 flops/byte
W(n): 14414800000.00 flops
T(n): 2069077440.00 cycles
P(n): 6.97 flops/cycle
T(n): 2501258800.00 cycles
P(n): 5.76 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 256112 bytes
I(n): 1125.09 flops/byte
W(n): 57629600000.00 flops
T(n): 8259242740.00 cycles
P(n): 6.98 flops/cycle
T(n): 9901533780.00 cycles
P(n): 5.82 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800370000.00 flops
Q(n) per iteration: 640112 bytes
I(n): 2812.59 flops/byte
W(n): 360074000000.00 flops
T(n): 51381444880.00 cycles
P(n): 7.01 flops/cycle
T(n): 61815669960.00 cycles
P(n): 5.82 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772704.00 flops
Q(n) per iteration: 1280112 bytes
I(n): 2269.94 flops/byte
W(n): 581154540800.00 flops
T(n): 205008714840.00 cycles
P(n): 2.83 flops/cycle
T(n): 247091597180.00 cycles
P(n): 2.35 flops/cycle
@@ -0,0 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_sr_expfix.cpp -o main_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_sr_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 6512 bytes
I(n): 28.21 flops/byte
W(n): 36740000.00 flops
T(n): 8321530.00 cycles
P(n): 4.42 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 12912 bytes
I(n): 56.34 flops/byte
W(n): 145480000.00 flops
T(n): 28458355.00 cycles
P(n): 5.11 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 25712 bytes
I(n): 112.59 flops/byte
W(n): 578960000.00 flops
T(n): 104209360.00 cycles
P(n): 5.56 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 64112 bytes
I(n): 281.34 flops/byte
W(n): 3607400000.00 flops
T(n): 634333640.00 cycles
P(n): 5.69 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 128112 bytes
I(n): 562.59 flops/byte
W(n): 14414800000.00 flops
T(n): 2496796020.00 cycles
P(n): 5.77 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 256112 bytes
I(n): 1125.09 flops/byte
W(n): 57629600000.00 flops
T(n): 9914787460.00 cycles
P(n): 5.81 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800370000.00 flops
Q(n) per iteration: 640112 bytes
I(n): 2812.59 flops/byte
W(n): 360074000000.00 flops
T(n): 61721090840.00 cycles
P(n): 5.83 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772704.00 flops
Q(n) per iteration: 1280112 bytes
I(n): 2269.94 flops/byte
W(n): 581154540800.00 flops
T(n): 246519066200.00 cycles
P(n): 2.36 flops/cycle
@@ -1,58 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_moreavx.cpp -o main_inlining_8_SoA_AVX512_polyexp_moreavx -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_moreavx_expfix.cpp -o main_inlining_8_SoA_AVX512_polyexp_moreavx_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 6512 bytes
I(n): 28.21 flops/byte
W(n): 36740000.00 flops
T(n): 6876013.75 cycles
P(n): 5.34 flops/cycle
T(n): 7985528.75 cycles
P(n): 4.60 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 12912 bytes
I(n): 56.34 flops/byte
W(n): 145480000.00 flops
T(n): 23521667.50 cycles
P(n): 6.18 flops/cycle
T(n): 27703355.00 cycles
P(n): 5.25 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 25712 bytes
I(n): 112.59 flops/byte
W(n): 578960000.00 flops
T(n): 85927760.00 cycles
P(n): 6.74 flops/cycle
T(n): 102292560.00 cycles
P(n): 5.66 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 64112 bytes
I(n): 281.34 flops/byte
W(n): 3607400000.00 flops
T(n): 524078060.00 cycles
P(n): 6.88 flops/cycle
T(n): 629804220.00 cycles
P(n): 5.73 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 128112 bytes
I(n): 562.59 flops/byte
W(n): 14414800000.00 flops
T(n): 2052525500.00 cycles
P(n): 7.02 flops/cycle
T(n): 2472263180.00 cycles
P(n): 5.83 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 256112 bytes
I(n): 1125.09 flops/byte
W(n): 57629600000.00 flops
T(n): 8210618700.00 cycles
P(n): 7.02 flops/cycle
T(n): 9851588140.00 cycles
P(n): 5.85 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800370000.00 flops
Q(n) per iteration: 640112 bytes
I(n): 2812.59 flops/byte
W(n): 360074000000.00 flops
T(n): 50972389900.00 cycles
P(n): 7.06 flops/cycle
T(n): 61479499820.00 cycles
P(n): 5.86 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772704.00 flops
Q(n) per iteration: 1280112 bytes
I(n): 2269.94 flops/byte
W(n): 581154540800.00 flops
T(n): 245617006060.00 cycles
P(n): 2.37 flops/cycle
@@ -1,66 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_moreavx.cpp -o main_inlining_8_SoA_AVX512_polyexp_moreavx -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_moreavx_expfix.cpp -o main_inlining_8_SoA_AVX512_polyexp_moreavx_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 6512 bytes
I(n): 28.21 flops/byte
W(n): 36740000.00 flops
T(n): 6880311.25 cycles
P(n): 5.34 flops/cycle
T(n): 8028216.25 cycles
P(n): 4.58 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 12912 bytes
I(n): 56.34 flops/byte
W(n): 145480000.00 flops
T(n): 23463525.00 cycles
P(n): 6.20 flops/cycle
T(n): 27833730.00 cycles
P(n): 5.23 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 25712 bytes
I(n): 112.59 flops/byte
W(n): 578960000.00 flops
T(n): 85995280.00 cycles
P(n): 6.73 flops/cycle
T(n): 102829680.00 cycles
P(n): 5.63 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 64112 bytes
I(n): 281.34 flops/byte
W(n): 3607400000.00 flops
T(n): 521810900.00 cycles
P(n): 6.91 flops/cycle
T(n): 629698060.00 cycles
P(n): 5.73 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 128112 bytes
I(n): 562.59 flops/byte
W(n): 14414800000.00 flops
T(n): 2070674920.00 cycles
P(n): 6.96 flops/cycle
T(n): 2469782600.00 cycles
P(n): 5.84 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 256112 bytes
I(n): 1125.09 flops/byte
W(n): 57629600000.00 flops
T(n): 8150338100.00 cycles
P(n): 7.07 flops/cycle
T(n): 9826240720.00 cycles
P(n): 5.86 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800370000.00 flops
Q(n) per iteration: 640112 bytes
I(n): 2812.59 flops/byte
W(n): 360074000000.00 flops
T(n): 50841614020.00 cycles
P(n): 7.08 flops/cycle
T(n): 61490138600.00 cycles
P(n): 5.86 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772704.00 flops
Q(n) per iteration: 1280112 bytes
I(n): 2269.94 flops/byte
W(n): 581154540800.00 flops
T(n): 202898659340.00 cycles
P(n): 2.86 flops/cycle
T(n): 245848977420.00 cycles
P(n): 2.36 flops/cycle
@@ -0,0 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_moreavx_expfix.cpp -o main_inlining_8_SoA_AVX512_polyexp_moreavx_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 6512 bytes
I(n): 28.21 flops/byte
W(n): 36740000.00 flops
T(n): 7992830.00 cycles
P(n): 4.60 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 12912 bytes
I(n): 56.34 flops/byte
W(n): 145480000.00 flops
T(n): 27693680.00 cycles
P(n): 5.25 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 25712 bytes
I(n): 112.59 flops/byte
W(n): 578960000.00 flops
T(n): 102340840.00 cycles
P(n): 5.66 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 64112 bytes
I(n): 281.34 flops/byte
W(n): 3607400000.00 flops
T(n): 638328340.00 cycles
P(n): 5.65 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 128112 bytes
I(n): 562.59 flops/byte
W(n): 14414800000.00 flops
T(n): 2468865800.00 cycles
P(n): 5.84 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 256112 bytes
I(n): 1125.09 flops/byte
W(n): 57629600000.00 flops
T(n): 9838254540.00 cycles
P(n): 5.86 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800370000.00 flops
Q(n) per iteration: 640112 bytes
I(n): 2812.59 flops/byte
W(n): 360074000000.00 flops
T(n): 61344519940.00 cycles
P(n): 5.87 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772704.00 flops
Q(n) per iteration: 1280112 bytes
I(n): 2269.94 flops/byte
W(n): 581154540800.00 flops
T(n): 245174501540.00 cycles
P(n): 2.37 flops/cycle
@@ -1,58 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_moreavx_ilp_2.cpp -o main_inlining_8_SoA_AVX512_polyexp_moreavx_ilp_2 -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_moreavx_ilp_2_expfix.cpp -o main_inlining_8_SoA_AVX512_polyexp_moreavx_ilp_2_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 6512 bytes
I(n): 28.21 flops/byte
W(n): 36740000.00 flops
T(n): 7796687.50 cycles
P(n): 4.71 flops/cycle
T(n): 8506121.25 cycles
P(n): 4.32 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 12912 bytes
I(n): 56.34 flops/byte
W(n): 145480000.00 flops
T(n): 25453505.00 cycles
P(n): 5.72 flops/cycle
T(n): 27681145.00 cycles
P(n): 5.26 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 25712 bytes
I(n): 112.59 flops/byte
W(n): 578960000.00 flops
T(n): 90370870.00 cycles
P(n): 6.41 flops/cycle
T(n): 98048030.00 cycles
P(n): 5.90 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 64112 bytes
I(n): 281.34 flops/byte
W(n): 3607400000.00 flops
T(n): 538274500.00 cycles
P(n): 6.70 flops/cycle
T(n): 594320700.00 cycles
P(n): 6.07 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 128112 bytes
I(n): 562.59 flops/byte
W(n): 14414800000.00 flops
T(n): 2095953220.00 cycles
P(n): 6.88 flops/cycle
T(n): 2270890500.00 cycles
P(n): 6.35 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 256112 bytes
I(n): 1125.09 flops/byte
W(n): 57629600000.00 flops
T(n): 8248614920.00 cycles
P(n): 6.99 flops/cycle
T(n): 8985906260.00 cycles
P(n): 6.41 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800370000.00 flops
Q(n) per iteration: 640112 bytes
I(n): 2812.59 flops/byte
W(n): 360074000000.00 flops
T(n): 51762509580.00 cycles
P(n): 6.96 flops/cycle
T(n): 56358587540.00 cycles
P(n): 6.39 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772704.00 flops
Q(n) per iteration: 1280112 bytes
I(n): 2269.94 flops/byte
W(n): 581154540800.00 flops
T(n): 224065475420.00 cycles
P(n): 2.59 flops/cycle
@@ -1,66 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_moreavx_ilp_2.cpp -o main_inlining_8_SoA_AVX512_polyexp_moreavx_ilp_2 -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_moreavx_ilp_2_expfix.cpp -o main_inlining_8_SoA_AVX512_polyexp_moreavx_ilp_2_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 6512 bytes
I(n): 28.21 flops/byte
W(n): 36740000.00 flops
T(n): 7778888.75 cycles
P(n): 4.72 flops/cycle
T(n): 8512763.75 cycles
P(n): 4.32 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 12912 bytes
I(n): 56.34 flops/byte
W(n): 145480000.00 flops
T(n): 25303990.00 cycles
P(n): 5.75 flops/cycle
T(n): 27679115.00 cycles
P(n): 5.26 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 25712 bytes
I(n): 112.59 flops/byte
W(n): 578960000.00 flops
T(n): 89661540.00 cycles
P(n): 6.46 flops/cycle
T(n): 98109310.00 cycles
P(n): 5.90 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 64112 bytes
I(n): 281.34 flops/byte
W(n): 3607400000.00 flops
T(n): 534011120.00 cycles
P(n): 6.76 flops/cycle
T(n): 583896260.00 cycles
P(n): 6.18 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 128112 bytes
I(n): 562.59 flops/byte
W(n): 14414800000.00 flops
T(n): 2077751560.00 cycles
P(n): 6.94 flops/cycle
T(n): 2292138700.00 cycles
P(n): 6.29 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 256112 bytes
I(n): 1125.09 flops/byte
W(n): 57629600000.00 flops
T(n): 8233407040.00 cycles
P(n): 7.00 flops/cycle
T(n): 9006037600.00 cycles
P(n): 6.40 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800370000.00 flops
Q(n) per iteration: 640112 bytes
I(n): 2812.59 flops/byte
W(n): 360074000000.00 flops
T(n): 51189403060.00 cycles
P(n): 7.03 flops/cycle
T(n): 56211721500.00 cycles
P(n): 6.41 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772704.00 flops
Q(n) per iteration: 1280112 bytes
I(n): 2269.94 flops/byte
W(n): 581154540800.00 flops
T(n): 204461065180.00 cycles
P(n): 2.84 flops/cycle
T(n): 223879818840.00 cycles
P(n): 2.60 flops/cycle
@@ -0,0 +1,66 @@
rm -f main_* run_tests *.o *.s variants/*.s variants/*.o headers/*.s headers/*.o
/usr/bin/g++ main.cpp ./variants/variant_inlining_8_SoA_AVX512_polyexp_moreavx_ilp_2_expfix.cpp -o main_inlining_8_SoA_AVX512_polyexp_moreavx_ilp_2_expfix -O3 -march=native -std=c++23 -Wall -Wextra -flto -DFLOPCOUNT=0 -DRANDOM_SEED=0 -DROOFLINE=0 -DBENCHMARK=1
=== N_P=50 N_ITER=200 ===
W(n) per iteration: 183700.00 flops
Q(n) per iteration: 6512 bytes
I(n): 28.21 flops/byte
W(n): 36740000.00 flops
T(n): 8550285.00 cycles
P(n): 4.30 flops/cycle
=== N_P=100 N_ITER=200 ===
W(n) per iteration: 727400.00 flops
Q(n) per iteration: 12912 bytes
I(n): 56.34 flops/byte
W(n): 145480000.00 flops
T(n): 27834905.00 cycles
P(n): 5.23 flops/cycle
=== N_P=200 N_ITER=200 ===
W(n) per iteration: 2894800.00 flops
Q(n) per iteration: 25712 bytes
I(n): 112.59 flops/byte
W(n): 578960000.00 flops
T(n): 98660270.00 cycles
P(n): 5.87 flops/cycle
=== N_P=500 N_ITER=200 ===
W(n) per iteration: 18037000.00 flops
Q(n) per iteration: 64112 bytes
I(n): 281.34 flops/byte
W(n): 3607400000.00 flops
T(n): 587210580.00 cycles
P(n): 6.14 flops/cycle
=== N_P=1000 N_ITER=200 ===
W(n) per iteration: 72074000.00 flops
Q(n) per iteration: 128112 bytes
I(n): 562.59 flops/byte
W(n): 14414800000.00 flops
T(n): 2280133880.00 cycles
P(n): 6.32 flops/cycle
=== N_P=2000 N_ITER=200 ===
W(n) per iteration: 288148000.00 flops
Q(n) per iteration: 256112 bytes
I(n): 1125.09 flops/byte
W(n): 57629600000.00 flops
T(n): 8974668040.00 cycles
P(n): 6.42 flops/cycle
=== N_P=5000 N_ITER=200 ===
W(n) per iteration: 1800370000.00 flops
Q(n) per iteration: 640112 bytes
I(n): 2812.59 flops/byte
W(n): 360074000000.00 flops
T(n): 56052905260.00 cycles
P(n): 6.42 flops/cycle
=== N_P=10000 N_ITER=200 ===
W(n) per iteration: 2905772704.00 flops
Q(n) per iteration: 1280112 bytes
I(n): 2269.94 flops/byte
W(n): 581154540800.00 flops
T(n): 224433219680.00 cycles
P(n): 2.59 flops/cycle