lib/accy/src/kernel/library/histogram/family/naming.zig
daab053ee43316e1809a84551d573ddd1e5bf3d2
1 const std = @import("std");
2
3 const model = @import("model.zig");
4
5 const Histogram = model.Histogram;
6
7 pub fn histogramFamilyTarget(allocator: std.mem.Allocator, instance: Histogram) ![]u8 {
8 return switch (instance.variant) {
9 .direct => std.fmt.allocPrint(
10 allocator,
11 "accy.kernel.histogram.histogram_family_{d}_{s}",
12 .{ instance.threads, instance.dtype.name() },
13 ),
14 .shared_bins => std.fmt.allocPrint(
15 allocator,
16 "accy.kernel.histogram.histogram_family_shared{d}_{d}_{s}",
17 .{ instance.bins, instance.threads, instance.dtype.name() },
18 ),
19 };
20 }
21
22 pub fn histogramFamilyEntryName(allocator: std.mem.Allocator, instance: Histogram) ![]u8 {
23 return switch (instance.variant) {
24 .direct => std.fmt.allocPrint(
25 allocator,
26 "accy_kernel_histogram_histogram_family_{d}_{s}",
27 .{ instance.threads, instance.dtype.name() },
28 ),
29 .shared_bins => std.fmt.allocPrint(
30 allocator,
31 "accy_kernel_histogram_histogram_family_shared{d}_{d}_{s}",
32 .{ instance.bins, instance.threads, instance.dtype.name() },
33 ),
34 };
35 }