tiny.accy.kernel.library.random.base
Defined in kernel.library.random.
API (18)
Actions
Public operations.
ceilDivComptimeindexExtentrandomDerivedLaunchrandomFoldDerivedLaunchrandomRuntimeExtentBoundsrandomShapeFamilyruntimeExtentArgument
Types and contracts
Public types and contracts.
Namespaces
Public namespaces.
Values and defaults
Public values and defaults.
Source
Source: lib/accy/src/kernel/library/random/base.zig
zig
const choir_abi = @import("choir_abi");pub const std = @import("std");pub const artifact_product = @import("../../../artifact/model/root.zig");pub const shape = @import("../../../choir/shape/root.zig");pub const library = @import("../root.zig");pub const kernel = @import("../../root.zig");pub const entry = library.entry;pub const extent_mod = library.extent;pub const geometry_mod = library.geometry;pub const tuning = library.tuning;pub const DType = choir_abi.DType;pub const indexExtent = extent_mod.indexExtent;pub const runtimeExtentArgument = extent_mod.runtimeExtentArgument;pub const random_thread_caps = geometry_mod.ThreadCaps1D{};pub fn randomRuntimeExtentBounds() shape.Bounds { return .{ .min = 1, .max = extent_mod.runtime_extent_max };}pub fn randomDerivedLaunch(threads: u32, lanes: u64) !artifact_product.KernelCallLaunch { if (threads == 0) return error.KernelLibraryLaunchThreadgroupMustBeNonzero; const divisor = std.math.cast(u32, @as(u64, threads) * lanes) orelse return error.KernelLibraryLaunchThreadgroupMustBeNonzero; return .{ .derived = .{ .grid = .{ .{ .runtime_u32_ceil_div = .{ .argument_index = 0, .divisor = divisor } }, .{ .fixed = 1 }, .{ .fixed = 1 }, }, .threadgroup = .{ threads, 1, 1 }, } };}pub fn randomFoldDerivedLaunch(threads: u32) !artifact_product.KernelCallLaunch { if (threads == 0) return error.KernelLibraryLaunchThreadgroupMustBeNonzero; return .{ .derived = .{ .grid = .{ .{ .runtime_u32_ceil_div = .{ .argument_index = 0, .divisor = threads } }, .{ .fixed = 1 }, .{ .fixed = 1 }, }, .threadgroup = .{ threads, 1, 1 }, } };}pub fn randomShapeFamily(backing_allocator: std.mem.Allocator, name: []const u8, count_axis: []const u8) !shape.Family { var builder = try shape.Builder.init(backing_allocator, name); errdefer builder.deinit(); const count = try builder.symbol(count_axis); const count_expr = try builder.symbolExpression(count); _ = try builder.tensor("out", &.{count_expr}); try builder.assumeBounds(count_expr, randomRuntimeExtentBounds()); return builder.finish();}pub fn ceilDivComptime(comptime numerator: u64, comptime denominator: u32) u32 { return @intCast(numerator / denominator + @as(u64, @intFromBool(numerator % denominator != 0)));}Source: lib/accy/src/kernel/library/random/root.zig:1
zig
pub const base = @import("base.zig");Complete caller list for kernel.library.random.base.randomFoldDerivedLaunch
8 direct callers.
tiny.accy.kernel.library.random.createFeistelFamilyArtifact[function] atlib/accy/src/kernel/library/random/feistel/artifact.zig:21tiny.accy.kernel.library.random.createPhiloxFoldFamilyArtifact[function] atlib/accy/src/kernel/library/random/fold/philox/family.zig:106tiny.accy.kernel.library.random.createSquaresFoldFamilyArtifact[function] atlib/accy/src/kernel/library/random/fold/squares/family.zig:111tiny.accy.kernel.library.random.createThreefryFoldFamilyArtifact[function] atlib/accy/src/kernel/library/random/fold/threefry/family.zig:106tiny.accy.kernel.library.random.createPhiloxKeyCounterUniformFamilyArtifact[function] atlib/accy/src/kernel/library/random/key/artifact.zig:103tiny.accy.kernel.library.random.createPhiloxKeySplitFamilyArtifact[function] atlib/accy/src/kernel/library/random/key/artifact.zig:31tiny.accy.kernel.library.random.createPhiloxKeyUniformFamilyArtifact[function] atlib/accy/src/kernel/library/random/key/artifact.zig:65tiny.accy.kernel.library.random.createSquaresFamilyArtifact[function] atlib/accy/src/kernel/library/random/squares/artifact.zig:21
Complete caller list for kernel.library.random.base.randomRuntimeExtentBounds
11 direct callers.
tiny.accy.kernel.library.random.base.randomShapeFamily[function] atlib/accy/src/kernel/library/random/base.zig:49tiny.accy.kernel.library.random.feistelShapeProfileDimensions[function] atlib/accy/src/kernel/library/random/feistel/profile.zig:24tiny.accy.kernel.library.random.philoxFoldShapeProfileDimensions[function] atlib/accy/src/kernel/library/random/fold/philox/family.zig:70tiny.accy.kernel.library.random.squaresFoldShapeProfileDimensions[function] atlib/accy/src/kernel/library/random/fold/squares/family.zig:72tiny.accy.kernel.library.random.threefryFoldShapeProfileDimensions[function] atlib/accy/src/kernel/library/random/fold/threefry/family.zig:70tiny.accy.kernel.library.random.philoxKeyCounterUniformShapeProfileDimensions[function] atlib/accy/src/kernel/library/random/key/profile.zig:41tiny.accy.kernel.library.random.philoxKeySplitShapeProfileDimensions[function] atlib/accy/src/kernel/library/random/key/profile.zig:33tiny.accy.kernel.library.random.philoxKeyUniformShapeProfileDimensions[function] atlib/accy/src/kernel/library/random/key/profile.zig:37tiny.accy.kernel.library.random.philoxShapeProfileDimensions[function] atlib/accy/src/kernel/library/random/philox/profile.zig:27tiny.accy.kernel.library.random.squaresShapeProfileDimensions[function] atlib/accy/src/kernel/library/random/squares/profile.zig:27tiny.accy.kernel.library.random.threefryShapeProfileDimensions[function] atlib/accy/src/kernel/library/random/threefry/profile.zig:27
Complete caller list for kernel.library.random.base.randomShapeFamily
10 direct callers.
tiny.accy.kernel.library.random.feistelShapeFamily[function] atlib/accy/src/kernel/library/random/feistel/profile.zig:36tiny.accy.kernel.library.random.philoxFoldFamilyFingerprint[function] atlib/accy/src/kernel/library/random/fold/philox/family.zig:101tiny.accy.kernel.library.random.squaresFoldFamilyFingerprint[function] atlib/accy/src/kernel/library/random/fold/squares/family.zig:105tiny.accy.kernel.library.random.threefryFoldFamilyFingerprint[function] atlib/accy/src/kernel/library/random/fold/threefry/family.zig:101tiny.accy.kernel.library.random.philoxKeyCounterUniformShapeFamily[function] atlib/accy/src/kernel/library/random/key/profile.zig:71tiny.accy.kernel.library.random.philoxKeySplitShapeFamily[function] atlib/accy/src/kernel/library/random/key/profile.zig:63tiny.accy.kernel.library.random.philoxKeyUniformShapeFamily[function] atlib/accy/src/kernel/library/random/key/profile.zig:67tiny.accy.kernel.library.random.philoxShapeFamily[function] atlib/accy/src/kernel/library/random/philox/profile.zig:39tiny.accy.kernel.library.random.squaresShapeFamily[function] atlib/accy/src/kernel/library/random/squares/profile.zig:39tiny.accy.kernel.library.random.threefryShapeFamily[function] atlib/accy/src/kernel/library/random/threefry/profile.zig:39
Audit
| Definitions | 9 |
|---|---|
| Public names | 9 |
| Members | 0 |
| Version | 26.7.0 |
| Revision | daab053ee433 |