ConstrainShardingByName

ConstrainShardingByName#

class penzai.toolshed.sharding_util.ConstrainShardingByName[source]#

Bases: Layer

A layer that constrains the sharding of a tree of NamedArrays by name.

Variables:
  • mesh (jax.sharding.Mesh) – The Mesh to shard the tree to.

  • axis_name_to_mesh_name (dict[str, str | tuple[str, ...]] | None) – A mapping from array axis names to mesh axis names. If an axis name is not present, that axis will not be sharded. If a mesh axis name is a tuple, the corresponding axis will be sharded to multiple mesh axes. If this dictionary is not provided, it will be inferred as an “identity” mapping, where each axis is sharded to a mesh axis with the same name (if present).

Methods

__init__(mesh[, axis_name_to_mesh_name])

__call__(tree)

Attributes

axis_name_to_mesh_name

mesh

Inherited Methods

(expand to view inherited methods)

attributes_dict()

Constructs a dictionary with all of the fields in the class.

from_attributes(**field_values)

Directly instantiates a struct given all of its fields.

input_structure()

Returns the input structure of this layer.

key_for_field(field_name)

Generates a JAX PyTree key for a given field name.

output_structure()

Returns the output structure of this layer.

select()

Wraps this struct in a selection, enabling functional-style mutations.

tree_flatten()

Flattens this tree node.

tree_flatten_with_keys()

Flattens this tree node with keys.

tree_unflatten(aux_data, children)

Unflattens this tree node.

treescope_color()

Computes a CSS color to display for this object in treescope.