Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
Exactly ONE of the following fields must be present
float
int
UTF-8 string
tensor value
list of floats
list of ints
list of UTF-8 strings
list of tensors
Used in:
GRAPH = 5;
GRAPHS = 10;
Used in:
Used in:
If set, this is the device to build the computation for. Valid device_ordinal values are: 0 to # of devices - 1. These values are identical to the device ordinal values used by StreamExecutor. The built executable will be executable on any device equivalent to the specified device as determined by Backend::devices_equivalent(). A value of -1 indicates this option has not been set.
If set, this specifies the layout of the result of the computation. If not set, the service will chose the layout of the result. A Shape is used to store the layout to accommodate tuple result shapes. A value of nullptr indicates the option has not been set.
The number of replicas of this computation that are to be executed. Defaults to 1.
The number of partitions in this computation. Defaults to 1.
Indicates whether to use SPMD (true) or MPMD (false) partitioning when num_partitions > 1 and XLA is requested to partition the input program.
Whether to automatically generate XLA shardings for SPMD partitioner.
Whether HLOs should be deduplicated.
If set, this specifies a static device assignment for the computation. Otherwise, the computation will be compiled generically and can be run with any device assignment compatible with the computation's replica and partition counts.
Whether input and output buffers are aliased if the associated parameter is passed-through XLA modules without being changed.
By default, XLA builds an executable by invoking standard compilation, i.e. running Compiler::Compile, or both Compiler::RunHloPasses and Compiler::RunBackend. When run_backend_only is set to true, XLA builds an executable by invoking only RunBackend and skip invoking RunHloPasses, which can be used to compile post-optimizations HLO modules.
Allows sharding propagation to propagate to the outputs. This changes the output shape of the computation (which is undesirable), but it can be used to allow to run partial compilation to determine what would be the output sharding of a computation if XLA would be allowed to propagate the sharding which can be used by higher level framework as a way to query intermediate sharding of operations when multiple computation would be chained and merged together. This is a vector of bool, because the user can control (if the output of the computation is a tuple) which elements of the tuple can have the sharding substituted and which don't. If only one boolean value is passed in the vector that's interpreted as the value to be applied for every single element of the output tuple. One value per element of the tuple means that each value is attached to one of the output elements.
Opaque profile data for any feedback directed optimizations.
Mesh shape in auto sharding options.
Mesh ids in auto sharding options.
Used in:
Used in:
The array of instructions is always in a valid dependency order, where operands appear before their users.
The id of this computation.
The id of the root of the computation.
Used in:
Literal, only present for kConstant.
Parameter number is only present for kParameter.
Index for kGetTupleElement.
Describes the window in a windowed operation such as convolution.
Describes the dimension numbers used for a convolution.
Dimensions present for some operations that require reshaping or broadcasting, including Reshape, Reduce, ReduceWindow, and Reverse.
Gather dimension numbers.
The id of this instruction.
Describes the [begin, end) index range and stride for slices.
Used in:
The array of computations is always in a valid dependency order, where callees appear before their callers.
The host program shape (with layout) of the entry computation.
The id of this module.
The subset of Onnx protos that are used in lczero.
'org.lczero.models.*'
Used in:
Used in:
Used in:
Used in:
Used in:
,Used in:
Used in:
,Basic types.
float
uint8_t
int8_t
uint16_t
int16_t
int32_t
int64_t
string
bool
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
Sequence of dimension numbers, from minor (fastest varying index) to major (slowest varying index). This field is required.
Used in:
Stored as interleaved real, imag floats.
Stored as interleaved real, imag doubles.
The F16s, BF16s, U16s and S16s are encoded in little endian byte order
Next = 26
Symbolization metadata for HLO Instructions. This metadata is used for debugging XLA code generation, as well as performance profiling of XLA-generated executables.
Used in:
The framework op name that generated this XLA op. Frameworks that build on top of XLA should mirror the names of their ops back to users by specifying the op_type. In this way, even if the framework's "ops" are implemented as multiple XLA HLO Ops, they can be grouped appropriately. (e.g. if a SoftMax layer is emitted into XLA as multiple ops, then each op should have the op_type be "SoftMax".)
The user-specified name of the op. This name is often unique within a computation. Note: some frameworks add auto-generated names if the user does not provide one.
Indicate a file and line that this op is associated to in a user's program. e.g. it could be the file and line of user code that generated the op.
Shape of the parameters and output of a computation (like a traditional function signature).
Used in:
,Used in:
, , , ,The element type for this shape.
The size (number of elements) for each dimension, or an upper bound on the size if the dimension is dynamic. In XLA, dimensions are numbered from 0 to N-1 for an N-dimensional array. The first element of 'dimensions' is the size of dimension 0, the second element is the size of dimension 1, and so forth. Empty list indicates a scalar. If the respective element in 'is_dimension_dynamic' is true then the value in this field represents an upper bound on the size of the dimension.
For tuples only, the shapes of constituent shapes in the tuple sequence.
The layout used to back this shape.
For arrays, this indicates whether or not each dimension is dynamically-sized. The number of elements in this repeated field should be zero (indicating that no dimensions are dynamic) or equal to the number of elements in the 'dimensions' field.
Used in:
Predicates are two-state booleans.
Signed integral values of fixed width.
Unsigned integral values of fixed width.
Floating-point values of fixed width. Note: if f16s are not natively supported on the device, they will be converted to f16 from f32 at arbirary points in the computation.
Truncated 16 bit floating-point format. This is similar to IEEE's 16 bit floating-point format, but uses 1 bit for the sign, 8 bits for the exponent and 7 bits for the mantissa.
FP8 dtypes, as described in this paper: https://arxiv.org/abs/2206.02915 F8E5M2FNUZ has 5 exponent bits and 2 mantissa bits. F8E4M3FNUZ has 4 exponent bits and 3 mantissa bits. The "FNUZ" means only Finite and NaN values are supported; zero is unsigned. Unlike IEEE types, infinities are not supported. NaN is represented when the exponent and mantissa bits are all 0s with a sign bit of 1. All other values are finite. These differences mean there's an additional exponent value available. To keep the same dynamic range as an IEEE-like FP8 type, the exponent is biased one more than would be expected given the number of exponent bits (8 for Float8E4M3FNUZ and 16 for Float8E5M2FNUZ).
Complex values of fixed width.
Paired F32 (real, imag), as in std::complex<float>.
Paired F64 (real, imag), as in std::complex<double>.
A tuple is a polymorphic sequence; e.g. a shape that holds different sub-shapes. They are used for things like returning multiple values from a computation; e.g. a computation that returns weights and biases may have a signature that results in a tuple like (f32[784x2000], f32[2000]) If a shape proto has the tuple element type, it may not have any entries in the dimensions field.
An opaque type used for passing context-specific data to a custom operation. Shapes of this primitive type will have empty dimensions and tuple_shapes fields. (OPAQUE would be a better name for this identifier, but that conflicts with a macro defined in windows.h.)
A token type threaded between side-effecting operations. Shapes of this primitive type will have empty dimensions and tuple_shapes fields.
Used in:
Used in: