warp.tile_atomic_add#

warp.tile_atomic_add(
a: Array[Any],
t: Tile[Any, tuple[int, ...]],
offset: tuple[int, ...],
bounds_check: bool,
) Tile[Any, tuple[int, ...]]#
  • Kernel

  • Differentiable

Atomically add a tile onto the array a, each element will be updated atomically.

param a:

Array in global memory, should have the same dtype as the input tile

param t:

Source tile to add to the destination array

param offset:

Offset in the destination array (optional)

param bounds_check:

Needed for unaligned tiles, but can disable for memory-aligned tiles for faster write times

returns:

A tile with the same dimensions and data type as the source tile, holding the original value of the destination elements

warp.tile_atomic_add(
a: Array[Any],
t: Tile[Any, tuple[int, ...]],
offset: int32,
bounds_check: bool,
) Tile[Any, tuple[int, ...]]
  • Kernel

  • Differentiable