Skip to documentation
SLOP

tiny.simd.dotBFloat16Assume

Reference tiny.simd dotBFloat16Assume

Defined in dot.

Called byCallsdotcomputeBFloatbfloatloadbfloatreorderWidenMulAccumulateprivate sourcelib.simd.src.dotcomputeBFloatScalarprivate sourcelib.simd.src.dotloadBFloatTailprivate sourcelib.simd.src.dotrequireBFloatTag+2 moredotcomputeBFloatAssume
Static calls · unresolved targets: 1 · external targets: 0.

Source

Source: lib/simd/src/dot.zig:46

zig
pub fn computeBFloatAssume(    comptime D: type,    a: []const bfloat.BFloat16,    b: []const bfloat.BFloat16,    count: usize,    comptime assumptions: Assumptions,) f32 {    requireBFloatTag(D);    validateInputs(D.lane_count, a.len, b.len, count, assumptions);    if (D.lane_count < 2) return computeBFloatScalar(a, b, count);    const DF = D.repartition(f32);    var sum0: DF.Vector = @splat(0);    var sum1: DF.Vector = @splat(0);    var sum2: DF.Vector = @splat(0);    var sum3: DF.Vector = @splat(0);    var index: usize = 0;    while (index + 2 * D.lane_count <= count) : (index += 2 * D.lane_count) {        const a0 = bfloat.load(D, a[index..]);        const b0 = bfloat.load(D, b[index..]);        sum0 = bfloat.reorderWidenMulAccumulate(DF, a0, b0, sum0, &sum1);        const a1 = bfloat.load(D, a[index + D.lane_count ..]);        const b1 = bfloat.load(D, b[index + D.lane_count ..]);        sum2 = bfloat.reorderWidenMulAccumulate(DF, a1, b1, sum2, &sum3);    }    if (index + D.lane_count <= count) {        const av = bfloat.load(D, a[index..]);        const bv = bfloat.load(D, b[index..]);        sum0 = bfloat.reorderWidenMulAccumulate(DF, av, bv, sum0, &sum1);        index += D.lane_count;    }    if (!assumptions.multiple_of_vector and index != count) {        const remaining = count - index;        const av = loadBFloatTail(D, a[index..], remaining, assumptions.padded_to_vector);        const bv = loadBFloatTail(D, b[index..], remaining, assumptions.padded_to_vector);        sum2 = bfloat.reorderWidenMulAccumulate(DF, av, bv, sum2, &sum3);    }    return reduce.sum(DF, (sum0 + sum1) + (sum2 + sum3));}

Source: lib/simd/src/root.zig:493

zig
pub const dotBFloat16Assume = dot.computeBFloatAssume;

Complete call list

7 direct calls.

Audit

Definitions1
Public names2
Members0
Version26.7.0
Revisiondaab053ee433