Skip to documentation
SLOP

tiny.accy.kernel.library.random

Reference tiny.accy kernel library random

Defined in kernel.library.

API (199)

Actions

Public operations.

Types and contracts

Public types and contracts.

Namespaces

Public namespaces.

Values and defaults

Public values and defaults.

No direct callersNo direct callskernel.libraryrandom
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Source: lib/accy/src/kernel/library/random/feistel/types.zig:13

zig
pub const Feistel = struct {    count: u64,    rounds: u32 = feistel_default_rounds,    seed: u64 = 0,    dtype: DType = .i32,    threads: u32 = 256,    count_axis: []const u8 = "n",    pub fn seedLo(self: Feistel) u32 {        return @truncate(self.seed);    }    pub fn seedHi(self: Feistel) u32 {        return @truncate(self.seed >> 32);    }    pub fn domainBits(self: Feistel) ?u6 {        return feistelDomainBits(self.count);    }    pub fn halfBits(self: Feistel) ?u6 {        const bits = self.domainBits() orelse return null;        return @intCast(bits / 2);    }};

Source: lib/accy/src/kernel/library/random/fold/philox/types.zig:11

zig
pub const PhiloxFold = struct {    count: u64,    samples: u32 = 1,    rounds: u32 = philox_default_rounds,    seed: u64 = 0,    dtype: DType = .f32,    threads: u32 = 256,    count_axis: []const u8 = "n",    pub fn seedLo(self: PhiloxFold) u32 {        return @truncate(self.seed);    }    pub fn seedHi(self: PhiloxFold) u32 {        return @truncate(self.seed >> 32);    }};

Source: lib/accy/src/kernel/library/random/fold/squares/types.zig:9

zig
pub const SquaresFold = struct {    count: u64,    samples: u32 = 1,    key: u64 = squares_default_key,    dtype: DType = .f32,    threads: u32 = 256,    count_axis: []const u8 = "n",    pub fn keyLo(self: SquaresFold) u32 {        return @truncate(self.key);    }    pub fn keyHi(self: SquaresFold) u32 {        return @truncate(self.key >> 32);    }};

Source: lib/accy/src/kernel/library/random/fold/threefry/types.zig:11

zig
pub const ThreefryFold = struct {    count: u64,    samples: u32 = 1,    rounds: u32 = threefry_default_rounds,    seed: u64 = 0,    dtype: DType = .f32,    threads: u32 = 256,    count_axis: []const u8 = "n",    pub fn seedLo(self: ThreefryFold) u32 {        return @truncate(self.seed);    }    pub fn seedHi(self: ThreefryFold) u32 {        return @truncate(self.seed >> 32);    }};

Source: lib/accy/src/kernel/library/random/key/types.zig:32

zig
pub const PhiloxKeyCounterUniform = struct {    count: u64,    rounds: u32 = philox_default_rounds,    dtype: DType = .f32,    threads: u32 = 256,    count_axis: []const u8 = "n",    pub fn generators(self: PhiloxKeyCounterUniform) u64 {        return self.count;    }};

Source: lib/accy/src/kernel/library/random/key/types.zig:9

zig
pub const PhiloxKeySplit = struct {    count: u64,    rounds: u32 = philox_default_rounds,    threads: u32 = 256,    count_axis: []const u8 = "n",    pub fn generators(self: PhiloxKeySplit) u64 {        return self.count;    }};

Source: lib/accy/src/kernel/library/random/key/types.zig:20

zig
pub const PhiloxKeyUniform = struct {    count: u64,    rounds: u32 = philox_default_rounds,    dtype: DType = .f32,    threads: u32 = 256,    count_axis: []const u8 = "n",    pub fn generators(self: PhiloxKeyUniform) u64 {        return self.count;    }};

Source: lib/accy/src/kernel/library/random/philox/types.zig:11

zig
pub const Philox = struct {    count: u64,    rounds: u32 = philox_default_rounds,    seed: u64 = 0,    dtype: DType = .f32,    threads: u32 = 256,    count_axis: []const u8 = "n",    pub fn generators(self: Philox) u64 {        return ceilDiv(self.count, philox_lanes);    }    pub fn seedLo(self: Philox) u32 {        return @truncate(self.seed);    }    pub fn seedHi(self: Philox) u32 {        return @truncate(self.seed >> 32);    }};

Source: lib/accy/src/kernel/library/random/squares/types.zig:11

zig
pub const Squares = struct {    count: u64,    key: u64 = squares_default_key,    dtype: DType = .f32,    threads: u32 = 256,    count_axis: []const u8 = "n",    pub fn generators(self: Squares) u64 {        return self.count;    }    pub fn keyLo(self: Squares) u32 {        return @truncate(self.key);    }    pub fn keyHi(self: Squares) u32 {        return @truncate(self.key >> 32);    }};

Source: lib/accy/src/kernel/library/random/threefry/types.zig:11

zig
pub const Threefry = struct {    count: u64,    rounds: u32 = threefry_default_rounds,    seed: u64 = 0,    dtype: DType = .f32,    threads: u32 = 256,    count_axis: []const u8 = "n",    pub fn generators(self: Threefry) u64 {        return ceilDiv(self.count, threefry_lanes);    }    pub fn seedLo(self: Threefry) u32 {        return @truncate(self.seed);    }    pub fn seedHi(self: Threefry) u32 {        return @truncate(self.seed >> 32);    }};

Source: lib/accy/src/kernel/library/random/feistel/artifact.zig:21

zig
pub fn createFeistelFamilyArtifact(    allocator: std.mem.Allocator,    handle: kernel.BackendHandle,    instance: Feistel,    options: entry.ArtifactOptions,) !kernel.OwnedKernelCallArtifact {    if (!feistelInstanceValid(instance)) return error.UnsupportedExtent;    const target = try feistelFamilyTarget(allocator, instance);    defer allocator.free(target);    const entry_name = try feistelFamilyEntryName(allocator, instance);    defer allocator.free(entry_name);    const family_fingerprint = options.shape_family_fingerprint orelse try feistelFamilyFingerprint(allocator, instance);    const shape_profile_dimensions = feistelShapeProfileDimensions(instance);    const shape_profile = options.shape_profile orelse artifact_product.KernelCallShapeProfile{        .name = "feistel",        .fingerprint = family_fingerprint,        .dimensions = shape_profile_dimensions[0..],    };    var graph = switch (instance.dtype) {        .i32 => try FeistelRuntimeFamilyI32.buildNamed(allocator, options.limits, entry_name, instance),        else => return error.UnsupportedDType,    };    defer graph.deinit();    return kernel.createKernelCallArtifact(allocator, handle, &graph, .{        .target = target,        .version = feistel_family_version,        .format = options.format,        .kernel_plan = options.kernel_plan,        .element_count_argument = options.element_count_argument,        .shape_family_fingerprint = family_fingerprint,        .shape_profile = shape_profile,        .launch = options.launch orelse try randomFoldDerivedLaunch(instance.threads),        .runtime_scalar_argument_count = if (options.runtime_scalar_argument_count == 0) 3 else options.runtime_scalar_argument_count,        .static_arguments = options.static_arguments,    });}
Called byCallsNo direct callerskernel.library.random.baserandomFoldDerivedLaunchkernel.library.randomfeistelFamilyEntryNamekernel.library.randomfeistelFamilyTargetkernel.library.randomfeistelFamilyFingerprintkernel.library.randomfeistelShapeProfileDimensions+2 morekernel.library.randomcreateFeistelFamilyArtifact
Static calls · unresolved targets: 1 · external targets: 2.

Source: lib/accy/src/kernel/library/random/feistel/geometry.zig:12

zig
pub fn feistelThreadCandidatesForCount(count: u64) geometry_mod.Thread1DCandidates {    return geometry_mod.threadCandidatesForExtent(count, random_thread_caps);}

Source: lib/accy/src/kernel/library/random/feistel/geometry.zig:8

zig
pub fn feistelThreadsForCount(count: u64) u32 {    return geometry_mod.threadsForExtent(count, random_thread_caps);}

Source: lib/accy/src/kernel/library/random/feistel/names.zig:15

zig
pub fn feistelFamilyEntryName(allocator: std.mem.Allocator, instance: Feistel) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy_kernel_random_feistel_family_{d}b_{d}r_{d}_{s}",        .{ instance.domainBits().?, instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreateFeistelFamilyArtifacttest sourcelib.accy.src.kernel.library.random.testtest: random feistel family identity ...kernel.library.randomfeistelFamilyEntryName
Static calls · unresolved targets: 0 · external targets: 2.

Source: lib/accy/src/kernel/library/random/feistel/names.zig:7

zig
pub fn feistelFamilyTarget(allocator: std.mem.Allocator, instance: Feistel) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy.kernel.random.feistel_family_{d}b_{d}r_{d}_{s}",        .{ instance.domainBits().?, instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreateFeistelFamilyArtifacttest sourcelib.accy.src.kernel.library.random.testtest: random feistel family identity ...kernel.library.randomfeistelFamilyTarget
Static calls · unresolved targets: 0 · external targets: 2.

Source: lib/accy/src/kernel/library/random/feistel/profile.zig:30

zig
pub fn feistelFamilyFingerprint(backing_allocator: std.mem.Allocator, instance: Feistel) !u64 {    var family = try feistelShapeFamily(backing_allocator, instance);    defer family.deinit();    return shape.fingerprint(family);}
Called byCallskernel.library.randomcreateFeistelFamilyArtifactprivate; no linklib.accy.src.choir.shapefingerprintkernel.library.randomfeistelShapeFamilykernel.library.randomfeistelFamilyFingerprint
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/feistel/profile.zig:16

zig
pub fn feistelRuntimeArguments(instance: Feistel) ![3]choir_abi.ScalarArgument {    return .{        .{ .u32 = try runtimeExtentArgument(instance.count) },        .{ .u32 = instance.seedLo() },        .{ .u32 = instance.seedHi() },    };}
Called byCallsNo direct callstest sourcelib.accy.src.kernel.library.random.testtest: random feistel family identity ...kernel.library.randomfeistelRuntimeArguments
Static calls · unresolved targets: 1 · external targets: 2.

Source: lib/accy/src/kernel/library/random/feistel/profile.zig:36

zig
pub fn feistelShapeFamily(backing_allocator: std.mem.Allocator, instance: Feistel) !shape.Family {    return randomShapeFamily(backing_allocator, "feistel", instance.count_axis);}
Called byCallskernel.library.randomfeistelFamilyFingerprintkernel.library.random.baserandomShapeFamilykernel.library.randomfeistelShapeFamily
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/feistel/profile.zig:24

zig
pub fn feistelShapeProfileDimensions(instance: Feistel) [1]artifact_product.KernelCallShapeProfileDimension {    return .{        .{ .name = instance.count_axis, .runtime_scalar_argument_index = 0, .bounds = randomRuntimeExtentBounds() },    };}
Called byCallskernel.library.randomcreateFeistelFamilyArtifactkernel.library.random.baserandomRuntimeExtentBoundskernel.library.randomfeistelShapeProfileDimensions
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/feistel/runtime.zig:99

zig
pub const FeistelRuntimeFamilyI32 = feistelRuntimeFamily(.i32);

Source: lib/accy/src/kernel/library/random/feistel/runtime.zig:16

zig
pub fn feistelPermuteReference(index: u32, rounds: u32, seed: u64, bits: u6) u32 {    const half_bits: u5 = @intCast(bits / 2);    const mask: u32 = (@as(u32, 1) << half_bits) - 1;    var left: u32 = index >> half_bits;    var right: u32 = index & mask;    const seed_lo: u32 = @truncate(seed);    const seed_hi: u32 = @truncate(seed >> 32);    var round: u32 = 0;    while (round < rounds) : (round += 1) {        const mixed = philoxBlock(2, .{ right, round, 0, 0 }, .{ seed_lo, seed_hi })[0] & mask;        const next_right = left ^ mixed;        left = right;        right = next_right;    }    return (left << half_bits) | right;}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random feistel reference is bij...test sourcelib.accy.src.kernel.library.random.testtest: random feistel runtime family e...kernel.library.randomphiloxBlockkernel.library.randomfeistelPermuteReference
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallskernel.library.random.FeistelhalfBitskernel.library.randomfeistelDomainBitskernel.library.random.FeisteldomainBits
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callerskernel.library.random.FeisteldomainBitskernel.library.random.FeistelhalfBits
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/feistel/types.zig:39

zig
pub fn feistelDomainBits(count: u64) ?u6 {    if (count < 4) return null;    if (!std.math.isPowerOfTwo(count)) return null;    const bits: u6 = @intCast(std.math.log2_int(u64, count));    if (bits > feistel_max_domain_bits) return null;    if (bits % 2 != 0) return null;    return bits;}
Called byCallsNo direct callskernel.library.random.FeisteldomainBitstest sourcelib.accy.src.kernel.library.random.testtest: random feistel reference is bij...test sourcelib.accy.src.kernel.library.random.testtest: random feistel validates only b...kernel.library.randomfeistelDomainBits
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/feistel/types.zig:48

zig
pub fn feistelInstanceValid(instance: Feistel) bool {    if (instance.dtype != .i32) return false;    if (instance.threads == 0) return false;    if (instance.rounds == 0 or instance.rounds > feistel_max_rounds) return false;    return instance.domainBits() != null;}
Called byCallsNo direct callskernel.library.randomcreateFeistelFamilyArtifacttest sourcelib.accy.src.kernel.library.random.testtest: random feistel validates only b...kernel.library.randomfeistelInstanceValid
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/feistel/types.zig:8

zig
pub const feistel_default_rounds: u32 = 6;

Source: lib/accy/src/kernel/library/random/feistel/types.zig:10

zig
pub const feistel_family_version: u32 = 1;

Source: lib/accy/src/kernel/library/random/feistel/types.zig:9

zig
pub const feistel_max_rounds: u32 = 16;

Source: lib/accy/src/kernel/library/random/fold/philox/family.zig:106

zig
pub fn createPhiloxFoldFamilyArtifact(    allocator: std.mem.Allocator,    handle: kernel.BackendHandle,    instance: PhiloxFold,    options: entry.ArtifactOptions,) !kernel.OwnedKernelCallArtifact {    const target = try philoxFoldFamilyTarget(allocator, instance);    defer allocator.free(target);    const entry_name = try philoxFoldFamilyEntryName(allocator, instance);    defer allocator.free(entry_name);    const family_fingerprint = options.shape_family_fingerprint orelse try philoxFoldFamilyFingerprint(allocator, instance);    const shape_profile_dimensions = philoxFoldShapeProfileDimensions(instance);    const shape_profile = options.shape_profile orelse artifact_product.KernelCallShapeProfile{        .name = "philox_fold",        .fingerprint = family_fingerprint,        .dimensions = shape_profile_dimensions[0..],    };    var graph = switch (instance.dtype) {        .f32 => try PhiloxFoldRuntimeFamilyF32.buildNamed(allocator, options.limits, entry_name, instance),        .i32 => try PhiloxFoldRuntimeFamilyI32.buildNamed(allocator, options.limits, entry_name, instance),        else => return error.UnsupportedDType,    };    defer graph.deinit();    return kernel.createKernelCallArtifact(allocator, handle, &graph, .{        .target = target,        .version = philox_fold_family_version,        .format = options.format,        .kernel_plan = options.kernel_plan,        .element_count_argument = options.element_count_argument,        .shape_family_fingerprint = family_fingerprint,        .shape_profile = shape_profile,        .launch = options.launch orelse try randomFoldDerivedLaunch(instance.threads),        .runtime_scalar_argument_count = if (options.runtime_scalar_argument_count == 0) 4 else options.runtime_scalar_argument_count,        .static_arguments = options.static_arguments,    });}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random fold family artifact car...kernel.library.random.baserandomFoldDerivedLaunchkernel.library.randomphiloxFoldFamilyEntryNamekernel.library.randomphiloxFoldFamilyFingerprintkernel.library.randomphiloxFoldFamilyTargetkernel.library.randomphiloxFoldShapeProfileDimensionstiny.smggraphdeinitkernel.library.randomcreatePhiloxFoldFamilyArtifact
Static calls · unresolved targets: 2 · external targets: 2.

Source: lib/accy/src/kernel/library/random/fold/philox/family.zig:37

zig
pub fn philoxFoldBitsReference(rounds: u32, output_index: u32, samples: u32, key: [2]u32) u32 {    var accumulator: u32 = 0;    for (0..samples) |sample| {        const words = philoxBlock(rounds, .{ output_index, @intCast(sample), 0, 0 }, key);        for (words) |word| accumulator ^= word;    }    return accumulator;}
Called byCallsNo direct callerskernel.library.randomphiloxBlockkernel.library.randomphiloxFoldBitsReference
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/philox/family.zig:54

zig
pub fn philoxFoldFamilyEntryName(allocator: std.mem.Allocator, instance: PhiloxFold) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy_kernel_random_philox_fold_family_{d}r_{d}_{s}",        .{ instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreatePhiloxFoldFamilyArtifactkernel.library.randomphiloxFoldFamilyEntryName
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/fold/philox/family.zig:101

zig
pub fn philoxFoldFamilyFingerprint(backing_allocator: std.mem.Allocator, instance: PhiloxFold) !u64 {    var family = try randomShapeFamily(backing_allocator, "philox_fold", instance.count_axis);    defer family.deinit();    return shape.fingerprint(family);}
Called byCallskernel.library.randomcreatePhiloxFoldFamilyArtifactkernel.library.randomphiloxFoldFamilyTuningKeyprivate; no linklib.accy.src.choir.shapefingerprintkernel.library.random.baserandomShapeFamilykernel.library.randomphiloxFoldFamilyFingerprint
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/fold/philox/family.zig:46

zig
pub fn philoxFoldFamilyTarget(allocator: std.mem.Allocator, instance: PhiloxFold) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy.kernel.random.philox_fold_family_{d}r_{d}_{s}",        .{ instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreatePhiloxFoldFamilyArtifactkernel.library.randomphiloxFoldFamilyTarget
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/fold/philox/family.zig:84

zig
pub fn philoxFoldFamilyTuningKey(    backing_allocator: std.mem.Allocator,    device_fingerprint: u64,    instance: PhiloxFold,) !tuning.FamilyTuningKey {    const family_fingerprint = try philoxFoldFamilyFingerprint(backing_allocator, instance);    const extents = philoxFoldTuningExtents(instance);    return tuning.FamilyTuningKey.init(        device_fingerprint,        family_fingerprint,        entry.operationFingerprint(philoxFoldTuningOperation(instance)),        instance.dtype,        philox_fold_family_version,        extents[0..],    ) orelse unreachable;}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random fold family tuning keys ...kernel.library.entryoperationFingerprintkernel.library.randomphiloxFoldFamilyFingerprintkernel.library.randomphiloxFoldTuningExtentskernel.library.randomphiloxFoldTuningOperationkernel.library.tuning.FamilyTuningKeyinitkernel.library.randomphiloxFoldFamilyTuningKey
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/philox/family.zig:61

zig
pub fn philoxFoldRuntimeArguments(instance: PhiloxFold) ![4]choir_abi.ScalarArgument {    if (instance.samples == 0) return error.ExtentOverflowsIndexRange;    return .{        .{ .u32 = try runtimeExtentArgument(instance.count) },        .{ .u32 = instance.samples },        .{ .u32 = instance.seedLo() },        .{ .u32 = instance.seedHi() },    };}
Called byCallsNo direct callstest sourcelib.accy.src.kernel.library.random.testtest: random fold family artifact car...kernel.library.randomphiloxFoldRuntimeArguments
Static calls · unresolved targets: 1 · external targets: 2.

Source: lib/accy/src/kernel/library/random/fold/philox/family.zig:70

zig
pub fn philoxFoldShapeProfileDimensions(instance: PhiloxFold) [2]artifact_product.KernelCallShapeProfileDimension {    return .{        .{ .name = instance.count_axis, .runtime_scalar_argument_index = 0, .bounds = randomRuntimeExtentBounds() },        .{ .name = "k", .runtime_scalar_argument_index = 1, .bounds = randomRuntimeExtentBounds() },    };}
Called byCallskernel.library.randomcreatePhiloxFoldFamilyArtifactkernel.library.random.baserandomRuntimeExtentBoundskernel.library.randomphiloxFoldShapeProfileDimensions
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/philox/family.zig:76

zig
pub fn philoxFoldTuningExtents(instance: PhiloxFold) [2]u64 {    return .{ instance.count, instance.samples };}
Called byCallsNo direct callskernel.library.randomphiloxFoldFamilyTuningKeykernel.library.randomphiloxFoldTuningExtents
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/philox/family.zig:80

zig
pub fn philoxFoldTuningOperation(instance: PhiloxFold) entry.Operation {    return .{ .random = .{ .philox_fold = instance.rounds } };}
Called byCallsNo direct callskernel.library.randomphiloxFoldFamilyTuningKeykernel.library.randomphiloxFoldTuningOperation
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/philox/family.zig:28

zig
pub fn philoxFoldUniformReference(rounds: u32, output_index: u32, samples: u32, key: [2]u32) f32 {    var accumulator: f32 = 0.0;    for (0..samples) |sample| {        const words = philoxBlock(rounds, .{ output_index, @intCast(sample), 0, 0 }, key);        for (words) |word| accumulator += uniformFromBits(word);    }    return accumulator;}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random philox fold family accum...kernel.library.randomphiloxBlockkernel.library.randomuniformFromBitskernel.library.randomphiloxFoldUniformReference
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/philox/runtime.zig:86

zig
pub const PhiloxFoldRuntimeFamilyF32 = philoxFoldRuntimeFamily(.f32);

Source: lib/accy/src/kernel/library/random/fold/philox/runtime.zig:87

zig
pub const PhiloxFoldRuntimeFamilyI32 = philoxFoldRuntimeFamily(.i32);

Source: lib/accy/src/kernel/library/random/fold/philox/types.zig:9

zig
pub const philox_fold_family_version: u32 = 1;

Source: lib/accy/src/kernel/library/random/fold/squares/family.zig:111

zig
pub fn createSquaresFoldFamilyArtifact(    allocator: std.mem.Allocator,    handle: kernel.BackendHandle,    instance: SquaresFold,    options: entry.ArtifactOptions,) !kernel.OwnedKernelCallArtifact {    const target = try squaresFoldFamilyTarget(allocator, instance);    defer allocator.free(target);    const entry_name = try squaresFoldFamilyEntryName(allocator, instance);    defer allocator.free(entry_name);    const family_fingerprint = options.shape_family_fingerprint orelse try squaresFoldFamilyFingerprint(allocator, instance);    const shape_profile_dimensions = squaresFoldShapeProfileDimensions(instance);    const shape_profile = options.shape_profile orelse artifact_product.KernelCallShapeProfile{        .name = "squares_fold",        .fingerprint = family_fingerprint,        .dimensions = shape_profile_dimensions[0..],    };    var graph = switch (instance.dtype) {        .f32 => try SquaresFoldRuntimeFamilyF32.buildNamed(allocator, options.limits, entry_name, instance),        .i32 => try SquaresFoldRuntimeFamilyI32.buildNamed(allocator, options.limits, entry_name, instance),        else => return error.UnsupportedDType,    };    defer graph.deinit();    return kernel.createKernelCallArtifact(allocator, handle, &graph, .{        .target = target,        .version = squares_fold_family_version,        .format = options.format,        .kernel_plan = options.kernel_plan,        .element_count_argument = options.element_count_argument,        .shape_family_fingerprint = family_fingerprint,        .shape_profile = shape_profile,        .launch = options.launch orelse try randomFoldDerivedLaunch(instance.threads),        .runtime_scalar_argument_count = if (options.runtime_scalar_argument_count == 0) 4 else options.runtime_scalar_argument_count,        .static_arguments = options.static_arguments,    });}
Called byCallsNo direct callerskernel.library.random.baserandomFoldDerivedLaunchkernel.library.randomsquaresFoldFamilyEntryNamekernel.library.randomsquaresFoldFamilyFingerprintkernel.library.randomsquaresFoldFamilyTargetkernel.library.randomsquaresFoldShapeProfileDimensionstiny.smggraphdeinitkernel.library.randomcreateSquaresFoldFamilyArtifact
Static calls · unresolved targets: 2 · external targets: 2.

Source: lib/accy/src/kernel/library/random/fold/squares/family.zig:37

zig
pub fn squaresFoldBitsReference(output_index: u32, samples: u32, key: u64) u32 {    var accumulator: u32 = 0;    for (0..samples) |sample| {        const counter = @as(u64, output_index) | (@as(u64, @intCast(sample)) << 32);        accumulator ^= squaresBlock(counter, key);    }    return accumulator;}
Called byCallsNo direct callerskernel.library.randomsquaresBlockkernel.library.randomsquaresFoldBitsReference
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/squares/family.zig:54

zig
pub fn squaresFoldFamilyEntryName(allocator: std.mem.Allocator, instance: SquaresFold) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy_kernel_random_squares_fold_family_{d}_{s}",        .{ instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreateSquaresFoldFamilyArtifactkernel.library.randomsquaresFoldFamilyEntryName
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/fold/squares/family.zig:105

zig
pub fn squaresFoldFamilyFingerprint(backing_allocator: std.mem.Allocator, instance: SquaresFold) !u64 {    var family = try randomShapeFamily(backing_allocator, "squares_fold", instance.count_axis);    defer family.deinit();    return shape.fingerprint(family);}
Called byCallskernel.library.randomcreateSquaresFoldFamilyArtifactkernel.library.randomsquaresFoldFamilyTuningKeyprivate; no linklib.accy.src.choir.shapefingerprintkernel.library.random.baserandomShapeFamilykernel.library.randomsquaresFoldFamilyFingerprint
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/fold/squares/family.zig:46

zig
pub fn squaresFoldFamilyTarget(allocator: std.mem.Allocator, instance: SquaresFold) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy.kernel.random.squares_fold_family_{d}_{s}",        .{ instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreateSquaresFoldFamilyArtifactkernel.library.randomsquaresFoldFamilyTarget
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/fold/squares/family.zig:88

zig
pub fn squaresFoldFamilyTuningKey(    backing_allocator: std.mem.Allocator,    device_fingerprint: u64,    instance: SquaresFold,) !tuning.FamilyTuningKey {    const family_fingerprint = try squaresFoldFamilyFingerprint(backing_allocator, instance);    const extents = squaresFoldTuningExtents(instance);    return tuning.FamilyTuningKey.init(        device_fingerprint,        family_fingerprint,        entry.operationFingerprint(squaresFoldTuningOperation(instance)),        instance.dtype,        squares_fold_family_version,        extents[0..],    ) orelse unreachable;}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random fold family tuning keys ...kernel.library.entryoperationFingerprintkernel.library.randomsquaresFoldFamilyFingerprintkernel.library.randomsquaresFoldTuningExtentskernel.library.randomsquaresFoldTuningOperationkernel.library.tuning.FamilyTuningKeyinitkernel.library.randomsquaresFoldFamilyTuningKey
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/squares/family.zig:62

zig
pub fn squaresFoldRuntimeArguments(instance: SquaresFold) ![4]choir_abi.ScalarArgument {    if (instance.samples == 0) return error.ExtentOverflowsIndexRange;    return .{        .{ .u32 = try runtimeExtentArgument(instance.count) },        .{ .u32 = instance.samples },        .{ .u32 = instance.keyLo() },        .{ .u32 = instance.keyHi() },    };}

Source: lib/accy/src/kernel/library/random/fold/squares/family.zig:72

zig
pub fn squaresFoldShapeProfileDimensions(instance: SquaresFold) [2]artifact_product.KernelCallShapeProfileDimension {    return .{        .{ .name = instance.count_axis, .runtime_scalar_argument_index = 0, .bounds = randomRuntimeExtentBounds() },        .{ .name = "k", .runtime_scalar_argument_index = 1, .bounds = randomRuntimeExtentBounds() },    };}
Called byCallskernel.library.randomcreateSquaresFoldFamilyArtifactkernel.library.random.baserandomRuntimeExtentBoundskernel.library.randomsquaresFoldShapeProfileDimensions
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/squares/family.zig:79

zig
pub fn squaresFoldTuningExtents(instance: SquaresFold) [2]u64 {    return .{ instance.count, instance.samples };}
Called byCallsNo direct callskernel.library.randomsquaresFoldFamilyTuningKeykernel.library.randomsquaresFoldTuningExtents
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/squares/family.zig:83

zig
pub fn squaresFoldTuningOperation(instance: SquaresFold) entry.Operation {    _ = instance;    return .{ .random = .squares_fold };}
Called byCallsNo direct callskernel.library.randomsquaresFoldFamilyTuningKeykernel.library.randomsquaresFoldTuningOperation
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/squares/family.zig:28

zig
pub fn squaresFoldUniformReference(output_index: u32, samples: u32, key: u64) f32 {    var accumulator: f32 = 0.0;    for (0..samples) |sample| {        const counter = @as(u64, output_index) | (@as(u64, @intCast(sample)) << 32);        accumulator += uniformFromBits(squaresBlock(counter, key));    }    return accumulator;}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random squares fold family accu...kernel.library.randomsquaresBlockkernel.library.randomuniformFromBitskernel.library.randomsquaresFoldUniformReference
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/squares/runtime.zig:88

zig
pub const SquaresFoldRuntimeFamilyF32 = squaresFoldRuntimeFamily(.f32);

Source: lib/accy/src/kernel/library/random/fold/squares/runtime.zig:89

zig
pub const SquaresFoldRuntimeFamilyI32 = squaresFoldRuntimeFamily(.i32);

Source: lib/accy/src/kernel/library/random/fold/squares/types.zig:26

zig
pub const squares_fold_family_version: u32 = 1;

Source: lib/accy/src/kernel/library/random/fold/threefry/family.zig:106

zig
pub fn createThreefryFoldFamilyArtifact(    allocator: std.mem.Allocator,    handle: kernel.BackendHandle,    instance: ThreefryFold,    options: entry.ArtifactOptions,) !kernel.OwnedKernelCallArtifact {    const target = try threefryFoldFamilyTarget(allocator, instance);    defer allocator.free(target);    const entry_name = try threefryFoldFamilyEntryName(allocator, instance);    defer allocator.free(entry_name);    const family_fingerprint = options.shape_family_fingerprint orelse try threefryFoldFamilyFingerprint(allocator, instance);    const shape_profile_dimensions = threefryFoldShapeProfileDimensions(instance);    const shape_profile = options.shape_profile orelse artifact_product.KernelCallShapeProfile{        .name = "threefry_fold",        .fingerprint = family_fingerprint,        .dimensions = shape_profile_dimensions[0..],    };    var graph = switch (instance.dtype) {        .f32 => try ThreefryFoldRuntimeFamilyF32.buildNamed(allocator, options.limits, entry_name, instance),        .i32 => try ThreefryFoldRuntimeFamilyI32.buildNamed(allocator, options.limits, entry_name, instance),        else => return error.UnsupportedDType,    };    defer graph.deinit();    return kernel.createKernelCallArtifact(allocator, handle, &graph, .{        .target = target,        .version = threefry_fold_family_version,        .format = options.format,        .kernel_plan = options.kernel_plan,        .element_count_argument = options.element_count_argument,        .shape_family_fingerprint = family_fingerprint,        .shape_profile = shape_profile,        .launch = options.launch orelse try randomFoldDerivedLaunch(instance.threads),        .runtime_scalar_argument_count = if (options.runtime_scalar_argument_count == 0) 4 else options.runtime_scalar_argument_count,        .static_arguments = options.static_arguments,    });}
Called byCallsNo direct callerskernel.library.random.baserandomFoldDerivedLaunchkernel.library.randomthreefryFoldFamilyEntryNamekernel.library.randomthreefryFoldFamilyFingerprintkernel.library.randomthreefryFoldFamilyTargetkernel.library.randomthreefryFoldShapeProfileDimensionstiny.smggraphdeinitkernel.library.randomcreateThreefryFoldFamilyArtifact
Static calls · unresolved targets: 2 · external targets: 2.

Source: lib/accy/src/kernel/library/random/fold/threefry/family.zig:37

zig
pub fn threefryFoldBitsReference(rounds: u32, output_index: u32, samples: u32, key: [2]u32) u32 {    var accumulator: u32 = 0;    for (0..samples) |sample| {        const words = threefryBlock(rounds, .{ output_index, @intCast(sample) }, key);        for (words) |word| accumulator ^= word;    }    return accumulator;}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random threefry fold family xor...kernel.library.randomthreefryBlockkernel.library.randomthreefryFoldBitsReference
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/threefry/family.zig:54

zig
pub fn threefryFoldFamilyEntryName(allocator: std.mem.Allocator, instance: ThreefryFold) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy_kernel_random_threefry_fold_family_{d}r_{d}_{s}",        .{ instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreateThreefryFoldFamilyArtifactkernel.library.randomthreefryFoldFamilyEntryName
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/fold/threefry/family.zig:101

zig
pub fn threefryFoldFamilyFingerprint(backing_allocator: std.mem.Allocator, instance: ThreefryFold) !u64 {    var family = try randomShapeFamily(backing_allocator, "threefry_fold", instance.count_axis);    defer family.deinit();    return shape.fingerprint(family);}
Called byCallskernel.library.randomcreateThreefryFoldFamilyArtifactkernel.library.randomthreefryFoldFamilyTuningKeyprivate; no linklib.accy.src.choir.shapefingerprintkernel.library.random.baserandomShapeFamilykernel.library.randomthreefryFoldFamilyFingerprint
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/fold/threefry/family.zig:46

zig
pub fn threefryFoldFamilyTarget(allocator: std.mem.Allocator, instance: ThreefryFold) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy.kernel.random.threefry_fold_family_{d}r_{d}_{s}",        .{ instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreateThreefryFoldFamilyArtifactkernel.library.randomthreefryFoldFamilyTarget
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/fold/threefry/family.zig:84

zig
pub fn threefryFoldFamilyTuningKey(    backing_allocator: std.mem.Allocator,    device_fingerprint: u64,    instance: ThreefryFold,) !tuning.FamilyTuningKey {    const family_fingerprint = try threefryFoldFamilyFingerprint(backing_allocator, instance);    const extents = threefryFoldTuningExtents(instance);    return tuning.FamilyTuningKey.init(        device_fingerprint,        family_fingerprint,        entry.operationFingerprint(threefryFoldTuningOperation(instance)),        instance.dtype,        threefry_fold_family_version,        extents[0..],    ) orelse unreachable;}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random fold family tuning keys ...kernel.library.entryoperationFingerprintkernel.library.randomthreefryFoldFamilyFingerprintkernel.library.randomthreefryFoldTuningExtentskernel.library.randomthreefryFoldTuningOperationkernel.library.tuning.FamilyTuningKeyinitkernel.library.randomthreefryFoldFamilyTuningKey
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/threefry/family.zig:61

zig
pub fn threefryFoldRuntimeArguments(instance: ThreefryFold) ![4]choir_abi.ScalarArgument {    if (instance.samples == 0) return error.ExtentOverflowsIndexRange;    return .{        .{ .u32 = try runtimeExtentArgument(instance.count) },        .{ .u32 = instance.samples },        .{ .u32 = instance.seedLo() },        .{ .u32 = instance.seedHi() },    };}

Source: lib/accy/src/kernel/library/random/fold/threefry/family.zig:70

zig
pub fn threefryFoldShapeProfileDimensions(instance: ThreefryFold) [2]artifact_product.KernelCallShapeProfileDimension {    return .{        .{ .name = instance.count_axis, .runtime_scalar_argument_index = 0, .bounds = randomRuntimeExtentBounds() },        .{ .name = "k", .runtime_scalar_argument_index = 1, .bounds = randomRuntimeExtentBounds() },    };}
Called byCallskernel.library.randomcreateThreefryFoldFamilyArtifactkernel.library.random.baserandomRuntimeExtentBoundskernel.library.randomthreefryFoldShapeProfileDimensions
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/threefry/family.zig:76

zig
pub fn threefryFoldTuningExtents(instance: ThreefryFold) [2]u64 {    return .{ instance.count, instance.samples };}
Called byCallsNo direct callskernel.library.randomthreefryFoldFamilyTuningKeykernel.library.randomthreefryFoldTuningExtents
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/threefry/family.zig:80

zig
pub fn threefryFoldTuningOperation(instance: ThreefryFold) entry.Operation {    return .{ .random = .{ .threefry_fold = instance.rounds } };}
Called byCallsNo direct callskernel.library.randomthreefryFoldFamilyTuningKeykernel.library.randomthreefryFoldTuningOperation
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/threefry/family.zig:28

zig
pub fn threefryFoldUniformReference(rounds: u32, output_index: u32, samples: u32, key: [2]u32) f32 {    var accumulator: f32 = 0.0;    for (0..samples) |sample| {        const words = threefryBlock(rounds, .{ output_index, @intCast(sample) }, key);        for (words) |word| accumulator += uniformFromBits(word);    }    return accumulator;}
Called byCallsNo direct callerskernel.library.randomthreefryBlockkernel.library.randomuniformFromBitskernel.library.randomthreefryFoldUniformReference
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/fold/threefry/runtime.zig:86

zig
pub const ThreefryFoldRuntimeFamilyF32 = threefryFoldRuntimeFamily(.f32);

Source: lib/accy/src/kernel/library/random/fold/threefry/runtime.zig:87

zig
pub const ThreefryFoldRuntimeFamilyI32 = threefryFoldRuntimeFamily(.i32);

Source: lib/accy/src/kernel/library/random/fold/threefry/types.zig:9

zig
pub const threefry_fold_family_version: u32 = 1;

Source: lib/accy/src/kernel/library/random/key/artifact.zig:103

zig
pub fn createPhiloxKeyCounterUniformFamilyArtifact(    allocator: std.mem.Allocator,    handle: kernel.BackendHandle,    instance: PhiloxKeyCounterUniform,    options: entry.ArtifactOptions,) !kernel.OwnedKernelCallArtifact {    const target = try philoxKeyCounterUniformFamilyTarget(allocator, instance);    defer allocator.free(target);    const entry_name = try philoxKeyCounterUniformFamilyEntryName(allocator, instance);    defer allocator.free(entry_name);    const family_fingerprint = options.shape_family_fingerprint orelse try profile.philoxKeyCounterUniformFamilyFingerprint(allocator, instance);    const shape_profile_dimensions = profile.philoxKeyCounterUniformShapeProfileDimensions(instance);    const shape_profile = options.shape_profile orelse artifact_product.KernelCallShapeProfile{        .name = "philox_key_counter_uniform",        .fingerprint = family_fingerprint,        .dimensions = shape_profile_dimensions[0..],    };    var graph = switch (instance.dtype) {        .f32 => try PhiloxKeyCounterUniformRuntimeFamilyF32.buildNamed(allocator, options.limits, entry_name, instance),        .i32 => try PhiloxKeyCounterUniformRuntimeFamilyI32.buildNamed(allocator, options.limits, entry_name, instance),        else => return error.UnsupportedDType,    };    defer graph.deinit();    return kernel.createKernelCallArtifact(allocator, handle, &graph, .{        .target = target,        .version = philox_key_counter_uniform_family_version,        .format = options.format,        .kernel_plan = options.kernel_plan,        .element_count_argument = options.element_count_argument,        .shape_family_fingerprint = family_fingerprint,        .shape_profile = shape_profile,        .launch = options.launch orelse try randomFoldDerivedLaunch(instance.threads),        .runtime_scalar_argument_count = if (options.runtime_scalar_argument_count == 0) 1 else options.runtime_scalar_argument_count,        .static_arguments = options.static_arguments,    });}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random philox key family artifa...kernel.library.random.baserandomFoldDerivedLaunchkernel.library.randomphiloxKeyCounterUniformFamilyEntryNamekernel.library.randomphiloxKeyCounterUniformFamilyTargetkernel.library.randomphiloxKeyCounterUniformFamilyFingerpr...kernel.library.randomphiloxKeyCounterUniformShapeProfileDi...tiny.smggraphdeinitkernel.library.randomcreatePhiloxKeyCounterUniformFamilyAr...
Static calls · unresolved targets: 2 · external targets: 2.

Source: lib/accy/src/kernel/library/random/key/artifact.zig:31

zig
pub fn createPhiloxKeySplitFamilyArtifact(    allocator: std.mem.Allocator,    handle: kernel.BackendHandle,    instance: PhiloxKeySplit,    options: entry.ArtifactOptions,) !kernel.OwnedKernelCallArtifact {    const target = try philoxKeySplitFamilyTarget(allocator, instance);    defer allocator.free(target);    const entry_name = try philoxKeySplitFamilyEntryName(allocator, instance);    defer allocator.free(entry_name);    const family_fingerprint = options.shape_family_fingerprint orelse try profile.philoxKeySplitFamilyFingerprint(allocator, instance);    const shape_profile_dimensions = profile.philoxKeySplitShapeProfileDimensions(instance);    const shape_profile = options.shape_profile orelse artifact_product.KernelCallShapeProfile{        .name = "philox_key_split",        .fingerprint = family_fingerprint,        .dimensions = shape_profile_dimensions[0..],    };    var graph = try PhiloxKeySplitRuntimeFamily.buildNamed(allocator, options.limits, entry_name, instance);    defer graph.deinit();    return kernel.createKernelCallArtifact(allocator, handle, &graph, .{        .target = target,        .version = philox_key_split_family_version,        .format = options.format,        .kernel_plan = options.kernel_plan,        .element_count_argument = options.element_count_argument,        .shape_family_fingerprint = family_fingerprint,        .shape_profile = shape_profile,        .launch = options.launch orelse try randomFoldDerivedLaunch(instance.threads),        .runtime_scalar_argument_count = if (options.runtime_scalar_argument_count == 0) 1 else options.runtime_scalar_argument_count,        .static_arguments = options.static_arguments,    });}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random philox key family artifa...kernel.library.random.baserandomFoldDerivedLaunchkernel.library.randomphiloxKeySplitFamilyEntryNamekernel.library.randomphiloxKeySplitFamilyTargetkernel.library.randomphiloxKeySplitFamilyFingerprintkernel.library.randomphiloxKeySplitShapeProfileDimensionstiny.smggraphdeinitkernel.library.randomcreatePhiloxKeySplitFamilyArtifact
Static calls · unresolved targets: 1 · external targets: 2.

