Skip to main content

Module target

Module target 

Source
Expand description

SpatialTarget — the described MESH a spatial program is placed onto.

One descriptor per chip class: how many sites, what each site holds (local memory, accumulator tiles, movement engines, NOCs), the native compute tile, which interconnect and handshake primitives exist, and which compute capabilities (tile matmul, elementwise, row-reduce, a scalar datapath) the site offers. The passes read ONLY this descriptor; every number is cited at its constructor, and the fields that a public datasheet does not give are listed in modeled so the descriptor never pretends to know them.

The scalar datapath capability EMBEDS the existing FabricTarget descriptor — the fabric lane is a consumer of the spatial IR, not a sibling of it.

Structs§

CreditLatency
The latencies a bounded buffer’s credit loop is sized against, in cycles.
MeshShape
The mesh of sites: x columns × y rows.
NocRule
The NOC-direction convention a mesh imposes on multicast roles — measured, not chosen: on Wormhole the in0 senders must multicast on NOC 0 and the receivers listen on NOC 1 (all-on-one-NOC inverted the multicast rectangle under ttsim); the writer takes the complement, except the first column.
NumericsKnobs
The three numerics knobs the measurement harness varies, and the PCC the program then requires of itself. scripts/tt-matmul-measure.sh sets them as LOGOS_TT_FIDELITY / _FP32 / _L1ACC, and every ledger row records what the program PRINTED rather than what was asked for — so this parser is part of the measurement contract, not a convenience.
SiteSpec
What one site holds.
SpatialTarget
The described mesh.
TileShape
Geometry of one native compute tile — 32×32 on Tensix, a 16×16 fragment on a tensor core, 1×1 for a scalar fabric cell.

Enums§

BlockApi
How a matrix engine’s sub-block API runs one compute op over an osh × osw sub-block and its ibw inner steps: the calls it makes and the operand tiles it loads.
ComputeCap
A compute capability a site offers.
DataflowPolicy
Which operand stays resident in the compute engine while the other streams.
Fidelity
Matmul math fidelity of a tile engine.
HandshakeKind
The synchronization primitive an edge may use.
Interconnect
How sites exchange data.
PackerAccumulate
Whether a matrix engine’s packer can ADD into a local-memory page instead of overwriting it.
WriteOrdering
Whether NOC writes retire in issue order (Wormhole) or need an explicit flush before a dependent semaphore multicast (Blackhole).

Functions§

int_precision_max
The largest value a signed integer precision holds.
int_precision_of_bits
The signed integer precision of exactly bits bits, if the dial has one.
precision_bytes
Bytes per element of a precision.
precision_int_bits
Bit width of an integer precision (the operand truncation the systolic reference applies).
precision_is_int
Whether a precision is an integer format.
sim_grid
The compute-with-storage grid the cycle-accurate simulator exposes for a chip id (slow dispatch): wormhole_b0_80_arch.yaml → 8×9, blackhole_140_arch.yaml → 13×10 (one column of the 14×10 reserved). Read from the vendor examples’ compute_with_storage_grid_size() on each descriptor.