docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
tile.h File Reference

Schedule-aware tile vocabulary: a Tile is a Layout (geometry from MemoryLayoutAnalysis) partitioned over the enclosing parallel loop nest (TileAxis) and classified into a required memory Space. More...

#include <optional>
#include <string>
#include <vector>
#include "sdfg/structured_control_flow/structured_loop.h"
#include "sdfg/tiles/layout.h"

Go to the source code of this file.

Classes

class  sdfg::tiles::AxisSchedule
 Target-neutral cooperation facts derived from one loop's schedule. More...
class  sdfg::tiles::TileAxis
 One enclosing parallel loop of a tile: its schedule facts plus the tile-role (Private when its indvar addresses the tile base, Cooperative otherwise). More...
class  sdfg::tiles::Tile
 A container's staged region: source maps a tile coordinate to the global element, axes is the thread/value partition, and the read/write flags give the copy direction. More...

Namespaces

namespace  sdfg
namespace  sdfg::analysis
namespace  sdfg::tiles

Enumerations

enum class  sdfg::tiles::Level { sdfg::tiles::Device , sdfg::tiles::Group , sdfg::tiles::Subgroup }
 Cooperation scope of a parallel axis, coarsest to finest — target-neutral tiers (OpenCL/SYCL vocabulary). More...
enum class  sdfg::tiles::Space { sdfg::tiles::Global , sdfg::tiles::Shared , sdfg::tiles::Register }
 Memory that backs cooperation at a level: Device/CPU -> Global (atomics/heap), Group -> Shared, Subgroup/none -> Register. More...
enum class  sdfg::tiles::Role { sdfg::tiles::Private , sdfg::tiles::Cooperative }
 Whether the tile is per-iteration-private or shared across a parallel axis. More...

Detailed Description

Schedule-aware tile vocabulary: a Tile is a Layout (geometry from MemoryLayoutAnalysis) partitioned over the enclosing parallel loop nest (TileAxis) and classified into a required memory Space.

Pipeline: AxisSchedule::classify → TileAxis::enclosing → Tile → Tile::placement (a LocalityPlan) → storage Space.