Source: lib/accy/src/kernel/library/random/key/artifact.zig:65

zig
pub fn createPhiloxKeyUniformFamilyArtifact(    allocator: std.mem.Allocator,    handle: kernel.BackendHandle,    instance: PhiloxKeyUniform,    options: entry.ArtifactOptions,) !kernel.OwnedKernelCallArtifact {    const target = try philoxKeyUniformFamilyTarget(allocator, instance);    defer allocator.free(target);    const entry_name = try philoxKeyUniformFamilyEntryName(allocator, instance);    defer allocator.free(entry_name);    const family_fingerprint = options.shape_family_fingerprint orelse try profile.philoxKeyUniformFamilyFingerprint(allocator, instance);    const shape_profile_dimensions = profile.philoxKeyUniformShapeProfileDimensions(instance);    const shape_profile = options.shape_profile orelse artifact_product.KernelCallShapeProfile{        .name = "philox_key_uniform",        .fingerprint = family_fingerprint,        .dimensions = shape_profile_dimensions[0..],    };    var graph = switch (instance.dtype) {        .f32 => try PhiloxKeyUniformRuntimeFamilyF32.buildNamed(allocator, options.limits, entry_name, instance),        .i32 => try PhiloxKeyUniformRuntimeFamilyI32.buildNamed(allocator, options.limits, entry_name, instance),        else => return error.UnsupportedDType,    };    defer graph.deinit();    return kernel.createKernelCallArtifact(allocator, handle, &graph, .{        .target = target,        .version = philox_key_uniform_family_version,        .format = options.format,        .kernel_plan = options.kernel_plan,        .element_count_argument = options.element_count_argument,        .shape_family_fingerprint = family_fingerprint,        .shape_profile = shape_profile,        .launch = options.launch orelse try randomFoldDerivedLaunch(instance.threads),        .runtime_scalar_argument_count = if (options.runtime_scalar_argument_count == 0) 1 else options.runtime_scalar_argument_count,        .static_arguments = options.static_arguments,    });}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random philox key family artifa...kernel.library.random.baserandomFoldDerivedLaunchkernel.library.randomphiloxKeyUniformFamilyEntryNamekernel.library.randomphiloxKeyUniformFamilyTargetkernel.library.randomphiloxKeyUniformFamilyFingerprintkernel.library.randomphiloxKeyUniformShapeProfileDimensionstiny.smggraphdeinitkernel.library.randomcreatePhiloxKeyUniformFamilyArtifact
Static calls · unresolved targets: 2 · external targets: 2.

Source: lib/accy/src/kernel/library/random/key/names.zig:49

zig
pub fn philoxKeyCounterUniformFamilyEntryName(allocator: std.mem.Allocator, instance: PhiloxKeyCounterUniform) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy_kernel_random_philox_key_counter_uniform_family_{d}r_{d}_{s}",        .{ instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreatePhiloxKeyCounterUniformFamilyAr...kernel.library.randomphiloxKeyCounterUniformFamilyEntryName
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/key/names.zig:41

zig
pub fn philoxKeyCounterUniformFamilyTarget(allocator: std.mem.Allocator, instance: PhiloxKeyCounterUniform) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy.kernel.random.philox_key_counter_uniform_family_{d}r_{d}_{s}",        .{ instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreatePhiloxKeyCounterUniformFamilyAr...kernel.library.randomphiloxKeyCounterUniformFamilyTarget
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/key/names.zig:17

zig
pub fn philoxKeySplitFamilyEntryName(allocator: std.mem.Allocator, instance: PhiloxKeySplit) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy_kernel_random_philox_key_split_family_{d}r_{d}_key",        .{ instance.rounds, instance.threads },    );}
Called byCallsNo direct callskernel.library.randomcreatePhiloxKeySplitFamilyArtifactkernel.library.randomphiloxKeySplitFamilyEntryName
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/key/names.zig:9

zig
pub fn philoxKeySplitFamilyTarget(allocator: std.mem.Allocator, instance: PhiloxKeySplit) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy.kernel.random.philox_key_split_family_{d}r_{d}_key",        .{ instance.rounds, instance.threads },    );}
Called byCallsNo direct callskernel.library.randomcreatePhiloxKeySplitFamilyArtifactkernel.library.randomphiloxKeySplitFamilyTarget
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/key/names.zig:33

zig
pub fn philoxKeyUniformFamilyEntryName(allocator: std.mem.Allocator, instance: PhiloxKeyUniform) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy_kernel_random_philox_key_uniform_family_{d}r_{d}_{s}",        .{ instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreatePhiloxKeyUniformFamilyArtifactkernel.library.randomphiloxKeyUniformFamilyEntryName
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/key/names.zig:25

zig
pub fn philoxKeyUniformFamilyTarget(allocator: std.mem.Allocator, instance: PhiloxKeyUniform) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy.kernel.random.philox_key_uniform_family_{d}r_{d}_{s}",        .{ instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreatePhiloxKeyUniformFamilyArtifactkernel.library.randomphiloxKeyUniformFamilyTarget
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/key/profile.zig:57

zig
pub fn philoxKeyCounterUniformFamilyFingerprint(backing_allocator: std.mem.Allocator, instance: PhiloxKeyCounterUniform) !u64 {    var family = try philoxKeyCounterUniformShapeFamily(backing_allocator, instance);    defer family.deinit();    return shape.fingerprint(family);}
Called byCallskernel.library.randomcreatePhiloxKeyCounterUniformFamilyAr...private; no linklib.accy.src.choir.shapefingerprintkernel.library.randomphiloxKeyCounterUniformShapeFamilykernel.library.randomphiloxKeyCounterUniformFamilyFingerpr...
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/key/profile.zig:123

zig
pub fn philoxKeyCounterUniformFamilySpecialization(backing_allocator: std.mem.Allocator, instance: PhiloxKeyCounterUniform) !entry.OwnedSpecialization {    var owned = entry.OwnedSpecialization.init(backing_allocator);    errdefer owned.deinit();    const lifetime_allocator = owned.allocator();    const inputs = try lifetime_allocator.alloc(entry.Shape, 2);    inputs[0] = entry.runtimeShapeScalar();    inputs[1] = entry.runtimeShapeScalar();    const outputs = try lifetime_allocator.alloc(entry.Shape, 1);    outputs[0] = try entry.runtimeShape1D(lifetime_allocator, instance.count_axis, instance.count);    owned.value = .{        .dtype = instance.dtype,        .operation = .{ .random = .{ .philox_key_counter_uniform = instance.rounds } },        .inputs = inputs,        .outputs = outputs,        .schedule = try entry.runtimeThreadBlocks1D(lifetime_allocator, "e", instance.generators(), instance.threads),    };    owned.value.launch = owned.value.schedule.?.launch();    var family = try philoxKeyCounterUniformShapeFamily(backing_allocator, instance);    errdefer family.deinit();    try owned.takeShapeFamily(&family);    return owned;}
Called byCallsNo direct callerskernel.library.OwnedSpecializationallocatorkernel.library.OwnedSpecializationdeinitkernel.library.OwnedSpecializationinitkernel.library.OwnedSpecializationtakeShapeFamilykernel.library.entryruntimeShape1D+3 morekernel.library.randomphiloxKeyCounterUniformFamilySpeciali...
Static calls · unresolved targets: 0 · external targets: 3.

Source: lib/accy/src/kernel/library/random/key/profile.zig:175

zig
pub fn philoxKeyCounterUniformInstanceFromSpecialization(specialization: entry.Specialization) ?PhiloxKeyCounterUniform {    if (!specialization.scheduleMatchesLaunch()) return null;    const operation = specialization.operation orelse return null;    const rounds = switch (operation) {        .random => |random_operation| switch (random_operation) {            .philox_key_counter_uniform => |rounds| rounds,            else => return null,        },        else => return null,    };    const dtype = specialization.dtype orelse return null;    if (!randomDTypeSupported(dtype)) return null;    if (specialization.inputs.len != 2 or specialization.outputs.len != 1) return null;    if (specialization.reductions.len != 0) return null;    if (specialization.inputs[0].axes.len != 0 or specialization.inputs[1].axes.len != 0) return null;    const output = specialization.outputs[0];    if (output.axes.len != 1) return null;    const launch = specialization.launch orelse return null;    if (launch.threadgroup[0] == 0) return null;    return .{        .count = output.axes[0].extent,        .rounds = rounds,        .dtype = dtype,        .threads = launch.threadgroup[0],        .count_axis = output.axes[0].name,    };}
Called byCallsNo direct callerskernel.library.randomrandomDTypeSupportedkernel.library.randomphiloxKeyCounterUniformInstanceFromSp...
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/key/profile.zig:29

zig
pub fn philoxKeyCounterUniformRuntimeArguments(instance: PhiloxKeyCounterUniform) ![1]choir_abi.ScalarArgument {    return .{.{ .u32 = try runtimeExtentArgument(instance.count) }};}

Source: lib/accy/src/kernel/library/random/key/profile.zig:71

zig
pub fn philoxKeyCounterUniformShapeFamily(backing_allocator: std.mem.Allocator, instance: PhiloxKeyCounterUniform) !shape.Family {    return randomShapeFamily(backing_allocator, "philox_key_counter_uniform", instance.count_axis);}
Called byCallskernel.library.randomphiloxKeyCounterUniformFamilyFingerpr...kernel.library.randomphiloxKeyCounterUniformFamilySpeciali...kernel.library.random.baserandomShapeFamilykernel.library.randomphiloxKeyCounterUniformShapeFamily
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/key/profile.zig:41

zig
pub fn philoxKeyCounterUniformShapeProfileDimensions(instance: PhiloxKeyCounterUniform) [1]artifact_product.KernelCallShapeProfileDimension {    return .{.{ .name = instance.count_axis, .runtime_scalar_argument_index = 0, .bounds = randomRuntimeExtentBounds() }};}
Called byCallskernel.library.randomcreatePhiloxKeyCounterUniformFamilyAr...kernel.library.random.baserandomRuntimeExtentBoundskernel.library.randomphiloxKeyCounterUniformShapeProfileDi...
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/key/profile.zig:45

zig
pub fn philoxKeySplitFamilyFingerprint(backing_allocator: std.mem.Allocator, instance: PhiloxKeySplit) !u64 {    var family = try philoxKeySplitShapeFamily(backing_allocator, instance);    defer family.deinit();    return shape.fingerprint(family);}
Called byCallskernel.library.randomcreatePhiloxKeySplitFamilyArtifactprivate; no linklib.accy.src.choir.shapefingerprintkernel.library.randomphiloxKeySplitShapeFamilykernel.library.randomphiloxKeySplitFamilyFingerprint
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/key/profile.zig:75

zig
pub fn philoxKeySplitFamilySpecialization(backing_allocator: std.mem.Allocator, instance: PhiloxKeySplit) !entry.OwnedSpecialization {    var owned = entry.OwnedSpecialization.init(backing_allocator);    errdefer owned.deinit();    const lifetime_allocator = owned.allocator();    const inputs = try lifetime_allocator.alloc(entry.Shape, 1);    inputs[0] = entry.runtimeShapeScalar();    const outputs = try lifetime_allocator.alloc(entry.Shape, 1);    outputs[0] = try entry.runtimeShape1D(lifetime_allocator, instance.count_axis, instance.count);    owned.value = .{        .dtype = .key,        .operation = .{ .random = .{ .philox_key_split = instance.rounds } },        .inputs = inputs,        .outputs = outputs,        .schedule = try entry.runtimeThreadBlocks1D(lifetime_allocator, "e", instance.generators(), instance.threads),    };    owned.value.launch = owned.value.schedule.?.launch();    var family = try philoxKeySplitShapeFamily(backing_allocator, instance);    errdefer family.deinit();    try owned.takeShapeFamily(&family);    return owned;}
Called byCallsNo direct callerskernel.library.OwnedSpecializationallocatorkernel.library.OwnedSpecializationdeinitkernel.library.OwnedSpecializationinitkernel.library.OwnedSpecializationtakeShapeFamilykernel.library.entryruntimeShape1D+3 morekernel.library.randomphiloxKeySplitFamilySpecialization
Static calls · unresolved targets: 0 · external targets: 3.

Source: lib/accy/src/kernel/library/random/key/profile.zig:148

zig
pub fn philoxKeySplitInstanceFromSpecialization(specialization: entry.Specialization) ?PhiloxKeySplit {    if (!specialization.scheduleMatchesLaunch()) return null;    const operation = specialization.operation orelse return null;    const rounds = switch (operation) {        .random => |random_operation| switch (random_operation) {            .philox_key_split => |rounds| rounds,            else => return null,        },        else => return null,    };    const dtype = specialization.dtype orelse return null;    if (dtype != .key) return null;    if (specialization.inputs.len != 1 or specialization.outputs.len != 1) return null;    if (specialization.inputs[0].axes.len != 0) return null;    if (specialization.reductions.len != 0) return null;    const output = specialization.outputs[0];    if (output.axes.len != 1) return null;    const launch = specialization.launch orelse return null;    if (launch.threadgroup[0] == 0) return null;    return .{        .count = output.axes[0].extent,        .rounds = rounds,        .threads = launch.threadgroup[0],        .count_axis = output.axes[0].name,    };}

Source: lib/accy/src/kernel/library/random/key/profile.zig:21

