warp.tile_load#

warp.tile_load(
a: Array[Any],
shape: tuple[int, ...],
offset: tuple[int, ...],
storage: str,
bounds_check: bool,
aligned: bool,
) Tile[Any, tuple[int, ...]]#
  • Kernel

  • Differentiable

Load a tile from a global memory array.

This method will cooperatively load a tile from global memory using all threads in the block.

Parameters:
  • a – The source array in global memory

  • shape – Shape of the tile to load, must have the same number of dimensions as a

  • offset – Offset in the source array to begin reading from (optional)

  • storage – The storage location for the tile: "register" for registers (default) or "shared" for shared memory.

  • bounds_check – Needed for unaligned tiles, but can disable for memory-aligned tiles for faster load times

  • aligned – If True, skip runtime alignment checks for vectorized loads (shared memory, 2D+ tiles only). Has no effect for 1D tiles or register storage. Use when you guarantee that: (1) the base address at the tile offset is 16-byte aligned, (2) the array is contiguous (dense row-major strides), (3) all outer-dimension strides are multiples of 16 bytes, and (4) the tile fits entirely within array bounds. Address-alignment violations trap unconditionally (even in release builds). Bounds and contiguity violations trigger debug-only asserts; in release builds they cause silent data corruption.

Returns:

A tile with shape as specified and data type the same as the source array.

warp.tile_load(
a: Array[Any],
shape: int32,
offset: int32,
storage: str,
bounds_check: bool,
aligned: bool,
) Tile[Any, tuple[int, ...]]
  • Kernel

  • Differentiable

Load a tile from a global memory array.