Expand description
What kernels are built from.
A microkernel is what one owner of a work item runs, and its scope is the owner: a unit, a plane, a cube. Owners at one scope never share a work item; the units inside one owner all work on the same one. A microkernel may be built from microkernels of a smaller scope: a cube’s planes each running a plane microkernel on part of the cube’s item.
Nothing here is launched. A Routine is a whole kernel written
around one microkernel, and the launch is its own.
What every family’s staged walk shares, whatever operands it stages, is here too: the
StageRing that holds its stages, and what a stage of each operand costs.
Autotune prioritizes routines, never microkernels. A routine and the microkernels under it each
estimate their own part of the kernel’s performance into a KernelEstimate, in quantities
every routine states alike.
Structs§
- Cube
Footprint - What one cube holds of its worker, from the grid.
- Cube
Planes - A cube’s planes, as a kernel laying out shared memory per plane is compiled against them.
- Cube
Staging - How one cube walks its work through global memory: in stages, each loaded while the stages before it compute, then drained.
- Global
Stream - Bytes one cube moves through one operand, and the stretch of them a plane touches contiguously.
- Kernel
Estimate - A kernel’s performance, estimated: what the kernel a routine prepared asks of a device, counted from its own walk, before any device is known.
- Stage
Ring - How a walk through shared memory holds its stages: a staged cube’s, or each plane’s own, whatever operands it stages.
- Staged
Operand - One operand’s box of a stage, as the ring that holds it reads it: what a stage of it costs in shared memory, and in registers where the next one waits there.
- Unit
Work - What one unit holds of the work and how it computes it.
Enums§
- Arithmetic
Instruction - Which of the device’s arithmetic rates a kernel runs at.
- Stage
Layout - How a stage’s rows lie over the shared memory banks.
Constants§
- SWIZZLED_
STAGE_ UNREAD - What a fragment that reads a tile off a pointer and a stride declines: swizzled tiles.
Traits§
- Microkernel
- What one owner of a work item runs.