zig
pub fn philoxKeySplitRuntimeArguments(instance: PhiloxKeySplit) ![1]choir_abi.ScalarArgument {    return .{.{ .u32 = try runtimeExtentArgument(instance.count) }};}

Source: lib/accy/src/kernel/library/random/key/profile.zig:63

zig
pub fn philoxKeySplitShapeFamily(backing_allocator: std.mem.Allocator, instance: PhiloxKeySplit) !shape.Family {    return randomShapeFamily(backing_allocator, "philox_key_split", instance.count_axis);}
Called byCallskernel.library.randomphiloxKeySplitFamilyFingerprintkernel.library.randomphiloxKeySplitFamilySpecializationkernel.library.random.baserandomShapeFamilykernel.library.randomphiloxKeySplitShapeFamily
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/key/profile.zig:33

zig
pub fn philoxKeySplitShapeProfileDimensions(instance: PhiloxKeySplit) [1]artifact_product.KernelCallShapeProfileDimension {    return .{.{ .name = instance.count_axis, .runtime_scalar_argument_index = 0, .bounds = randomRuntimeExtentBounds() }};}
Called byCallskernel.library.randomcreatePhiloxKeySplitFamilyArtifactkernel.library.random.baserandomRuntimeExtentBoundskernel.library.randomphiloxKeySplitShapeProfileDimensions
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/key/profile.zig:51

zig
pub fn philoxKeyUniformFamilyFingerprint(backing_allocator: std.mem.Allocator, instance: PhiloxKeyUniform) !u64 {    var family = try philoxKeyUniformShapeFamily(backing_allocator, instance);    defer family.deinit();    return shape.fingerprint(family);}
Called byCallskernel.library.randomcreatePhiloxKeyUniformFamilyArtifactprivate; no linklib.accy.src.choir.shapefingerprintkernel.library.randomphiloxKeyUniformShapeFamilykernel.library.randomphiloxKeyUniformFamilyFingerprint
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/key/profile.zig:99

zig
pub fn philoxKeyUniformFamilySpecialization(backing_allocator: std.mem.Allocator, instance: PhiloxKeyUniform) !entry.OwnedSpecialization {    var owned = entry.OwnedSpecialization.init(backing_allocator);    errdefer owned.deinit();    const lifetime_allocator = owned.allocator();    const inputs = try lifetime_allocator.alloc(entry.Shape, 1);    inputs[0] = try entry.runtimeShape1D(lifetime_allocator, instance.count_axis, instance.count);    const outputs = try lifetime_allocator.alloc(entry.Shape, 1);    outputs[0] = try entry.runtimeShape1D(lifetime_allocator, instance.count_axis, instance.count);    owned.value = .{        .dtype = instance.dtype,        .operation = .{ .random = .{ .philox_key_uniform = instance.rounds } },        .inputs = inputs,        .outputs = outputs,        .schedule = try entry.runtimeThreadBlocks1D(lifetime_allocator, "e", instance.generators(), instance.threads),    };    owned.value.launch = owned.value.schedule.?.launch();    var family = try philoxKeyUniformShapeFamily(backing_allocator, instance);    errdefer family.deinit();    try owned.takeShapeFamily(&family);    return owned;}
Called byCallsNo direct callerskernel.library.OwnedSpecializationallocatorkernel.library.OwnedSpecializationdeinitkernel.library.OwnedSpecializationinitkernel.library.OwnedSpecializationtakeShapeFamilykernel.library.entryruntimeShape1D+2 morekernel.library.randomphiloxKeyUniformFamilySpecialization
Static calls · unresolved targets: 0 · external targets: 3.

Source: lib/accy/src/kernel/library/random/key/profile.zig:203

zig
pub fn philoxKeyUniformInstanceFromSpecialization(specialization: entry.Specialization) ?PhiloxKeyUniform {    if (!specialization.scheduleMatchesLaunch()) return null;    const operation = specialization.operation orelse return null;    const rounds = switch (operation) {        .random => |random_operation| switch (random_operation) {            .philox_key_uniform => |rounds| rounds,            else => return null,        },        else => return null,    };    const dtype = specialization.dtype orelse return null;    if (!randomDTypeSupported(dtype)) return null;    if (specialization.inputs.len != 1 or specialization.outputs.len != 1) return null;    if (specialization.reductions.len != 0) return null;    const input = specialization.inputs[0];    const output = specialization.outputs[0];    if (input.axes.len != 1 or output.axes.len != 1) return null;    if (input.axes[0].extent != output.axes[0].extent) return null;    const launch = specialization.launch orelse return null;    if (launch.threadgroup[0] == 0) return null;    return .{        .count = output.axes[0].extent,        .rounds = rounds,        .dtype = dtype,        .threads = launch.threadgroup[0],        .count_axis = output.axes[0].name,    };}
Called byCallsNo direct callerskernel.library.randomrandomDTypeSupportedkernel.library.randomphiloxKeyUniformInstanceFromSpecializ...
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/key/profile.zig:25

zig
pub fn philoxKeyUniformRuntimeArguments(instance: PhiloxKeyUniform) ![1]choir_abi.ScalarArgument {    return .{.{ .u32 = try runtimeExtentArgument(instance.count) }};}

Source: lib/accy/src/kernel/library/random/key/profile.zig:67

zig
pub fn philoxKeyUniformShapeFamily(backing_allocator: std.mem.Allocator, instance: PhiloxKeyUniform) !shape.Family {    return randomShapeFamily(backing_allocator, "philox_key_uniform", instance.count_axis);}
Called byCallskernel.library.randomphiloxKeyUniformFamilyFingerprintkernel.library.randomphiloxKeyUniformFamilySpecializationkernel.library.random.baserandomShapeFamilykernel.library.randomphiloxKeyUniformShapeFamily
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/key/profile.zig:37

zig
pub fn philoxKeyUniformShapeProfileDimensions(instance: PhiloxKeyUniform) [1]artifact_product.KernelCallShapeProfileDimension {    return .{.{ .name = instance.count_axis, .runtime_scalar_argument_index = 0, .bounds = randomRuntimeExtentBounds() }};}
Called byCallskernel.library.randomcreatePhiloxKeyUniformFamilyArtifactkernel.library.random.baserandomRuntimeExtentBoundskernel.library.randomphiloxKeyUniformShapeProfileDimensions
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/key/runtime.zig:155

zig
pub const PhiloxKeyCounterUniformRuntimeFamilyF32 = philoxKeyCounterUniformRuntimeFamily(.f32);

Source: lib/accy/src/kernel/library/random/key/runtime.zig:156

zig
pub const PhiloxKeyCounterUniformRuntimeFamilyI32 = philoxKeyCounterUniformRuntimeFamily(.i32);

Source: lib/accy/src/kernel/library/random/key/runtime.zig:87

zig
pub const PhiloxKeySplitRuntimeFamily = kernel.logical.Family(.{    .name = "accy_kernel_random_philox_key_split_runtime_key",    .parameters = .{        .dst = kernel.dynamicBuffer(.key),        .key = kernel.dynamicBuffer(.key),        .count = kernel.scalar(.i32),    },    .Instance = PhiloxKeySplit,    .schedule = philoxKeySplitSchedule,    .body = philox_key_split_runtime_family_body,});

Source: lib/accy/src/kernel/library/random/key/runtime.zig:125

zig
pub const PhiloxKeyUniformRuntimeFamilyF32 = philoxKeyUniformRuntimeFamily(.f32);

Source: lib/accy/src/kernel/library/random/key/runtime.zig:126

zig
pub const PhiloxKeyUniformRuntimeFamilyI32 = philoxKeyUniformRuntimeFamily(.i32);

Source: lib/accy/src/kernel/library/random/key/types.zig:46

zig
pub const philox_key_counter_uniform_family_version: u32 = 1;

Source: lib/accy/src/kernel/library/random/key/types.zig:44

zig
pub const philox_key_split_family_version: u32 = 1;

Source: lib/accy/src/kernel/library/random/key/types.zig:45

zig
pub const philox_key_uniform_family_version: u32 = 1;

Source: lib/accy/src/kernel/library/random/philox/artifact.zig:24

zig
pub fn createPhiloxFamilyArtifact(    allocator: std.mem.Allocator,    handle: kernel.BackendHandle,    instance: Philox,    options: entry.ArtifactOptions,) !kernel.OwnedKernelCallArtifact {    const target = try philoxFamilyTarget(allocator, instance);    defer allocator.free(target);    const entry_name = try philoxFamilyEntryName(allocator, instance);    defer allocator.free(entry_name);    const family_fingerprint = options.shape_family_fingerprint orelse try philoxFamilyFingerprint(allocator, instance);    const shape_profile_dimensions = philoxShapeProfileDimensions(instance);    const shape_profile = options.shape_profile orelse artifact_product.KernelCallShapeProfile{        .name = "philox",        .fingerprint = family_fingerprint,        .dimensions = shape_profile_dimensions[0..],    };    var graph = switch (instance.dtype) {        .f32 => try PhiloxRuntimeFamilyF32.buildNamed(allocator, options.limits, entry_name, instance),        .i32 => try PhiloxRuntimeFamilyI32.buildNamed(allocator, options.limits, entry_name, instance),        else => return error.UnsupportedDType,    };    defer graph.deinit();    return kernel.createKernelCallArtifact(allocator, handle, &graph, .{        .target = target,        .version = philox_family_version,        .format = options.format,        .kernel_plan = options.kernel_plan,        .element_count_argument = options.element_count_argument,        .shape_family_fingerprint = family_fingerprint,        .shape_profile = shape_profile,        .launch = options.launch orelse try randomDerivedLaunch(instance.threads, philox_lanes),        .runtime_scalar_argument_count = if (options.runtime_scalar_argument_count == 0) 3 else options.runtime_scalar_argument_count,        .static_arguments = options.static_arguments,    });}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random philox family artifact c...kernel.library.random.baserandomDerivedLaunchkernel.library.randomphiloxFamilyEntryNamekernel.library.randomphiloxFamilyTargetkernel.library.randomphiloxFamilyFingerprintkernel.library.randomphiloxShapeProfileDimensionstiny.smggraphdeinitkernel.library.randomcreatePhiloxFamilyArtifact
Static calls · unresolved targets: 2 · external targets: 2.

Source: lib/accy/src/kernel/library/random/philox/geometry.zig:15

zig
pub fn philoxThreadCandidatesForCount(count: u64) geometry_mod.Thread1DCandidates {    return geometry_mod.threadCandidatesForExtent(ceilDiv(count, philox_lanes), random_thread_caps);}

Source: lib/accy/src/kernel/library/random/philox/geometry.zig:11

zig
pub fn philoxThreadsForCount(count: u64) u32 {    return geometry_mod.threadsForExtent(ceilDiv(count, philox_lanes), random_thread_caps);}

Source: lib/accy/src/kernel/library/random/philox/names.zig:31

zig
pub fn philoxFamilyEntryName(allocator: std.mem.Allocator, instance: Philox) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy_kernel_random_philox_family_{d}r_{d}_{s}",        .{ instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreatePhiloxFamilyArtifactkernel.library.randomphiloxFamilyEntryName
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/philox/names.zig:23

zig
pub fn philoxFamilyTarget(allocator: std.mem.Allocator, instance: Philox) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy.kernel.random.philox_family_{d}r_{d}_{s}",        .{ instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreatePhiloxFamilyArtifacttest sourcelib.accy.src.kernel.library.random.testtest: random family instance identity...kernel.library.randomphiloxFamilyTarget
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/philox/names.zig:15

zig
pub fn philoxInstanceEntryName(allocator: std.mem.Allocator, instance: Philox) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy_kernel_random_philox{d}_{d}r_{d}_{s}",        .{ instance.count, instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callstest sourcelib.accy.src.kernel.library.random.testtest: random family instance identity...kernel.library.randomphiloxInstanceEntryName
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/philox/names.zig:7

zig
pub fn philoxInstanceTarget(allocator: std.mem.Allocator, instance: Philox) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy.kernel.random.philox{d}_{d}r_{d}_{s}",        .{ instance.count, instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callstest sourcelib.accy.src.kernel.library.random.testtest: random family instance identity...kernel.library.randomphiloxInstanceTarget
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/philox/profile.zig:33

zig
pub fn philoxFamilyFingerprint(backing_allocator: std.mem.Allocator, instance: Philox) !u64 {    var family = try philoxShapeFamily(backing_allocator, instance);    defer family.deinit();    return shape.fingerprint(family);}
Called byCallskernel.library.randomcreatePhiloxFamilyArtifactkernel.library.randomphiloxFamilyTuningKeyprivate; no linklib.accy.src.choir.shapefingerprintkernel.library.randomphiloxShapeFamilykernel.library.randomphiloxFamilyFingerprint
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/philox/profile.zig:43

zig
pub fn philoxFamilySpecialization(backing_allocator: std.mem.Allocator, instance: Philox) !entry.OwnedSpecialization {    var owned = entry.OwnedSpecialization.init(backing_allocator);    errdefer owned.deinit();    const lifetime_allocator = owned.allocator();    const outputs = try lifetime_allocator.alloc(entry.Shape, 1);    outputs[0] = try entry.runtimeShape1D(lifetime_allocator, instance.count_axis, instance.count);    owned.value = .{        .dtype = instance.dtype,        .operation = .{ .random = .{ .philox = instance.rounds } },        .inputs = &.{},        .outputs = outputs,        .schedule = try entry.runtimeThreadBlocks1D(lifetime_allocator, "e", instance.generators(), instance.threads),    };    owned.value.launch = owned.value.schedule.?.launch();    var family = try philoxShapeFamily(backing_allocator, instance);    errdefer family.deinit();    try owned.takeShapeFamily(&family);    return owned;}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random instances round-trip thr...kernel.library.OwnedSpecializationallocatorkernel.library.OwnedSpecializationdeinitkernel.library.OwnedSpecializationinitkernel.library.OwnedSpecializationtakeShapeFamilykernel.library.entryruntimeShape1D+2 morekernel.library.randomphiloxFamilySpecialization
Static calls · unresolved targets: 0 · external targets: 3.

