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

A tiled copy plan: move one tile between memory levels. More...

#include <cstddef>
#include <vector>
#include "sdfg/symbolic/assumptions.h"
#include "sdfg/tiles/layout.h"
#include "sdfg/tiles/swizzle.h"

Go to the source code of this file.

Classes

struct  sdfg::tiles::TiledCopy
struct  sdfg::tiles::TileGuard
 The ragged-tile boundary predicate, stored per-dim. More...
struct  sdfg::tiles::TileGuard::Dim

Namespaces

namespace  sdfg
namespace  sdfg::tiles

Enumerations

enum class  sdfg::tiles::CopyAtom { sdfg::tiles::ScalarSync , sdfg::tiles::VectorSync , sdfg::tiles::CpAsync , sdfg::tiles::CoalesceSync }
 The per-lane transfer primitive a tiled copy lowers to. More...
enum class  sdfg::tiles::CopyDirection { sdfg::tiles::In , sdfg::tiles::Out }
 Which way the tile moves between the flat (global) side and the packed buffer. More...
enum class  sdfg::tiles::CopyPhase { sdfg::tiles::Full , sdfg::tiles::LoadRegs , sdfg::tiles::StoreRegs }
 Which half of a register-staged copy a node performs. More...

Functions

symbolic::MultiExpression sdfg::tiles::delinearize_rowmajor (const symbolic::Expression &flat, const symbolic::MultiExpression &sizes)
 Row-major delinearization of a flat index into per-dim coordinates (dim 0 slowest), matching the buffer's tile linearization so both plan sides agree.
symbolic::Expression sdfg::tiles::simplify_tile_bound (const symbolic::Expression &max, const symbolic::Expression &base, const symbolic::Expression &size)
 Simplify a tile's inclusive bound max for coordinates base + i, 0 <= i < size, preserving the predicate base + i <= max on that range: drops min/max arguments dominated by another and min arguments at or above the tile's last coordinate (they never bind).
bool sdfg::tiles::coalesce_sweep_order (TiledCopy &plan, TileGuard &guard)
 Move the source's unit-stride tile dim last (lane-fastest in the row-major sweep), permuting both plan sides and the guard axes alike.

Detailed Description

A tiled copy plan: move one tile between memory levels.

A TiledCopy is a pure plan (no SDFG state): src maps a tile coordinate to the global element and dst to the local-buffer slot (with an optional XOR dst_swizzle on the buffer offset). A TileCopyNode carries one and its backend dispatcher lowers the cooperative copy.