BlockNonCyclic#

class nvmath.distributed.distribution.BlockNonCyclic(
process_grid: ProcessGrid,
*,
first_process: Sequence[int] | None = None,
)[source]#

Block distribution without cycles

Methods

__init__(
process_grid: ProcessGrid,
*,
first_process: Sequence[int] | None = None,
)[source]#
copy() Distribution[source]#

This is a common implementation for those distributions that only require a shallow copy.

shape(
rank: int,
global_shape: Sequence[int] | None = None,
) tuple[int, ...][source]#

Get the local shape of data on the given rank according to this distribution.

Parameters:
  • rank – the process rank for which to calculate the local shape.

  • global_shape – Global shape of data. Required if the distribution is not bound to a global shape, otherwise not required.

to(cls, /, *, ndim=None, copy=False)[source]#

Convert this distribution object to an equivalent distribution of the given type.

Parameters:
  • cls – the target distribution type.

  • ndim – dimensionality of the target distribution. Must be compatible with the dimensionality of the source distribution. This may be required if the source distribution doesn’t have associated dimensionality.

  • copy – Returns a copy if the source and target type are the same.

Raises:

ConvertDistributionError – if the conversion is not possible.

Attributes

block_sizes#

The block sizes of this BlockCyclic distribution

first_process#

Index in the process grid of the process who owns the first block of the distributed tensor.

ndim#
process_grid#

The process grid of this BlockCyclic distribution