Class Topology
Defined in tensorflow/contrib/tpu/python/tpu/topology.py
.
Describes a set of TPU devices.
Represents both the shape of the physical mesh, and the mapping between TensorFlow TPU devices to physical mesh coordinates.
__init__
__init__(
serialized=None,
mesh_shape=None,
device_coordinates=None
)
Builds a Topology object.
If serialized
is not None
, the topology is parsed from serialized
and
the other arguments are ignored. Otherwise, the topology is computed from
mesh_shape
and device_coordinates
.
Args:
serialized
: A serializedTopologyProto
, orNone
. If notNone
, the serialized proto is parsed to discover the topology.mesh_shape
: A sequence of 3 positive integers, orNone
. If notNone
, the shape of the TPU topology, in number of cores. Ignored ifserialized
is notNone
.device_coordinates
: A rank 3 numpy array that describes the mapping from TensorFlow TPU devices to TPU fabric coordinates, orNone
. Ignored ifserialized is not
None`.
Raises:
ValueError
: Ifserialized
does not describe a well-formed topology.ValueError
: Ifserialized
isNone
andmesh_shape
is not a sequence of 3 positive integers.ValueError
: Ifserialized
isNone
anddevice_coordinates
is not a rank 3 numpy int32 array that describes a valid coordinate mapping.
Properties
device_coordinates
Describes the mapping from TPU devices to topology coordinates.
Returns:
A rank 3 int32 array with shape [tasks, devices, axis]
.
tasks
is the number of tasks in the TPU cluster, devices
is the number
of TPU devices per task, and axis
is the number of axes in the TPU
cluster topology. Each entry gives the axis
-th coordinate in the
topology of a task/device pair. TPU topologies are 3-dimensional, with
dimensions (x, y, core number)
.
mesh_rank
Returns the number of dimensions in the mesh.
mesh_shape
A rank 1 int32 array describing the shape of the TPU topology.
num_tasks
Returns the number of TensorFlow tasks in the TPU slice.
num_tpus_per_task
Returns the number of TPU devices per task in the TPU slice.
Methods
tf.contrib.tpu.Topology.cpu_device_name_at_coordinates
cpu_device_name_at_coordinates(
device_coordinates,
job=None
)
Returns the CPU device attached to a logical core.
tf.contrib.tpu.Topology.serialized
serialized()
Returns the serialized form of the topology.
tf.contrib.tpu.Topology.task_ordinal_at_coordinates
task_ordinal_at_coordinates(device_coordinates)
Returns the TensorFlow task number attached to device_coordinates
.
Args:
device_coordinates
: An integer sequence describing a device's physical coordinates in the TPU fabric.
Returns:
Returns the TensorFlow task number that contains the TPU device with those physical coordinates.
tf.contrib.tpu.Topology.tpu_device_name_at_coordinates
tpu_device_name_at_coordinates(
device_coordinates,
job=None
)
Returns the name of the TPU device assigned to a logical core.
tf.contrib.tpu.Topology.tpu_device_ordinal_at_coordinates
tpu_device_ordinal_at_coordinates(device_coordinates)
Returns the TensorFlow device number at device_coordinates
.
Args:
device_coordinates
: An integer sequence describing a device's physical coordinates in the TPU fabric.
Returns:
Returns the TensorFlow device number within the task corresponding to attached to the device with those physical coordinates.