Source: lib/accy/src/kernel/library/random/philox/profile.zig:65

zig
pub fn philoxInstanceFromSpecialization(specialization: entry.Specialization) ?Philox {    if (!specialization.scheduleMatchesLaunch()) return null;    const operation = specialization.operation orelse return null;    const rounds = switch (operation) {        .random => |random_operation| switch (random_operation) {            .philox => |rounds| rounds,            else => return null,        },        else => return null,    };    const dtype = specialization.dtype orelse return null;    if (!randomDTypeSupported(dtype)) return null;    if (specialization.inputs.len != 0 or specialization.outputs.len != 1) return null;    if (specialization.reductions.len != 0) return null;    const output = specialization.outputs[0];    if (output.axes.len != 1) return null;    const launch = specialization.launch orelse return null;    if (launch.threadgroup[0] == 0) return null;    return .{        .count = output.axes[0].extent,        .rounds = rounds,        .dtype = dtype,        .threads = launch.threadgroup[0],        .count_axis = output.axes[0].name,    };}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random instances round-trip thr...test sourcelib.accy.src.kernel.library.random.testtest: random squares family artifact ...kernel.library.randomrandomDTypeSupportedkernel.library.randomphiloxInstanceFromSpecialization
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/philox/profile.zig:19

zig
pub fn philoxRuntimeArguments(instance: Philox) ![3]choir_abi.ScalarArgument {    return .{        .{ .u32 = try runtimeExtentArgument(instance.count) },        .{ .u32 = instance.seedLo() },        .{ .u32 = instance.seedHi() },    };}

Source: lib/accy/src/kernel/library/random/philox/profile.zig:39

zig
pub fn philoxShapeFamily(backing_allocator: std.mem.Allocator, instance: Philox) !shape.Family {    return randomShapeFamily(backing_allocator, "philox", instance.count_axis);}
Called byCallskernel.library.randomphiloxFamilyFingerprintkernel.library.randomphiloxFamilySpecializationkernel.library.random.baserandomShapeFamilykernel.library.randomphiloxShapeFamily
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/philox/profile.zig:27

zig
pub fn philoxShapeProfileDimensions(instance: Philox) [1]artifact_product.KernelCallShapeProfileDimension {    return .{        .{ .name = instance.count_axis, .runtime_scalar_argument_index = 0, .bounds = randomRuntimeExtentBounds() },    };}
Called byCallskernel.library.randomcreatePhiloxFamilyArtifactkernel.library.random.baserandomRuntimeExtentBoundskernel.library.randomphiloxShapeProfileDimensions
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/philox/runtime.zig:65

zig
pub const PhiloxRuntimeFamilyF32 = philoxRuntimeFamily(.f32);

Source: lib/accy/src/kernel/library/random/philox/runtime.zig:66

zig
pub const PhiloxRuntimeFamilyI32 = philoxRuntimeFamily(.i32);

Source: lib/accy/src/kernel/library/random/philox/static.zig:88

zig
pub const Philox8F32 = philoxEntry(.{ .count = 8, .threads = 2 });

Source: lib/accy/src/kernel/library/random/philox/static.zig:77

zig
pub fn philoxEntry(comptime spec: Philox) type {    return entry.Entry(philoxProgram(spec), .{        .target = std.fmt.comptimePrint(            "accy.kernel.random.philox{}_{}r_{}_{s}",            .{ spec.count, spec.rounds, spec.threads, spec.dtype.name() },        ),        .layer = .logical,        .category = .random,        .specialization = philoxSpecialization(spec),    });}
Called byCallsNo direct callerskernel.library.entryEntryprivate sourcelib.accy.src.kernel.library.random.philox.staticphiloxProgramprivate sourcelib.accy.src.kernel.library.random.philox.staticphiloxSpecializationkernel.library.randomphiloxEntry
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/philox/tuning.zig:22

zig
pub fn philoxFamilyTuningKey(    backing_allocator: std.mem.Allocator,    device_fingerprint: u64,    instance: Philox,) !tuning.FamilyTuningKey {    const family_fingerprint = try philoxFamilyFingerprint(backing_allocator, instance);    const extents = philoxTuningExtents(instance);    return tuning.FamilyTuningKey.init(        device_fingerprint,        family_fingerprint,        entry.operationFingerprint(philoxTuningOperation(instance)),        instance.dtype,        philox_family_version,        extents[0..],    ) orelse unreachable;}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random family tuning keys disti...test sourcelib.accy.src.kernel.library.random.testtest: random fold family tuning keys ...kernel.library.entryoperationFingerprintkernel.library.randomphiloxFamilyFingerprintkernel.library.randomphiloxTuningExtentskernel.library.randomphiloxTuningOperationkernel.library.tuning.FamilyTuningKeyinitkernel.library.randomphiloxFamilyTuningKey
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/philox/tuning.zig:14

zig
pub fn philoxTuningExtents(instance: Philox) [1]u64 {    return .{instance.count};}
Called byCallsNo direct callskernel.library.randomphiloxFamilyTuningKeykernel.library.randomphiloxTuningExtents
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/philox/tuning.zig:18

zig
pub fn philoxTuningOperation(instance: Philox) entry.Operation {    return .{ .random = .{ .philox = instance.rounds } };}
Called byCallsNo direct callskernel.library.randomphiloxFamilyTuningKeykernel.library.randomphiloxTuningOperation
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/philox/types.zig:32

zig
pub const philox_family_version: u32 = 1;

Source: lib/accy/src/kernel/library/random/squares/artifact.zig:21

zig
pub fn createSquaresFamilyArtifact(    allocator: std.mem.Allocator,    handle: kernel.BackendHandle,    instance: Squares,    options: entry.ArtifactOptions,) !kernel.OwnedKernelCallArtifact {    const target = try squaresFamilyTarget(allocator, instance);    defer allocator.free(target);    const entry_name = try squaresFamilyEntryName(allocator, instance);    defer allocator.free(entry_name);    const family_fingerprint = options.shape_family_fingerprint orelse try squaresFamilyFingerprint(allocator, instance);    const shape_profile_dimensions = squaresShapeProfileDimensions(instance);    const shape_profile = options.shape_profile orelse artifact_product.KernelCallShapeProfile{        .name = "squares",        .fingerprint = family_fingerprint,        .dimensions = shape_profile_dimensions[0..],    };    var graph = switch (instance.dtype) {        .f32 => try SquaresRuntimeFamilyF32.buildNamed(allocator, options.limits, entry_name, instance),        .i32 => try SquaresRuntimeFamilyI32.buildNamed(allocator, options.limits, entry_name, instance),        else => return error.UnsupportedDType,    };    defer graph.deinit();    return kernel.createKernelCallArtifact(allocator, handle, &graph, .{        .target = target,        .version = squares_family_version,        .format = options.format,        .kernel_plan = options.kernel_plan,        .element_count_argument = options.element_count_argument,        .shape_family_fingerprint = family_fingerprint,        .shape_profile = shape_profile,        .launch = options.launch orelse try randomFoldDerivedLaunch(instance.threads),        .runtime_scalar_argument_count = if (options.runtime_scalar_argument_count == 0) 3 else options.runtime_scalar_argument_count,        .static_arguments = options.static_arguments,    });}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random squares family artifact ...kernel.library.random.baserandomFoldDerivedLaunchkernel.library.randomsquaresFamilyEntryNamekernel.library.randomsquaresFamilyTargetkernel.library.randomsquaresFamilyFingerprintkernel.library.randomsquaresShapeProfileDimensionstiny.smggraphdeinitkernel.library.randomcreateSquaresFamilyArtifact
Static calls · unresolved targets: 2 · external targets: 2.

Source: lib/accy/src/kernel/library/random/squares/geometry.zig:12

zig
pub fn squaresThreadCandidatesForCount(count: u64) geometry_mod.Thread1DCandidates {    return geometry_mod.threadCandidatesForExtent(count, random_thread_caps);}

Source: lib/accy/src/kernel/library/random/squares/geometry.zig:8

zig
pub fn squaresThreadsForCount(count: u64) u32 {    return geometry_mod.threadsForExtent(count, random_thread_caps);}

Source: lib/accy/src/kernel/library/random/squares/names.zig:15

zig
pub fn squaresFamilyEntryName(allocator: std.mem.Allocator, instance: Squares) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy_kernel_random_squares_family_{d}_{s}",        .{ instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreateSquaresFamilyArtifactkernel.library.randomsquaresFamilyEntryName
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/squares/names.zig:7

zig
pub fn squaresFamilyTarget(allocator: std.mem.Allocator, instance: Squares) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy.kernel.random.squares_family_{d}_{s}",        .{ instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreateSquaresFamilyArtifactkernel.library.randomsquaresFamilyTarget
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/squares/profile.zig:33

zig
pub fn squaresFamilyFingerprint(backing_allocator: std.mem.Allocator, instance: Squares) !u64 {    var family = try squaresShapeFamily(backing_allocator, instance);    defer family.deinit();    return shape.fingerprint(family);}
Called byCallskernel.library.randomcreateSquaresFamilyArtifactkernel.library.randomsquaresFamilyTuningKeyprivate; no linklib.accy.src.choir.shapefingerprintkernel.library.randomsquaresShapeFamilykernel.library.randomsquaresFamilyFingerprint
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/squares/profile.zig:43

zig
pub fn squaresFamilySpecialization(backing_allocator: std.mem.Allocator, instance: Squares) !entry.OwnedSpecialization {    var owned = entry.OwnedSpecialization.init(backing_allocator);    errdefer owned.deinit();    const lifetime_allocator = owned.allocator();    const outputs = try lifetime_allocator.alloc(entry.Shape, 1);    outputs[0] = try entry.runtimeShape1D(lifetime_allocator, instance.count_axis, instance.count);    owned.value = .{        .dtype = instance.dtype,        .operation = .{ .random = .squares },        .inputs = &.{},        .outputs = outputs,        .schedule = try entry.runtimeThreadBlocks1D(lifetime_allocator, "e", instance.generators(), instance.threads),    };    owned.value.launch = owned.value.schedule.?.launch();    var family = try squaresShapeFamily(backing_allocator, instance);    errdefer family.deinit();    try owned.takeShapeFamily(&family);    return owned;}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random squares family artifact ...kernel.library.OwnedSpecializationallocatorkernel.library.OwnedSpecializationdeinitkernel.library.OwnedSpecializationinitkernel.library.OwnedSpecializationtakeShapeFamilykernel.library.entryruntimeShape1D+2 morekernel.library.randomsquaresFamilySpecialization
Static calls · unresolved targets: 0 · external targets: 3.

Source: lib/accy/src/kernel/library/random/squares/profile.zig:65

zig
pub fn squaresInstanceFromSpecialization(specialization: entry.Specialization) ?Squares {    if (!specialization.scheduleMatchesLaunch()) return null;    const operation = specialization.operation orelse return null;    switch (operation) {        .random => |random_operation| switch (random_operation) {            .squares => {},            else => return null,        },        else => return null,    }    const dtype = specialization.dtype orelse return null;    if (!randomDTypeSupported(dtype)) return null;    if (specialization.inputs.len != 0 or specialization.outputs.len != 1) return null;    if (specialization.reductions.len != 0) return null;    const output = specialization.outputs[0];    if (output.axes.len != 1) return null;    const launch = specialization.launch orelse return null;    if (launch.threadgroup[0] == 0) return null;    return .{        .count = output.axes[0].extent,        .dtype = dtype,        .threads = launch.threadgroup[0],        .count_axis = output.axes[0].name,    };}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random squares family artifact ...kernel.library.randomrandomDTypeSupportedkernel.library.randomsquaresInstanceFromSpecialization
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/squares/profile.zig:19

zig
pub fn squaresRuntimeArguments(instance: Squares) ![3]choir_abi.ScalarArgument {    return .{        .{ .u32 = try runtimeExtentArgument(instance.count) },        .{ .u32 = instance.keyLo() },        .{ .u32 = instance.keyHi() },    };}

Source: lib/accy/src/kernel/library/random/squares/profile.zig:39

zig
pub fn squaresShapeFamily(backing_allocator: std.mem.Allocator, instance: Squares) !shape.Family {    return randomShapeFamily(backing_allocator, "squares", instance.count_axis);}
Called byCallskernel.library.randomsquaresFamilyFingerprintkernel.library.randomsquaresFamilySpecializationkernel.library.random.baserandomShapeFamilykernel.library.randomsquaresShapeFamily
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/squares/profile.zig:27

zig
pub fn squaresShapeProfileDimensions(instance: Squares) [1]artifact_product.KernelCallShapeProfileDimension {    return .{        .{ .name = instance.count_axis, .runtime_scalar_argument_index = 0, .bounds = randomRuntimeExtentBounds() },    };}
Called byCallskernel.library.randomcreateSquaresFamilyArtifactkernel.library.random.baserandomRuntimeExtentBoundskernel.library.randomsquaresShapeProfileDimensions
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/squares/runtime.zig:68

zig
pub const SquaresRuntimeFamilyF32 = squaresRuntimeFamily(.f32);

Source: lib/accy/src/kernel/library/random/squares/runtime.zig:69

zig
pub const SquaresRuntimeFamilyI32 = squaresRuntimeFamily(.i32);

Source: lib/accy/src/kernel/library/random/squares/tuning.zig:23

zig
pub fn squaresFamilyTuningKey(    backing_allocator: std.mem.Allocator,    device_fingerprint: u64,    instance: Squares,) !tuning.FamilyTuningKey {    const family_fingerprint = try squaresFamilyFingerprint(backing_allocator, instance);    const extents = squaresTuningExtents(instance);    return tuning.FamilyTuningKey.init(        device_fingerprint,        family_fingerprint,        entry.operationFingerprint(squaresTuningOperation(instance)),        instance.dtype,        squares_family_version,        extents[0..],    ) orelse unreachable;}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random family tuning keys disti...kernel.library.entryoperationFingerprintkernel.library.randomsquaresFamilyFingerprintkernel.library.randomsquaresTuningExtentskernel.library.randomsquaresTuningOperationkernel.library.tuning.FamilyTuningKeyinitkernel.library.randomsquaresFamilyTuningKey
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/squares/tuning.zig:14

