Foundry/tt/kernels/cb_tables/vector_add_float32.cbtable

29 lines
1.4 KiB
Plaintext

# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 David (Corey) Herrera
# vector_add_float32.cbtable
# A DIFFERENT tile format and a DIFFERENT page size from everything Foundry had run on
# the card up to 2026-08-12: 32x32 Float32, so a tile is 4096 bytes rather than 2048.
# This is the table that shows the descriptor generator is really driven by the CB
# configuration -- the same kernel source built against the legacy uniform Float16_b
# descriptors unpacks these bytes as bfloat16 and returns garbage
# (tests/test_phase2_cb_formats.c runs both and compares).
#
# What the generator derives from `Float32` and does NOT read from this file: the
# source registers cannot hold Float32 without fp32 destination accumulation, so
# unpack_dst and pack_src become Float16_b while unpack_src and pack_dst stay Float32.
# That is the hardware's format-derivation rule, not ours (measured).
#
# Consequence for a test: values pass through bfloat16 inside the core, so only inputs
# whose sums are exactly representable there stay byte-exact. Small integers are.
#
# The reader and writer must be built with a matching 4096-byte tile compile-time arg;
# data-movement kernels have no descriptor header to tell them.
math_fidelity 4
approx 0
dst_accum_mode 0
cb 0 Float32 32 32 16 4
cb 1 Float32 32 32 16 4
cb 16 Float32 32 32 16 4