Skip to main content

Module microkernel

Module microkernel 

Source
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§

CubeFootprint
What one cube holds of its worker, from the grid.
CubePlanes
A cube’s planes, as a kernel laying out shared memory per plane is compiled against them.
CubeStaging
How one cube walks its work through global memory: in stages, each loaded while the stages before it compute, then drained.
GlobalStream
Bytes one cube moves through one operand, and the stretch of them a plane touches contiguously.
KernelEstimate
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.
StageRing
How a walk through shared memory holds its stages: a staged cube’s, or each plane’s own, whatever operands it stages.
StagedOperand
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.
UnitWork
What one unit holds of the work and how it computes it.

Enums§

ArithmeticInstruction
Which of the device’s arithmetic rates a kernel runs at.
StageLayout
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.