zig
pub fn squaresTuningExtents(instance: Squares) [1]u64 {    return .{instance.count};}
Called byCallsNo direct callskernel.library.randomsquaresFamilyTuningKeykernel.library.randomsquaresTuningExtents
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/squares/tuning.zig:18

zig
pub fn squaresTuningOperation(instance: Squares) entry.Operation {    _ = instance;    return .{ .random = .squares };}
Called byCallsNo direct callskernel.library.randomsquaresFamilyTuningKeykernel.library.randomsquaresTuningOperation
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/squares/types.zig:9

zig
pub const squares_family_version: u32 = 1;

Source: lib/accy/src/kernel/library/random/threefry/artifact.zig:24

zig
pub fn createThreefryFamilyArtifact(    allocator: std.mem.Allocator,    handle: kernel.BackendHandle,    instance: Threefry,    options: entry.ArtifactOptions,) !kernel.OwnedKernelCallArtifact {    const target = try threefryFamilyTarget(allocator, instance);    defer allocator.free(target);    const entry_name = try threefryFamilyEntryName(allocator, instance);    defer allocator.free(entry_name);    const family_fingerprint = options.shape_family_fingerprint orelse try threefryFamilyFingerprint(allocator, instance);    const shape_profile_dimensions = threefryShapeProfileDimensions(instance);    const shape_profile = options.shape_profile orelse artifact_product.KernelCallShapeProfile{        .name = "threefry",        .fingerprint = family_fingerprint,        .dimensions = shape_profile_dimensions[0..],    };    var graph = switch (instance.dtype) {        .f32 => try ThreefryRuntimeFamilyF32.buildNamed(allocator, options.limits, entry_name, instance),        .i32 => try ThreefryRuntimeFamilyI32.buildNamed(allocator, options.limits, entry_name, instance),        else => return error.UnsupportedDType,    };    defer graph.deinit();    return kernel.createKernelCallArtifact(allocator, handle, &graph, .{        .target = target,        .version = threefry_family_version,        .format = options.format,        .kernel_plan = options.kernel_plan,        .element_count_argument = options.element_count_argument,        .shape_family_fingerprint = family_fingerprint,        .shape_profile = shape_profile,        .launch = options.launch orelse try randomDerivedLaunch(instance.threads, threefry_lanes),        .runtime_scalar_argument_count = if (options.runtime_scalar_argument_count == 0) 3 else options.runtime_scalar_argument_count,        .static_arguments = options.static_arguments,    });}
Called byCallsNo direct callerskernel.library.random.baserandomDerivedLaunchkernel.library.randomthreefryFamilyEntryNamekernel.library.randomthreefryFamilyTargetkernel.library.randomthreefryFamilyFingerprintkernel.library.randomthreefryShapeProfileDimensionstiny.smggraphdeinitkernel.library.randomcreateThreefryFamilyArtifact
Static calls · unresolved targets: 2 · external targets: 2.

Source: lib/accy/src/kernel/library/random/threefry/geometry.zig:15

zig
pub fn threefryThreadCandidatesForCount(count: u64) geometry_mod.Thread1DCandidates {    return geometry_mod.threadCandidatesForExtent(ceilDiv(count, threefry_lanes), random_thread_caps);}

Source: lib/accy/src/kernel/library/random/threefry/geometry.zig:11

zig
pub fn threefryThreadsForCount(count: u64) u32 {    return geometry_mod.threadsForExtent(ceilDiv(count, threefry_lanes), random_thread_caps);}

Source: lib/accy/src/kernel/library/random/threefry/names.zig:31

zig
pub fn threefryFamilyEntryName(allocator: std.mem.Allocator, instance: Threefry) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy_kernel_random_threefry_family_{d}r_{d}_{s}",        .{ instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callskernel.library.randomcreateThreefryFamilyArtifactkernel.library.randomthreefryFamilyEntryName
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/threefry/names.zig:23

zig
pub fn threefryFamilyTarget(allocator: std.mem.Allocator, instance: Threefry) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy.kernel.random.threefry_family_{d}r_{d}_{s}",        .{ instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callstest sourcelib.accy.src.kernel.library.random.testtest: random family instance identity...kernel.library.randomcreateThreefryFamilyArtifactkernel.library.randomthreefryFamilyTarget
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/threefry/names.zig:15

zig
pub fn threefryInstanceEntryName(allocator: std.mem.Allocator, instance: Threefry) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy_kernel_random_threefry{d}_{d}r_{d}_{s}",        .{ instance.count, instance.rounds, instance.threads, instance.dtype.name() },    );}

Source: lib/accy/src/kernel/library/random/threefry/names.zig:7

zig
pub fn threefryInstanceTarget(allocator: std.mem.Allocator, instance: Threefry) ![]u8 {    return std.fmt.allocPrint(        allocator,        "accy.kernel.random.threefry{d}_{d}r_{d}_{s}",        .{ instance.count, instance.rounds, instance.threads, instance.dtype.name() },    );}
Called byCallsNo direct callstest sourcelib.accy.src.kernel.library.random.testtest: random family instance identity...kernel.library.randomthreefryInstanceTarget
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/threefry/profile.zig:33

zig
pub fn threefryFamilyFingerprint(backing_allocator: std.mem.Allocator, instance: Threefry) !u64 {    var family = try threefryShapeFamily(backing_allocator, instance);    defer family.deinit();    return shape.fingerprint(family);}
Called byCallskernel.library.randomcreateThreefryFamilyArtifactkernel.library.randomthreefryFamilyTuningKeyprivate; no linklib.accy.src.choir.shapefingerprintkernel.library.randomthreefryShapeFamilykernel.library.randomthreefryFamilyFingerprint
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/threefry/profile.zig:43

zig
pub fn threefryFamilySpecialization(backing_allocator: std.mem.Allocator, instance: Threefry) !entry.OwnedSpecialization {    var owned = entry.OwnedSpecialization.init(backing_allocator);    errdefer owned.deinit();    const lifetime_allocator = owned.allocator();    const outputs = try lifetime_allocator.alloc(entry.Shape, 1);    outputs[0] = try entry.runtimeShape1D(lifetime_allocator, instance.count_axis, instance.count);    owned.value = .{        .dtype = instance.dtype,        .operation = .{ .random = .{ .threefry = instance.rounds } },        .inputs = &.{},        .outputs = outputs,        .schedule = try entry.runtimeThreadBlocks1D(lifetime_allocator, "e", instance.generators(), instance.threads),    };    owned.value.launch = owned.value.schedule.?.launch();    var family = try threefryShapeFamily(backing_allocator, instance);    errdefer family.deinit();    try owned.takeShapeFamily(&family);    return owned;}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random instances round-trip thr...kernel.library.OwnedSpecializationallocatorkernel.library.OwnedSpecializationdeinitkernel.library.OwnedSpecializationinitkernel.library.OwnedSpecializationtakeShapeFamilykernel.library.entryruntimeShape1D+2 morekernel.library.randomthreefryFamilySpecialization
Static calls · unresolved targets: 0 · external targets: 3.

Source: lib/accy/src/kernel/library/random/threefry/profile.zig:65

zig
pub fn threefryInstanceFromSpecialization(specialization: entry.Specialization) ?Threefry {    if (!specialization.scheduleMatchesLaunch()) return null;    const operation = specialization.operation orelse return null;    const rounds = switch (operation) {        .random => |random_operation| switch (random_operation) {            .threefry => |rounds| rounds,            else => return null,        },        else => return null,    };    const dtype = specialization.dtype orelse return null;    if (!randomDTypeSupported(dtype)) return null;    if (specialization.inputs.len != 0 or specialization.outputs.len != 1) return null;    if (specialization.reductions.len != 0) return null;    const output = specialization.outputs[0];    if (output.axes.len != 1) return null;    const launch = specialization.launch orelse return null;    if (launch.threadgroup[0] == 0) return null;    return .{        .count = output.axes[0].extent,        .rounds = rounds,        .dtype = dtype,        .threads = launch.threadgroup[0],        .count_axis = output.axes[0].name,    };}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random instances round-trip thr...kernel.library.randomrandomDTypeSupportedkernel.library.randomthreefryInstanceFromSpecialization
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/threefry/profile.zig:19

zig
pub fn threefryRuntimeArguments(instance: Threefry) ![3]choir_abi.ScalarArgument {    return .{        .{ .u32 = try runtimeExtentArgument(instance.count) },        .{ .u32 = instance.seedLo() },        .{ .u32 = instance.seedHi() },    };}

Source: lib/accy/src/kernel/library/random/threefry/profile.zig:39

zig
pub fn threefryShapeFamily(backing_allocator: std.mem.Allocator, instance: Threefry) !shape.Family {    return randomShapeFamily(backing_allocator, "threefry", instance.count_axis);}
Called byCallskernel.library.randomthreefryFamilyFingerprintkernel.library.randomthreefryFamilySpecializationkernel.library.random.baserandomShapeFamilykernel.library.randomthreefryShapeFamily
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/threefry/profile.zig:27

zig
pub fn threefryShapeProfileDimensions(instance: Threefry) [1]artifact_product.KernelCallShapeProfileDimension {    return .{        .{ .name = instance.count_axis, .runtime_scalar_argument_index = 0, .bounds = randomRuntimeExtentBounds() },    };}
Called byCallskernel.library.randomcreateThreefryFamilyArtifactkernel.library.random.baserandomRuntimeExtentBoundskernel.library.randomthreefryShapeProfileDimensions
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/threefry/runtime.zig:65

zig
pub const ThreefryRuntimeFamilyF32 = threefryRuntimeFamily(.f32);

Source: lib/accy/src/kernel/library/random/threefry/runtime.zig:66

zig
pub const ThreefryRuntimeFamilyI32 = threefryRuntimeFamily(.i32);

Source: lib/accy/src/kernel/library/random/threefry/static.zig:88

zig
pub const Threefry8F32 = threefryEntry(.{ .count = 8, .threads = 4 });

Source: lib/accy/src/kernel/library/random/threefry/static.zig:77

zig
pub fn threefryEntry(comptime spec: Threefry) type {    return entry.Entry(threefryProgram(spec), .{        .target = std.fmt.comptimePrint(            "accy.kernel.random.threefry{}_{}r_{}_{s}",            .{ spec.count, spec.rounds, spec.threads, spec.dtype.name() },        ),        .layer = .logical,        .category = .random,        .specialization = threefrySpecialization(spec),    });}
Called byCallsNo direct callerskernel.library.entryEntryprivate sourcelib.accy.src.kernel.library.random.threefry.s...threefryProgramprivate sourcelib.accy.src.kernel.library.random.threefry.s...threefrySpecializationkernel.library.randomthreefryEntry
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/accy/src/kernel/library/random/threefry/tuning.zig:22

zig
pub fn threefryFamilyTuningKey(    backing_allocator: std.mem.Allocator,    device_fingerprint: u64,    instance: Threefry,) !tuning.FamilyTuningKey {    const family_fingerprint = try threefryFamilyFingerprint(backing_allocator, instance);    const extents = threefryTuningExtents(instance);    return tuning.FamilyTuningKey.init(        device_fingerprint,        family_fingerprint,        entry.operationFingerprint(threefryTuningOperation(instance)),        instance.dtype,        threefry_family_version,        extents[0..],    ) orelse unreachable;}
Called byCallstest sourcelib.accy.src.kernel.library.random.testtest: random family tuning keys disti...kernel.library.entryoperationFingerprintkernel.library.randomthreefryFamilyFingerprintkernel.library.randomthreefryTuningExtentskernel.library.randomthreefryTuningOperationkernel.library.tuning.FamilyTuningKeyinitkernel.library.randomthreefryFamilyTuningKey
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/threefry/tuning.zig:14

zig
pub fn threefryTuningExtents(instance: Threefry) [1]u64 {    return .{instance.count};}
Called byCallsNo direct callskernel.library.randomthreefryFamilyTuningKeykernel.library.randomthreefryTuningExtents
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/threefry/tuning.zig:18

zig
pub fn threefryTuningOperation(instance: Threefry) entry.Operation {    return .{ .random = .{ .threefry = instance.rounds } };}
Called byCallsNo direct callskernel.library.randomthreefryFamilyTuningKeykernel.library.randomthreefryTuningOperation
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/kernel/library/random/threefry/types.zig:32

zig
pub const threefry_family_version: u32 = 1;

Source: lib/accy/src/kernel/library/random/root.zig

