tiny.simd.dotF32BFloat16Assume
Defined in dot.
Source
Source: lib/simd/src/dot.zig:94
zig
pub fn computeF32BFloatAssume( comptime D: type, a: []const f32, b: []const bfloat.BFloat16, count: usize, comptime assumptions: Assumptions,) f32 { if (comptime D.Lane != f32) @compileError("mixed dot requires an f32 descriptor"); validateInputs(D.lane_count, a.len, b.len, count, assumptions); var sum0: D.Vector = @splat(0); var sum1: D.Vector = @splat(0); var sum2: D.Vector = @splat(0); var sum3: D.Vector = @splat(0); var index: usize = 0; while (index + 4 * D.lane_count <= count) : (index += 4 * D.lane_count) { sum0 = mixedMulAdd(D, a[index..], b[index..], sum0); const index1 = index + D.lane_count; sum1 = mixedMulAdd(D, a[index1..], b[index1..], sum1); const index2 = index + 2 * D.lane_count; sum2 = mixedMulAdd(D, a[index2..], b[index2..], sum2); const index3 = index + 3 * D.lane_count; sum3 = mixedMulAdd(D, a[index3..], b[index3..], sum3); } while (index + D.lane_count <= count) : (index += D.lane_count) { sum0 = mixedMulAdd(D, a[index..], b[index..], sum0); } if (!assumptions.multiple_of_vector and index != count) { const remaining = count - index; const av = loadTail(D, a[index..], remaining, assumptions.padded_to_vector); const DB = bfloat.Tag(D.lane_count); const bits = loadBFloatTail(DB, b[index..], remaining, assumptions.padded_to_vector); sum1 = arithmetic.mulAdd(D, av, bfloat.promoteF32(D, bits), sum1); } return reduce.sum(D, (sum0 + sum1) + (sum2 + sum3));}Source: lib/simd/src/root.zig:495
zig
pub const dotF32BFloat16Assume = dot.computeF32BFloatAssume;Complete call list
8 direct calls.
tiny.simd.arithmetic.mulAdd[function] atlib/simd/src/arithmetic.zig:190tiny.simd.bfloat.Tag[function] atlib/simd/src/bfloat.zig:50tiny.simd.bfloat.promoteF32[function] atlib/simd/src/bfloat.zig:101lib.simd.src.dot.loadBFloatTail[function] — private source atlib/simd/src/dot.zig:224in nearest public ownertiny.simd.dotlib.simd.src.dot.loadTail[function] — private source atlib/simd/src/dot.zig:211in nearest public ownertiny.simd.dotlib.simd.src.dot.mixedMulAdd[function] — private source atlib/simd/src/dot.zig:201in nearest public ownertiny.simd.dotlib.simd.src.dot.validateInputs[function] — private source atlib/simd/src/dot.zig:257in nearest public ownertiny.simd.dottiny.simd.reduce.sum[function] atlib/simd/src/reduce.zig:3
Audit
| Definitions | 1 |
|---|---|
| Public names | 2 |
| Members | 0 |
| Version | 26.7.0 |
| Revision | daab053ee433 |