|
docc 0.8.3 (0d44999b)
C++ API Reference
|
The complete target-specific contract of the tile algebra. More...
#include <optional>#include "sdfg/data_flow/library_node.h"#include "sdfg/structured_control_flow/structured_loop.h"#include "sdfg/tiles/bank_conflicts.h"#include "sdfg/tiles/tile.h"#include "sdfg/types/type.h"Go to the source code of this file.
Classes | |
| class | sdfg::tiles::TileTarget |
Namespaces | |
| namespace | sdfg |
| namespace | sdfg::tiles |
The complete target-specific contract of the tile algebra.
Everything else in the tiles API is target-neutral: Layout, Tile, LocalityPlan, PackedBuffer, TiledCopy, and the Level / Space lattices. A backend (CUDA, ROCm, OpenMP, Tenstorrent, ...) makes its schedules and memory legible to that neutral core by implementing a handful of per-target facts:
(has_scratchpad is derived from space, not implemented.) These are the only places the tile algebra needs to know a target exists. A TileTarget replaces the hard-coded "CUDA_Offload" / "ROCM_Offload" / NV_Shared / gpu_warp_size checks that would otherwise scatter through AxisSchedule::classify and LocalStorage. New targets (including externally linked ones) plug in by implementing this interface and registering it; no edit to the tiles core is required.