zig
pub const base = @import("base.zig");pub const block = @import("block/root.zig");const philox = @import("philox/root.zig");const threefry = @import("threefry/root.zig");const squares = @import("squares/root.zig");const feistel = @import("feistel/root.zig");const fold = @import("fold/root.zig");const key = @import("key/root.zig");pub const philox_lanes = block.philox_lanes;pub const philox_default_rounds = block.philox_default_rounds;pub const philox_max_rounds = block.philox_max_rounds;pub const threefry_lanes = block.threefry_lanes;pub const threefry_default_rounds = block.threefry_default_rounds;pub const threefry_max_rounds = block.threefry_max_rounds;pub const squares_lanes = block.squares_lanes;pub const squares_default_key = block.squares_default_key;pub const philoxBlock = block.philoxBlock;pub const threefryBlock = block.threefryBlock;pub const squaresBlock = block.squaresBlock;pub const uniformFromBits = block.uniformFromBits;pub const randomDTypeSupported = block.randomDTypeSupported;pub const Philox = philox.Philox;pub const Threefry = threefry.Threefry;pub const philox_family_version = philox.philox_family_version;pub const threefry_family_version = threefry.threefry_family_version;pub const PhiloxRuntimeFamilyF32 = philox.PhiloxRuntimeFamilyF32;pub const PhiloxRuntimeFamilyI32 = philox.PhiloxRuntimeFamilyI32;pub const ThreefryRuntimeFamilyF32 = threefry.ThreefryRuntimeFamilyF32;pub const ThreefryRuntimeFamilyI32 = threefry.ThreefryRuntimeFamilyI32;pub const philoxThreadsForCount = philox.philoxThreadsForCount;pub const philoxThreadCandidatesForCount = philox.philoxThreadCandidatesForCount;pub const threefryThreadsForCount = threefry.threefryThreadsForCount;pub const threefryThreadCandidatesForCount = threefry.threefryThreadCandidatesForCount;pub const philoxInstanceTarget = philox.philoxInstanceTarget;pub const philoxInstanceEntryName = philox.philoxInstanceEntryName;pub const philoxFamilyTarget = philox.philoxFamilyTarget;pub const philoxFamilyEntryName = philox.philoxFamilyEntryName;pub const threefryInstanceTarget = threefry.threefryInstanceTarget;pub const threefryInstanceEntryName = threefry.threefryInstanceEntryName;pub const threefryFamilyTarget = threefry.threefryFamilyTarget;pub const threefryFamilyEntryName = threefry.threefryFamilyEntryName;pub const philoxTuningExtents = philox.philoxTuningExtents;pub const philoxTuningOperation = philox.philoxTuningOperation;pub const philoxFamilyTuningKey = philox.philoxFamilyTuningKey;pub const threefryTuningExtents = threefry.threefryTuningExtents;pub const threefryTuningOperation = threefry.threefryTuningOperation;pub const threefryFamilyTuningKey = threefry.threefryFamilyTuningKey;pub const philoxRuntimeArguments = philox.philoxRuntimeArguments;pub const threefryRuntimeArguments = threefry.threefryRuntimeArguments;pub const philoxShapeProfileDimensions = philox.philoxShapeProfileDimensions;pub const threefryShapeProfileDimensions = threefry.threefryShapeProfileDimensions;pub const createPhiloxFamilyArtifact = philox.createPhiloxFamilyArtifact;pub const createThreefryFamilyArtifact = threefry.createThreefryFamilyArtifact;pub const philoxFamilyFingerprint = philox.philoxFamilyFingerprint;pub const philoxShapeFamily = philox.philoxShapeFamily;pub const threefryFamilyFingerprint = threefry.threefryFamilyFingerprint;pub const threefryShapeFamily = threefry.threefryShapeFamily;pub const philoxFamilySpecialization = philox.philoxFamilySpecialization;pub const threefryFamilySpecialization = threefry.threefryFamilySpecialization;pub const philoxInstanceFromSpecialization = philox.philoxInstanceFromSpecialization;pub const threefryInstanceFromSpecialization = threefry.threefryInstanceFromSpecialization;pub const philoxEntry = philox.philoxEntry;pub const threefryEntry = threefry.threefryEntry;pub const Philox8F32 = philox.Philox8F32;pub const Threefry8F32 = threefry.Threefry8F32;pub const squares_family_version = squares.squares_family_version;pub const Squares = squares.Squares;pub const SquaresRuntimeFamilyF32 = squares.SquaresRuntimeFamilyF32;pub const SquaresRuntimeFamilyI32 = squares.SquaresRuntimeFamilyI32;pub const squaresThreadsForCount = squares.squaresThreadsForCount;pub const squaresThreadCandidatesForCount = squares.squaresThreadCandidatesForCount;pub const squaresFamilyTarget = squares.squaresFamilyTarget;pub const squaresFamilyEntryName = squares.squaresFamilyEntryName;pub const squaresTuningExtents = squares.squaresTuningExtents;pub const squaresTuningOperation = squares.squaresTuningOperation;pub const squaresFamilyTuningKey = squares.squaresFamilyTuningKey;pub const squaresRuntimeArguments = squares.squaresRuntimeArguments;pub const squaresShapeProfileDimensions = squares.squaresShapeProfileDimensions;pub const squaresFamilyFingerprint = squares.squaresFamilyFingerprint;pub const squaresShapeFamily = squares.squaresShapeFamily;pub const squaresFamilySpecialization = squares.squaresFamilySpecialization;pub const squaresInstanceFromSpecialization = squares.squaresInstanceFromSpecialization;pub const createSquaresFamilyArtifact = squares.createSquaresFamilyArtifact;pub const PhiloxKeySplit = key.PhiloxKeySplit;pub const PhiloxKeyUniform = key.PhiloxKeyUniform;pub const PhiloxKeyCounterUniform = key.PhiloxKeyCounterUniform;pub const philox_key_split_family_version = key.philox_key_split_family_version;pub const philox_key_uniform_family_version = key.philox_key_uniform_family_version;pub const philox_key_counter_uniform_family_version = key.philox_key_counter_uniform_family_version;pub const PhiloxKeySplitRuntimeFamily = key.PhiloxKeySplitRuntimeFamily;pub const PhiloxKeyUniformRuntimeFamilyF32 = key.PhiloxKeyUniformRuntimeFamilyF32;pub const PhiloxKeyUniformRuntimeFamilyI32 = key.PhiloxKeyUniformRuntimeFamilyI32;pub const PhiloxKeyCounterUniformRuntimeFamilyF32 = key.PhiloxKeyCounterUniformRuntimeFamilyF32;pub const PhiloxKeyCounterUniformRuntimeFamilyI32 = key.PhiloxKeyCounterUniformRuntimeFamilyI32;pub const philoxKeySplitFamilyTarget = key.philoxKeySplitFamilyTarget;pub const philoxKeySplitFamilyEntryName = key.philoxKeySplitFamilyEntryName;pub const philoxKeyUniformFamilyTarget = key.philoxKeyUniformFamilyTarget;pub const philoxKeyUniformFamilyEntryName = key.philoxKeyUniformFamilyEntryName;pub const philoxKeyCounterUniformFamilyTarget = key.philoxKeyCounterUniformFamilyTarget;pub const philoxKeyCounterUniformFamilyEntryName = key.philoxKeyCounterUniformFamilyEntryName;pub const philoxKeySplitRuntimeArguments = key.philoxKeySplitRuntimeArguments;pub const philoxKeyUniformRuntimeArguments = key.philoxKeyUniformRuntimeArguments;pub const philoxKeyCounterUniformRuntimeArguments = key.philoxKeyCounterUniformRuntimeArguments;pub const philoxKeySplitShapeProfileDimensions = key.philoxKeySplitShapeProfileDimensions;pub const philoxKeyUniformShapeProfileDimensions = key.philoxKeyUniformShapeProfileDimensions;pub const philoxKeyCounterUniformShapeProfileDimensions = key.philoxKeyCounterUniformShapeProfileDimensions;pub const philoxKeySplitFamilyFingerprint = key.philoxKeySplitFamilyFingerprint;pub const philoxKeyUniformFamilyFingerprint = key.philoxKeyUniformFamilyFingerprint;pub const philoxKeyCounterUniformFamilyFingerprint = key.philoxKeyCounterUniformFamilyFingerprint;pub const philoxKeySplitShapeFamily = key.philoxKeySplitShapeFamily;pub const philoxKeyUniformShapeFamily = key.philoxKeyUniformShapeFamily;pub const philoxKeyCounterUniformShapeFamily = key.philoxKeyCounterUniformShapeFamily;pub const philoxKeySplitFamilySpecialization = key.philoxKeySplitFamilySpecialization;pub const philoxKeyUniformFamilySpecialization = key.philoxKeyUniformFamilySpecialization;pub const philoxKeyCounterUniformFamilySpecialization = key.philoxKeyCounterUniformFamilySpecialization;pub const philoxKeySplitInstanceFromSpecialization = key.philoxKeySplitInstanceFromSpecialization;pub const philoxKeyUniformInstanceFromSpecialization = key.philoxKeyUniformInstanceFromSpecialization;pub const philoxKeyCounterUniformInstanceFromSpecialization = key.philoxKeyCounterUniformInstanceFromSpecialization;pub const createPhiloxKeySplitFamilyArtifact = key.createPhiloxKeySplitFamilyArtifact;pub const createPhiloxKeyUniformFamilyArtifact = key.createPhiloxKeyUniformFamilyArtifact;pub const createPhiloxKeyCounterUniformFamilyArtifact = key.createPhiloxKeyCounterUniformFamilyArtifact;pub const Feistel = feistel.Feistel;pub const feistel_default_rounds = feistel.feistel_default_rounds;pub const feistel_max_rounds = feistel.feistel_max_rounds;pub const feistel_family_version = feistel.feistel_family_version;pub const feistelDomainBits = feistel.feistelDomainBits;pub const feistelInstanceValid = feistel.feistelInstanceValid;pub const feistelThreadsForCount = feistel.feistelThreadsForCount;pub const feistelThreadCandidatesForCount = feistel.feistelThreadCandidatesForCount;pub const feistelFamilyTarget = feistel.feistelFamilyTarget;pub const feistelFamilyEntryName = feistel.feistelFamilyEntryName;pub const feistelRuntimeArguments = feistel.feistelRuntimeArguments;pub const feistelShapeProfileDimensions = feistel.feistelShapeProfileDimensions;pub const feistelFamilyFingerprint = feistel.feistelFamilyFingerprint;pub const feistelShapeFamily = feistel.feistelShapeFamily;pub const FeistelRuntimeFamilyI32 = feistel.FeistelRuntimeFamilyI32;pub const feistelPermuteReference = feistel.feistelPermuteReference;pub const createFeistelFamilyArtifact = feistel.createFeistelFamilyArtifact;pub const SquaresFold = fold.SquaresFold;pub const squares_fold_family_version = fold.squares_fold_family_version;pub const squaresFoldUniformReference = fold.squaresFoldUniformReference;pub const squaresFoldBitsReference = fold.squaresFoldBitsReference;pub const SquaresFoldRuntimeFamilyF32 = fold.SquaresFoldRuntimeFamilyF32;pub const SquaresFoldRuntimeFamilyI32 = fold.SquaresFoldRuntimeFamilyI32;pub const squaresFoldFamilyTarget = fold.squaresFoldFamilyTarget;pub const squaresFoldFamilyEntryName = fold.squaresFoldFamilyEntryName;pub const squaresFoldRuntimeArguments = fold.squaresFoldRuntimeArguments;pub const squaresFoldShapeProfileDimensions = fold.squaresFoldShapeProfileDimensions;pub const squaresFoldTuningExtents = fold.squaresFoldTuningExtents;pub const squaresFoldTuningOperation = fold.squaresFoldTuningOperation;pub const squaresFoldFamilyTuningKey = fold.squaresFoldFamilyTuningKey;pub const squaresFoldFamilyFingerprint = fold.squaresFoldFamilyFingerprint;pub const createSquaresFoldFamilyArtifact = fold.createSquaresFoldFamilyArtifact;pub const philox_fold_family_version = fold.philox_fold_family_version;pub const threefry_fold_family_version = fold.threefry_fold_family_version;pub const PhiloxFold = fold.PhiloxFold;pub const ThreefryFold = fold.ThreefryFold;pub const philoxFoldUniformReference = fold.philoxFoldUniformReference;pub const philoxFoldBitsReference = fold.philoxFoldBitsReference;pub const threefryFoldUniformReference = fold.threefryFoldUniformReference;pub const threefryFoldBitsReference = fold.threefryFoldBitsReference;pub const PhiloxFoldRuntimeFamilyF32 = fold.PhiloxFoldRuntimeFamilyF32;pub const PhiloxFoldRuntimeFamilyI32 = fold.PhiloxFoldRuntimeFamilyI32;pub const ThreefryFoldRuntimeFamilyF32 = fold.ThreefryFoldRuntimeFamilyF32;pub const ThreefryFoldRuntimeFamilyI32 = fold.ThreefryFoldRuntimeFamilyI32;pub const philoxFoldFamilyTarget = fold.philoxFoldFamilyTarget;pub const philoxFoldFamilyEntryName = fold.philoxFoldFamilyEntryName;pub const threefryFoldFamilyTarget = fold.threefryFoldFamilyTarget;pub const threefryFoldFamilyEntryName = fold.threefryFoldFamilyEntryName;pub const philoxFoldRuntimeArguments = fold.philoxFoldRuntimeArguments;pub const threefryFoldRuntimeArguments = fold.threefryFoldRuntimeArguments;pub const philoxFoldShapeProfileDimensions = fold.philoxFoldShapeProfileDimensions;pub const threefryFoldShapeProfileDimensions = fold.threefryFoldShapeProfileDimensions;pub const philoxFoldTuningExtents = fold.philoxFoldTuningExtents;pub const philoxFoldTuningOperation = fold.philoxFoldTuningOperation;pub const philoxFoldFamilyTuningKey = fold.philoxFoldFamilyTuningKey;pub const philoxFoldFamilyFingerprint = fold.philoxFoldFamilyFingerprint;pub const threefryFoldTuningExtents = fold.threefryFoldTuningExtents;pub const threefryFoldTuningOperation = fold.threefryFoldTuningOperation;pub const threefryFoldFamilyTuningKey = fold.threefryFoldFamilyTuningKey;pub const threefryFoldFamilyFingerprint = fold.threefryFoldFamilyFingerprint;pub const createPhiloxFoldFamilyArtifact = fold.createPhiloxFoldFamilyArtifact;pub const createThreefryFoldFamilyArtifact = fold.createThreefryFoldFamilyArtifact;

Source: lib/accy/src/kernel/library/root.zig:20

zig
pub const random = @import("random/root.zig");

Complete call list for kernel.library.random.createFeistelFamilyArtifact

7 direct calls.

Complete call list for kernel.library.random.philoxKeyCounterUniformFamilySpecialization

8 direct calls.

Complete call list for kernel.library.random.philoxKeySplitFamilySpecialization

8 direct calls.

Complete call list for kernel.library.random.philoxKeyUniformFamilySpecialization

7 direct calls.

Complete call list for kernel.library.random.philoxFamilySpecialization

7 direct calls.

Complete call list for kernel.library.random.squaresFamilySpecialization

7 direct calls.

Complete call list for kernel.library.random.threefryFamilySpecialization

7 direct calls.

Audit

Definitions185
Public names185
Members57
Version26.7.0
Revisiondaab053ee433