cuda::experimental::places::make_partition#

Overloads#

make_partition(true_dims, spec, grid_dims)#

template<typename ...Specs>
auto cuda::experimental::places::make_partition(
dim4 true_dims,
partition_spec<Specs...> spec,
dim4 grid_dims
)

Build a statically shaped partition from typed dimension specs.

make_partition(shape, spec, grid_dims)#

template<typename Shape, typename ...Specs, typename = ::cuda::std::enable_if_t<__has_get_data_dims_v<Shape>>>
auto cuda::experimental::places::make_partition(
const Shape &shape,
partition_spec<Specs...> spec,
dim4 grid_dims
)

Build a statically shaped partition from a shape object and typed dimension specs.

Overload of make_partition() taking any object exposing dim4 get_data_dims() const (such as the shape of a logical data) in place of the explicit true extents, so that make_partition(lA.shape(), spec, grid.get_dims()) can be written directly. Forwards to the dim4 overload.

Parameters:
  • shape – [in] Shape object providing the true tensor extents

  • spec – [in] Typed per-dimension specification (one entry per tensor dimension, at most 4)

  • grid_dims – [in] Extents of the grid of places

Returns:

The statically shaped cute_partition built from shape.get_data_dims()

make_partition(place_leaves, place_axes, local_leaves, padded_dims, true_dims, grid_dims)#

template<size_t rank, size_t num_place_leaves, size_t num_local_leaves>
cute_partition<rank, num_place_leaves, num_local_leaves> cuda::experimental::places::make_partition(
const ::cuda::std::array<layout_leaf, num_place_leaves> &place_leaves,
const ::cuda::std::array<int, num_place_leaves> &place_axes,
const ::cuda::std::array<layout_leaf, num_local_leaves> &local_leaves,
dim4 padded_dims,
dim4 true_dims,
dim4 grid_dims
)

Build an expert statically shaped partition from exact leaf arrays.