Best Non-Vectorized Version Benchmark + Duplicate Files Removal

This commit is contained in:
[Quy Anh] «Elliot» Nguyen
2026-06-18 22:25:19 +02:00
parent bd7728015a
commit 822e9d0ef3
73 changed files with 446 additions and 11105 deletions
+42 -11
View File
@@ -114,7 +114,7 @@ tracks = [
"AVX-512 + PolyExp + RSQRT + ILP-Outer (float)", crimson, "-"),
]
fig, ax = plt.subplots(figsize=(9, 4.7))
fig, ax = plt.subplots(figsize=(10, 7))
ends = []
for v, lab, c, ls in tracks:
@@ -129,19 +129,49 @@ for v, lab, c, ls in tracks:
lw=2.4 if c == maroon else 1.8)
if c == maroon:
side = "below"
xpos = 5600
xpos = 2000
y = y - 1
elif v == "variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt_improved_moreilp":
xpos = 2000
side = "above"
y = y + 0.25
elif lab == "Scalar Baseline (double)":
xpos = 750
# y =
side = "above"
elif lab == "AVX-512 (double)":
xpos = 725
side = "above"
elif lab == "AVX-256 + PolyExp + RSQRT (float)":
xpos = 800
y = y + 0.2
side = "above"
elif lab == "AVX-256 + PolyExp (float)":
xpos = 775
y = y + 0.2
side = "above"
elif lab == "AVX-512 + PolyExp (double)":
xpos = 775
y = y + 0.1
side = "above"
elif lab == "AVX-256 (double)":
xpos = 725
side = "above"
else:
side = "above"
xpos = None
ends.append((x, y, lab, c, xpos, side))
perf_bound_instruction_mix = 28.19
for yv, t in [
(27.43, f"Peak π based on instruction mix [{27.43} flops/cycle]"),
(perf_bound_instruction_mix,
f"Peak π based on instruction mix [{perf_bound_instruction_mix} flops/cycle]"
),
# (PEAK_D, f"Peak π par. w/ doubles ({PEAK_D} flops/cycle)"),
# (PEAK_F, f"Peak π par. w/ floats ({PEAK_F} flops/cycle)")
]:
ax.axhline(yv, ls=":", color="#999", lw=1.2)
ax.text(52, yv * 1.03, t, fontsize=9, color="#888", fontweight="bold")
ax.axhline(yv, ls=":", color="#999", lw=4)
ax.text(52, yv * 1.03, t, fontsize=15, color="#888", fontweight="bold")
ax.set_xscale("log", base=10)
ax.set_xticks([50, 100, 200, 500, 1000, 2000, 5000, 10000])
@@ -150,22 +180,23 @@ ax.set_xlim(46, 13000)
ax.set_ylim(0, 30)
for label in ax.get_yticklabels():
label.set_fontweight('bold')
label.set_fontsize(9)
label.set_fontsize(14)
for label in ax.get_xticklabels():
label.set_fontweight('bold')
label.set_fontsize(9)
ax.set_xlabel("Number of Pedestrians", fontweight="bold", fontsize=9)
label.set_fontsize(14)
ax.set_xlabel("Number of Pedestrians", fontweight="bold", fontsize=16)
ax.grid(color="#e9e9e9")
ax.spines["top"].set_visible(False)
ax.spines["right"].set_visible(False)
plt.title(
'Performance (flops/cycle) [N = 3]\nCPU: AMD Ryzen AI 7 350 @ 2 GHz\nCompiler: g++ (Debian 15.2.0-17) 15.2.0\nFlags: -O3 -march=native -std=c++23 -Wall -Wextra -flto',
'Performance (flops/cycle) [N = 3]\nCPU: AMD Ryzen AI 7 350 @ 2 GHz\nCompiler: g++ (Debian 15.2.0-17) 15.2.0\nFlags: -O3 -march=native -std=c++23 -Wall -Wextra -flto\n',
loc='left',
size=9,
size=18,
fontweight="bold")
ax.grid(color="#e9e9e9")
plt.tight_layout()
label_lines_above(ax, ends, fontsize=7.25, dy_frac=0.012)
label_lines_above(ax, ends, fontsize=15, dy_frac=0.003, halo=0)
# fig.set_size_inches(15, 10)
plt.savefig("analysis/fig_tracks.svg", bbox_inches="tight")
# plot 2: all the milestones + the symmetry one that got slower