This commit is contained in:
adrien 2026-04-25 18:57:38 +02:00
parent 3a4783cfa1
commit 7fc7193206

View File

@ -491,12 +491,12 @@ fn bench_Vector(writer: *std.Io.Writer) !void {
} }
fn vectorSIMDvsNative(comptime T: type, writer: *std.Io.Writer) !void { fn vectorSIMDvsNative(comptime T: type, writer: *std.Io.Writer) !void {
const iterations: u64 = 100_000; const iterations: u64 = 10_000;
const lens = [_]u32{ 1, 2, 3, 4, 5, 10, 100, 1_000, 10_000 }; const lens = [_]u32{ 1, 2, 3, 4, 5, 10, 100, 1_000, 10_000 };
try writer.print("\nSIMD Speedup Analysis: {s}\n", .{@typeName(T)}); try writer.print("\nSIMD Speedup Analysis: {s}\n", .{@typeName(T)});
try writer.print("┌────────────┬────────────┬────────────┬────────────┐\n", .{}); try writer.print("┌────────────┬────────────┬────────────┬────────────┐\n", .{});
try writer.print("│ Vector Len │ Scalar (ns)│ Vector (ns)│ Speedup │\n", .{}); try writer.print("│ Vector Len │ Scalar (us)│ Vector (us)│ Speedup │\n", .{});
try writer.print("├────────────┼────────────┼────────────┼────────────┤\n", .{}); try writer.print("├────────────┼────────────┼────────────┼────────────┤\n", .{});
inline for (lens) |vector_len| { inline for (lens) |vector_len| {
@ -511,7 +511,7 @@ fn vectorSIMDvsNative(comptime T: type, writer: *std.Io.Writer) !void {
else else
scalar_val = scalar_val + 1; scalar_val = scalar_val + 1;
} }
const scalar_time = start_scalar.durationTo(getTime()).toNanoseconds(); const scalar_time = start_scalar.durationTo(getTime()).toMicroseconds();
// --- Vector Test --- // --- Vector Test ---
var vector_val: @Vector(vector_len, T) = @splat(20); var vector_val: @Vector(vector_len, T) = @splat(20);
@ -525,7 +525,7 @@ fn vectorSIMDvsNative(comptime T: type, writer: *std.Io.Writer) !void {
else else
vector_val = vector_val + increment; vector_val = vector_val + increment;
} }
const vector_time = start_vector.durationTo(getTime()).toNanoseconds(); const vector_time = start_vector.durationTo(getTime()).toMicroseconds();
// --- Results --- // --- Results ---
const s_float = @as(f64, @floatFromInt(scalar_time)); const s_float = @as(f64, @floatFromInt(scalar_time));
@ -541,6 +541,7 @@ fn vectorSIMDvsNative(comptime T: type, writer: *std.Io.Writer) !void {
vector_time, vector_time,
speedup, speedup,
}); });
try writer.flush();
std.mem.doNotOptimizeAway(scalar_val); std.mem.doNotOptimizeAway(scalar_val);
std.mem.doNotOptimizeAway(vector_val); std.mem.doNotOptimizeAway(vector_val);