Operaciones
mhlo.abs
(mhlo::AbsOp)
operación de abdominales
Sintaxis:
operation ::= `mhlo.abs` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Realiza una operación abs por elementos en el tensor operand
y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#abs
Ejemplo:
%result = mhlo.abs %operand : tensor<3xi32>
Rasgos: AlwaysSpeculatableImplTrait
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | tensor clasificado de entero sin signo de 4/8/16/32/64 bits o tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o 4/8/16/ Entero sin signo cuantificado uniforme de 32 bits o valores enteros sin signo cuantificados uniformemente de 4/8/16/32 bits por eje |
Resultados:
Resultado | Descripción |
---|---|
result | tensor clasificado de entero sin signo de 4/8/16/32/64 bits o tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o Entero con signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero sin signo cuantificado uniforme de 4/8/16/32 bits o 4/8/16/ Valores enteros sin signo cuantificados uniformemente por eje de 32 bits |
mhlo.add
(mhlo::AddOp)
Agregar operación
Sintaxis:
operation ::= `mhlo.add` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Realiza la suma por elementos de dos tensores lhs
y rhs
y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#add
Ejemplo:
%result = mhlo.add %lhs, %rhs : tensor<2x2xi32>
Rasgos: AlwaysSpeculatableImplTrait
, Commutative
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
lhs | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4/8 /Entero sin signo de 16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o cuantificación uniforme de 4/8/16/32 bits Entero con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje valores enteros sin signo |
rhs | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4/8 /Entero sin signo de 16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o cuantificación uniforme de 4/8/16/32 bits Entero con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje valores enteros sin signo |
Resultados:
Resultado | Descripción |
---|---|
result | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4/8 /Entero sin signo de 16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o cuantificación uniforme de 4/8/16/32 bits Entero con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje valores enteros sin signo |
mhlo.add_dependency
(mhlo::AddDependencyOp)
Operación Agregar Dependencia
Sintaxis:
operation ::= `mhlo.add_dependency` operands attr-dict `:` functional-type(operands, results)
Esta operación es privada del compilador XLA, por lo que aún no tiene una especificación.
De manera informal, esta operación tiene dos operandos: un operando de datos y un token. La salida de la operación es el operando de datos. Cuando se usa con AfterAll, esta operación permite ordenar operaciones sin efectos secundarios (aquellas que no producen valores simbólicos).
Ejemplo:
%1 = mhlo.add_dependency %arg0, %0 : (tensor<3x4xf32>, !mhlo.token) -> tensor<3x4xf32>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4/8 /Entero sin signo de 16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o cuantificación uniforme de 4/8/16/32 bits entero con signo o valores enteros sin signo cuantificados uniformemente de 4/8/16/32 bits o tensor clasificado de cuantificación uniforme de 4/8/16/32 bits por eje entero con signo o cuantificación uniforme de 4/8/16/32 bits por eje valores enteros sin signo o token |
token | simbólico |
Resultados:
Resultado | Descripción |
---|---|
output | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4/8 /Entero sin signo de 16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o cuantificación uniforme de 4/8/16/32 bits entero con signo o valores enteros sin signo cuantificados uniformemente de 4/8/16/32 bits o tensor clasificado de cuantificación uniforme de 4/8/16/32 bits por eje entero con signo o cuantificación uniforme de 4/8/16/32 bits por eje valores enteros sin signo o token |
mhlo.after_all
(mhlo::AfterAllOp)
Operación después de todo
Sintaxis:
operation ::= `mhlo.after_all` $inputs attr-dict
`:` custom<VariadicSameOperandsAndResultType>(ref($inputs), type($inputs), type($result))
Garantiza que las operaciones que producen las inputs
se ejecuten antes que cualquier operación que dependa del result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#after_all
Ejemplo:
%result = mhlo.after_all %input0, %input1 : !mhlo.token
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
inputs | variadic de token |
Resultados:
Resultado | Descripción |
---|---|
result | simbólico |
mhlo.all_gather
(mhlo::AllGatherOp)
Operación AllGather
Dentro de cada grupo de procesos en la cuadrícula de procesos, concatena los valores del tensor de operando de cada proceso a lo largo de all_gather_dim
y produce un tensor de resultado. El computation
se aplica por separado para cada operando en operands
, produciendo un resultado por operando.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_gather
Ejemplo:
%result = "mhlo.all_gather"(%operand) {
all_gather_dim = 1 : i64,
replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>
// channel_id = 0
channel_handle = #mhlo.channel_handle<handle = 0, type = 0>,
// use_global_device_ids = false
} : (tensor<2x2xf32>) -> tensor<2x4xf32>
Rasgos: SameOperandsAndResultElementType
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
all_gather_dim | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
replica_groups | ::mlir::DenseIntElementsAttr | Atributo de elementos enteros sin signo de 64 bits |
channel_handle | ::mlir::mhlo::ChannelHandleAttr | dos enteros de 64 bits 'identificar' y 'escribir' |
use_global_device_ids | ::mlir::AtributoUnidad | atributo de unidad |
Operandos:
Operando | Descripción |
---|---|
operands | variadic de tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4 /Entero sin signo de 8/16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o 4/8/16/32 bits Entero cuantificado uniforme con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero sin signo cuantificado uniforme de 4/8/16/32 bits por eje valores |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | variadic de tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4 /Entero sin signo de 8/16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o 4/8/16/32 bits Entero cuantificado uniforme con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero sin signo cuantificado uniforme de 4/8/16/32 bits por eje valores |
mhlo.all_reduce
(mhlo::AllReduceOp)
Operación AllReduce
Dentro de cada grupo de procesos en la cuadrícula de procesos, aplica un computation
función de reducción a los valores de un tensor de operando de cada proceso y produce un tensor de resultado. El computation
se aplica por separado para cada operando en operands
, produciendo un resultado por operando.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_reduce
Ejemplo:
%result = "mhlo.all_reduce"(%operand) ({
^bb0(%arg0: tensor<f32>, %arg1: tensor<f32>):
%0 = mhlo.add %arg1, %arg2 : tensor<f32>
mhlo.return %0 : tensor<f32>
}) {
replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>
// channel_id = 0
channel_handle = #mhlo.channel_handle<handle = 0, type = 0>
// use_global_device_ids = false
} : (tensor<4xf32>) -> tensor<4xf32>
Rasgos: InferTensorType
, SingleBlockImplicitTerminator<ReturnOp>
, SingleBlock
Interfaces: InferShapedTypeOpInterface
, InferTypeOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
replica_groups | ::mlir::DenseIntElementsAttr | Atributo de elementos enteros sin signo de 64 bits |
channel_handle | ::mlir::mhlo::ChannelHandleAttr | dos enteros de 64 bits 'identificar' y 'escribir' |
use_global_device_ids | ::mlir::AtributoUnidad | atributo de unidad |
Operandos:
Operando | Descripción |
---|---|
operands | variadic de tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4 /Entero sin signo de 8/16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o 4/8/16/32 bits Entero cuantificado uniforme con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero sin signo cuantificado uniforme de 4/8/16/32 bits por eje valores |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | variadic de tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4 /Entero sin signo de 8/16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o 4/8/16/32 bits Entero cuantificado uniforme con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero sin signo cuantificado uniforme de 4/8/16/32 bits por eje valores |
mhlo.all_to_all
(mhlo::AllToAllOp)
Operación todo a todo
Dentro de cada grupo de procesos en la cuadrícula de procesos, divide los valores del tensor operand
a lo largo split_dimension
en partes, dispersa las partes divididas entre los procesos, concatena las partes dispersas a lo largo de concat_dimension
y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_to_all
Ejemplo:
%result = "mhlo.all_to_all"(%operand) {
split_dimension = 1 : i64,
concat_dimension = 0 : i64,
split_count = 2 : i64,
replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>
} : (tensor<2x4xf32>) -> tensor<4x2xf32>
Rasgos: AlwaysSpeculatableImplTrait
, InferTensorType
, SameOperandsElementType
, SameOperandsShape
, SameVariadicOperandSize
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
split_dimension | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
concat_dimension | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
split_count | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
replica_groups | ::mlir::DenseIntElementsAttr | Atributo de elementos enteros sin signo de 64 bits |
channel_handle | ::mlir::mhlo::ChannelHandleAttr | dos enteros de 64 bits 'identificar' y 'escribir' |
Operandos:
Operando | Descripción |
---|---|
operand | variadic de tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4 /Entero sin signo de 8/16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o 4/8/16/32 bits Entero cuantificado uniforme con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero sin signo cuantificado uniforme de 4/8/16/32 bits por eje valores |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | variadic de tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4 /Entero sin signo de 8/16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o 4/8/16/32 bits Entero cuantificado uniforme con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero sin signo cuantificado uniforme de 4/8/16/32 bits por eje valores |
mhlo.and
(mhlo::AndOp)
y operación
Sintaxis:
operation ::= `mhlo.and` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Realiza AND por elementos de dos tensores lhs
y rhs
y produce un tensor result
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#and
Ejemplo:
%result = mhlo.and %lhs, %rhs : tensor<2x2xi32>
Rasgos: AlwaysSpeculatableImplTrait
, Commutative
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
lhs | tensor clasificado de pred (también conocido como booleano o entero de 1 bit) o entero sin signo de 4/8/16/32/64 bits o valores enteros sin signo de 4/8/16/32/64 bits |
rhs | tensor clasificado de pred (también conocido como booleano o entero de 1 bit) o entero sin signo de 4/8/16/32/64 bits o valores enteros sin signo de 4/8/16/32/64 bits |
Resultados:
Resultado | Descripción |
---|---|
result | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4/8 /Entero sin signo de 16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o cuantificación uniforme de 4/8/16/32 bits Entero con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje valores enteros sin signo |
mhlo.async_done
(mhlo::AsyncDoneOp)
Operación asíncrona
Esta operación es privada del compilador XLA, por lo que aún no tiene una especificación.
De manera informal, esta operación se bloquea hasta el final de un cálculo asincrónico. Devuelve el resultado final del cálculo asincrónico.
Consulte la documentación de AsyncStart para obtener más información.
Interfaces: InferTypeOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
called_computation | ::mlir::FlatSymbolRefAttr | atributo de referencia de símbolo plano |
execution_thread | ::mlir::StringAttr | atributo de cadena |
Operandos:
Operando | Descripción |
---|---|
bundle | async_bundle con cualquier combinación de tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) ) o entero sin signo de 4/8/16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o 8/4/16/ Entero con signo cuantificado uniforme de 32 bits o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero con signo cuantificado uniforme de 4/8/16/32 bits por valores enteros sin signo del eje o valores simbólicos |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | variadic de tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4 /Entero sin signo de 8/16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o 4/8/16/32 bits Entero cuantificado uniforme con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero sin signo cuantificado uniforme de 4/8/16/32 bits por eje valores o token o tupla anidada con cualquier combinación de tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o entero sin signo de 4/8/16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o 4 /Entero con signo cuantificado uniforme de 8/16/32 bits o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits o tensor clasificado de entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o 4/8 /Valores enteros sin signo o valores simbólicos cuantificados uniformemente de 16/32 bits por eje |
mhlo.async_start
(mhlo::AsyncStartOp)
Operación de inicio asíncrono
Esta operación es privada del compilador XLA, por lo que aún no tiene una especificación.
De manera informal, esta operación inicia un cálculo asincrónico.
Esto se utiliza cuando hay funciones que contienen esperas asincrónicas (como DMA) y cálculos en subprocesos. Por ejemplo, una función podría consistir en un cálculo, un DMA, otro cálculo, un segundo DMA y un cálculo final. Esto se representaría como async_start seguido de async_update y async_done. async_start haría el primer cálculo en el subproceso y luego iniciaría el DMA. async_update esperaría a que se complete el DMA si aún no se ha hecho, luego ejecutará el segundo cálculo en la función e iniciará el segundo DMA. Finalmente, async_done esperaría en este último DMA y luego ejecutaría el último cálculo que debe ejecutarse en el subproceso y devolvería el resultado de ese cálculo final.
operands
se pasan al cálculo directamente called_computation
es la función que se ejecutará de forma asincrónica execution_thread
es el nombre del hilo en el que se ejecutará. El hilo principal se llama "principal". Todos los hilos tienen nombres.
Esto devuelve todo el estado necesario entre operaciones asíncronas. Después de la asignación del búfer, los valores devueltos representan el espacio necesario para contener la entrada, los resultados y cualquier bloc de notas necesario o editado por la operación asíncrona.
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
called_computation | ::mlir::FlatSymbolRefAttr | atributo de referencia de símbolo plano |
execution_thread | ::mlir::StringAttr | atributo de cadena |
Operandos:
Operando | Descripción |
---|---|
inputs | variadic de tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4 /Entero sin signo de 8/16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o 4/8/16/32 bits Entero cuantificado uniforme con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero sin signo cuantificado uniforme de 4/8/16/32 bits por eje valores o token o tupla anidada con cualquier combinación de tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o entero sin signo de 4/8/16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o 4 /Entero con signo cuantificado uniforme de 8/16/32 bits o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits o tensor clasificado de entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o 4/8 /Valores enteros sin signo o valores simbólicos cuantificados uniformemente de 16/32 bits por eje |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | async_bundle con cualquier combinación de tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) ) o entero sin signo de 4/8/16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o 8/4/16/ Entero con signo cuantificado uniforme de 32 bits o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero con signo cuantificado uniforme de 4/8/16/32 bits por valores enteros sin signo del eje o valores simbólicos |
mhlo.async_update
(mhlo::AsyncUpdateOp)
Operación de actualización asíncrona
Esta operación es privada del compilador XLA, por lo que aún no tiene una especificación.
De manera informal, esta operación se bloquea en un cálculo asincrónico hasta una barrera de sincronización. Este bundle
devuelve después de operarlo.
Consulte la documentación de AsyncStart para obtener más información.
Interfaces: InferTypeOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
called_computation | ::mlir::FlatSymbolRefAttr | atributo de referencia de símbolo plano |
execution_thread | ::mlir::StringAttr | atributo de cadena |
Operandos:
Operando | Descripción |
---|---|
bundle | async_bundle con cualquier combinación de tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) ) o entero sin signo de 4/8/16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o 8/4/16/ Entero con signo cuantificado uniforme de 32 bits o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero con signo cuantificado uniforme de 4/8/16/32 bits por valores enteros sin signo del eje o valores simbólicos |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | async_bundle con cualquier combinación de tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) ) o entero sin signo de 4/8/16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o 8/4/16/ Entero con signo cuantificado uniforme de 32 bits o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero con signo cuantificado uniforme de 4/8/16/32 bits por valores enteros sin signo del eje o valores simbólicos |
mhlo.atan2
(mhlo::Atan2Op)
operación atan2
Sintaxis:
operation ::= `mhlo.atan2` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Realiza la operación atan2 por elementos en los tensores lhs
y rhs
y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#atan2
Ejemplo:
%result = mhlo.atan2 %lhs, %rhs : tensor<3xf32>
Rasgos: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
lhs | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o Entero con signo cuantificado uniforme de 4/8/16/32 bits o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
rhs | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o Entero con signo cuantificado uniforme de 4/8/16/32 bits o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
Resultados:
Resultado | Descripción |
---|---|
result | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o Entero con signo cuantificado uniforme de 4/8/16/32 bits o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
mhlo.batch_norm_grad
(mhlo::BatchNormGradOp)
Operación BatchNormGrad
Calcula los gradientes de varias entradas de BatchNormTrainingOp que se propagan hacia atrás desde grad_output
y produce tensores grad_operand
, grad_scale
y grad_offset
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_grad
Ejemplo:
%grad_operand, %grad_scale, %grad_offset =
"mhlo.batch_norm_grad"(%operand, %scale, %mean, %variance, %grad_output) {
epsilon = 0.0 : f32,
feature_index = 2 : i64
} : (tensor<2x2x2xf32>, tensor<2xf32>, tensor<2xf32>, tensor<2xf32>,
tensor<2x2x2xf32>) -> (tensor<2x2x2xf32>, tensor<2xf32>, tensor<2xf32>)
Rasgos: AlwaysSpeculatableImplTrait
, InferTensorType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
epsilon | ::mlir::FloatAttr | atributo flotante de 32 bits |
feature_index | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
Operandos:
Operando | Descripción |
---|---|
operand | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
scale | Tensor 1D de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
mean | Tensor 1D de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
variance | Tensor 1D de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
grad_output | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
Resultados:
Resultado | Descripción |
---|---|
grad_operand | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
grad_scale | Tensor 1D de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
grad_offset | Tensor 1D de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
mhlo.batch_norm_inference
(mhlo::BatchNormInferenceOp)
Operación BatchNormInference
Normaliza el tensor operand
en todas las dimensiones excepto en la dimensión feature_index
y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_inference
Ejemplo:
%result = "mhlo.batch_norm_inference"(%operand, %scale, %offset, %mean, %variance) {
epsilon = 0.0 : f32,
feature_index = 2 : i64
} : (tensor<2x2x2xf32>, tensor<2xf32>, tensor<2xf32>, tensor<2xf32>, tensor<2xf32>) -> tensor<2x2x2xf32>
Rasgos: AlwaysSpeculatableImplTrait
, InferTensorType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
epsilon | ::mlir::FloatAttr | atributo flotante de 32 bits |
feature_index | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
Operandos:
Operando | Descripción |
---|---|
operand | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
scale | Tensor 1D de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
offset | Tensor 1D de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
mean | Tensor 1D de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
variance | Tensor 1D de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
Resultados:
Resultado | Descripción |
---|---|
result | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
mhlo.batch_norm_training
(mhlo::BatchNormTrainingOp)
Operación de entrenamiento BatchNorm
Calcula la media y la varianza entre dimensiones espaciales y por lotes y normaliza el tensor operand
para cada característica en la dimensión feature_index
y produce tensores output
, batch_mean
y batch_var
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_training
Ejemplo:
%output, %batch_mean, %batch_var = "mhlo.batch_norm_training"(%operand, %scale, %offset) {
epsilon = 0.0 : f32,
feature_index = 2 : i64
} : (tensor<2x2x2xf32>, tensor<2xf32>, tensor<2xf32>) -> (tensor<2x2x2xf32>, tensor<2xf32>, tensor<2xf32>)
Rasgos: AlwaysSpeculatableImplTrait
, InferTensorType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
epsilon | ::mlir::FloatAttr | atributo flotante de 32 bits |
feature_index | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
Operandos:
Operando | Descripción |
---|---|
operand | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
scale | Tensor 1D de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
offset | Tensor 1D de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
Resultados:
Resultado | Descripción |
---|---|
output | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
batch_mean | Tensor 1D de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
batch_var | Tensor 1D de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o valores flotantes de 16 bits o flotantes de 32 bits o flotantes de 64 bits o bfloat16 |
mhlo.bitcast
(mhlo::BitcastOp)
Operación de transmisión de bits
Sintaxis:
operation ::= `mhlo.bitcast` operands attr-dict `:` functional-type(operands, results)
Esta operación es privada del compilador XLA, por lo que aún no tiene una especificación.
De manera informal, esta operación cambia la forma de la entrada de la misma manera que la disposición física de los elementos no cambia.
Esta operación necesita información de diseño para entender la "disposición física de los elementos", y el soporte de diseño en MHLO es actualmente un trabajo en progreso.
Ejemplo:
%0 = mhlo.bitcast %arg0 : (tensor<3x4xf32>) -> tensor<3x4x1xf32>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4/8 /Entero sin signo de 16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o cuantificación uniforme de 4/8/16/32 bits Entero con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje valores enteros sin signo |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4/8 /Entero sin signo de 16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o cuantificación uniforme de 4/8/16/32 bits Entero con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje valores enteros sin signo |
mhlo.bitcast_convert
(mhlo::BitcastConvertOp)
Operación BitcastConvert
Sintaxis:
operation ::= `mhlo.bitcast_convert` operands attr-dict `:` functional-type(operands, results)
Realiza una operación de difusión de bits en el tensor operand
y produce un tensor result
donde los bits de todo el tensor operand
se reinterpretan utilizando el tipo de tensor de result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#bitcast_convert
Ejemplo:
%result = mhlo.bitcast_convert %operand : (tensor<2xf32>) -> tensor<2x4xi8>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4/8 /Entero sin signo de 16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o cuantificación uniforme de 4/8/16/32 bits Entero con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje valores enteros sin signo |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4/8 /Entero sin signo de 16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o cuantificación uniforme de 4/8/16/32 bits Entero con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje valores enteros sin signo |
mhlo.broadcast
(mhlo::BroadcastOp)
Operación de transmisión
Esta operación está saliendo de StableHLO, por lo que no está incluida en la especificación: https://github.com/openxla/stablehlo/issues/3
De manera informal, esta operación hace lo mismo que la transmisión de XLA: https://www.tensorflow.org/xla/operation_semantics#broadcast
Ejemplo:
%result = mhlo.broadcast %operand, sizes = [1, 2] : (tensor<3xi32>) -> tensor<1x2x3xi32>
Rasgos: AlwaysSpeculatableImplTrait
, InferTensorType
, SameOperandsAndResultElementType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
broadcast_sizes | ::mlir::DenseIntElementsAttr | Atributo de elementos enteros sin signo de 64 bits |
Operandos:
Operando | Descripción |
---|---|
operand | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4/8 /Entero sin signo de 16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o cuantificación uniforme de 4/8/16/32 bits Entero con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje valores enteros sin signo |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | tensor clasificado de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o flotante de 32 bits o flotante de 64 bits o tipo bfloat16 o pred (también conocido como booleano o entero de 1 bit) o 4/8 /Entero sin signo de 16/32/64 bits o entero sin signo de 4/8/16/32/64 bits o tipo complejo con elementos flotantes de 32 bits o flotantes de 64 bits o cuantificación uniforme de 4/8/16/32 bits Entero con signo o entero sin signo cuantificado uniforme de 4/8/16/32 bits o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje o entero con signo cuantificado uniforme de 4/8/16/32 bits por eje valores enteros sin signo |
mhlo.broadcast_in_dim
(mhlo::BroadcastInDimOp)
Operación BroadcastInDim
Expande las dimensiones y/o rango de un tensor de entrada al duplicar los datos en el tensor operand
y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#broadcast_in_dim
Ejemplo:
%result = mhlo.broadcast_in_dim %operand, dims = [2, 1] : (tensor<1x3xi32>) -> tensor<2x3x2xi32>
Rasgos: AlwaysSpeculatableImplTrait
, HLO_CompatibleOperandsAndResultElementType
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
broadcast_dimensions | :: mlir :: denseintelementsattr | Atributo de elementos enteros de 64 bits Signless Integer |
Operandos:
Operando | Descripción |
---|---|
operand | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | statically shaped tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/ 8/16/32/64 bits Integer sin signos o 4/8/16/32/64 bits enteros sin firmar o tipo complejo con uniformes flotantes de 32 bits o elementos flotantes de 64 bits o 4/8/16/32 bits uniformes entero firmado cuantizado o 4/8/16/16/32 bits enteros cuantizados sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/16/32 bits cuantizados por eje sin signo sin firmar valores |
mhlo.case
(mhlo :: caseop)
Operación de caja
Produce la salida al ejecutar exactamente una function
de branches
dependiendo del valor del index
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#case
Ejemplo:
%result0, %result1 = "mhlo.case"(%index) ({
mhlo.return %result_branch0, %result_branch0 : tensor<2xi64>, tensor<2xi64>
}, {
mhlo.return %result_branch1, %result_branch1 : tensor<2xi64>, tensor<2xi64>
}) : (tensor<i32>) -> (tensor<2xi64>, tensor<2xi64>)
Rasgos: RecursiveMemoryEffects
, SingleBlockImplicitTerminator<ReturnOp>
, SingleBlock
Interfaces: InferTypeOpInterface
Operandos:
Operando | Descripción |
---|---|
index | Tensor de valores enteros sin signos de 32 bits |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | Variadic de tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ Tipo o F8E5M2 Tipo o F8E5M2FNUZ Tipo o Tipo Float de 16 bítes /8/16/32/64 bits Integer sin signos o 4/8/16/32/64 bits enteros sin firmar o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/32 bits Uniforme entero cuantizado firmado o 4/8/8/16/32 bits valores enteros cuantificados sin firmar o tensor clasificado de 4/8/16/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizado por eje sin firmar valores o token de enteros sin firmar |
mhlo.cbrt
(mhlo :: cbrtop)
Operación CBRT
Sintaxis:
operation ::= `mhlo.cbrt` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Realiza el funcionamiento de la raíz cúbica en forma de elemento en el tensor operand
y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cbrt
Ejemplo:
%result = mhlo.cbrt %operand : tensor<4xf32>
Rasgos: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ Tipo o F8E5M2 o F8E5M2FNUZ Tipo o Float de 16 bits o Float de 32 bits o Float de 64 bits o tipo BFLOAT16 Tipo o tipo complejo con 32 bits Float o 64 bit float o 64 bit o Float o 64 bit o tipo bfloat16 Tipo o tipo complejo de 32 bits o float de 32 bits o float de 64 bit 4/8/16/16/32 bits enteros firmados cuantizados o 4/8/16/16/32 bits valores de entero cuantificados uniformes sin firmar |
Resultados:
Resultado | Descripción |
---|---|
result | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ Tipo o F8E5M2 o F8E5M2FNUZ Tipo o Float de 16 bits o Float de 32 bits o Float de 64 bits o tipo BFLOAT16 Tipo o tipo complejo con 32 bits Float o 64 bit float o 64 bit o Float o 64 bit o tipo bfloat16 Tipo o tipo complejo de 32 bits o float de 32 bits o float de 64 bit 4/8/16/16/32 bits enteros firmados cuantizados o 4/8/16/16/32 bits valores de entero cuantificados uniformes sin firmar |
mhlo.ceil
(Mhlo :: Ceilop)
Operación de techo
Sintaxis:
operation ::= `mhlo.ceil` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Realiza un techo de elementos de tensor de operand
y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#ceil
Ejemplo:
%result = mhlo.ceil %operand : tensor<5xf32>
Rasgos: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o tipo F8E4M3FNUZ o tipo F8E5M2 o tipo F8E5M2FNUZ o Float de 16 bits o flotadores de 32 bit |
Resultados:
Resultado | Descripción |
---|---|
result | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o tipo F8E4M3FNUZ o tipo F8E5M2 o tipo F8E5M2FNUZ o Float de 16 bits o flotadores de 32 bit |
mhlo.cholesky
(mhlo :: choleskyop)
Operación de Cholesky
Calcula la descomposición de Cholesky de un lote de matrices.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cholesky
Ejemplo:
%result = mhlo.cholesky %a, lower = true : tensor<3x3xf32>
Rasgos: AlwaysSpeculatableImplTrait
, InferTensorType
, SameOperandsAndResultElementType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
lower | ::mlir::BoolAttr | atributo booleano |
Operandos:
Operando | Descripción |
---|---|
a | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ Tipo o F8E5M2 o F8E5M2FNUZ Tipo o Float de 16 bits o Float de 32 bits o Float o 64 bit o BFLOAT16 Tipo o tipo complejo con un tipo de flotación de 32 bits o 64 bits Float o Float de 64 bit |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ Tipo o F8E5M2 o F8E5M2FNUZ Tipo o Float de 16 bits o Float de 32 bits o Float o 64 bit o BFLOAT16 Tipo o tipo complejo con un tipo de flotación de 32 bits o 64 bits Float o Float de 64 bit |
mhlo.clamp
(Mhlo :: Clampop)
Operación de sujeción
Sintaxis:
operation ::= `mhlo.clamp` $min `,` $operand `,` $max attr-dict
`:` custom<SameOperandsAndResultType>(type($min), type($operand), type($max), type($result))
Agua cada elemento del tensor operand
entre un valor mínimo y máximo y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#clamp
Ejemplo:
%result = mhlo.clamp %min, %operand, %max : tensor<3xi32>
Rasgos: AlwaysSpeculatableImplTrait
, HLO_BroadcastingElementwise
, InferTensorType
, SameOperandsAndResultElementType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
min | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
operand | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
max | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
Resultados:
Resultado | Descripción |
---|---|
result | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
mhlo.collective_broadcast
(mhlo :: colectiveBroadcastop)
Operación colectiva de transmisión
Dentro de cada grupo de proceso en la cuadrícula de proceso, envíe el valor del tensor operand
desde el proceso de origen a los procesos de destino y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#collective_broadcast
Ejemplo:
%result = "mhlo.collective_broadcast"(%operand) {
replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
channel_handle = #mhlo.channel_handle<handle = 0, type = 0>
} : (tensor<1x2xi64>) -> tensor<1x2xi64>
Rasgos: CompatibleOperandsAndResultType
Interfaces: InferShapedTypeOpInterface
, InferTypeOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
replica_groups | :: mlir :: denseintelementsattr | Atributo de elementos enteros de 64 bits Signless Integer |
channel_handle | :: mlir :: mhlo :: ChannelHandLeattr | Dos enteros de 64 bits 'mango' y 'tipo' |
Operandos:
Operando | Descripción |
---|---|
operand | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
mhlo.collective_permute
(mhlo :: colectivepermuteop)
Operación colectiva por periódico
Dentro de cada grupo de proceso en la cuadrícula de proceso, envía el valor del tensor operand
desde el proceso de origen al proceso de destino y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#collective_permute
Ejemplo:
%result = "mhlo.collective_permute"(%operand) {
source_target_pairs = dense<[[0, 1], [1, 2]]> : tensor<2x2xi64>,
// channel_id = 0
channel_handle = #mhlo.channel_handle<handle = 0, type = 0>
} : (tensor<4x2xf32>) -> tensor<4x2xf32>
Rasgos: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
source_target_pairs | :: mlir :: denseintelementsattr | Atributo de elementos enteros de 64 bits Signless Integer |
channel_handle | :: mlir :: mhlo :: ChannelHandLeattr | Dos enteros de 64 bits 'mango' y 'tipo' |
Operandos:
Operando | Descripción |
---|---|
operand | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
mhlo.compare
(mhlo :: compareop)
Comparar operación
Sintaxis:
operation ::= `mhlo.compare` $comparison_direction `,` $lhs `,` $rhs (`,` $compare_type^)?
attr-dict `:` functional-type(operands, results)
Realiza la comparación de elementos de los tensores lhs
y rhs
de acuerdo con comparison_direction
y compare_type
, y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#compare
Ejemplo:
%result = mhlo.compare LT, %lhs, %rhs, FLOAT : (tensor<2xf32>, tensor<2xf32>) -> tensor<2xi1>
Rasgos: AlwaysSpeculatableImplTrait
, Elementwise
, InferTensorType
, lo mismo ocurre SameOperandsAndResultShape
SameOperandsElementType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
comparison_direction | :: mlir :: mhlo :: comparisondirectionattr | Qué operación de comparación realizar. |
compare_type | :: mlir :: mhlo :: comparación typeattr | Que tipo de comparación usar. |
Operandos:
Operando | Descripción |
---|---|
lhs | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
rhs | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | Tensor clasificado de los valores de Pred (también conocido como Boolean o 1 bit Integer) |
mhlo.complex
(mhlo :: compleP)
Operación compleja
Sintaxis:
operation ::= `mhlo.complex` operands attr-dict
`:` custom<ComplexOpType>(type($lhs), type($rhs), type($result))
Realiza una conversión de elementos a un valor complejo de un par de valores reales e imaginarios, lhs
y rhs
, y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#complex
Ejemplo:
%result = mhlo.complex %lhs, %rhs : tensor<2xcomplex<f32>>
Rasgos: AlwaysSpeculatableImplTrait
, Elementwise
, SameOperandsAndResultShape
, lo mismo SameOperandsElementType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
lhs | Tensor clasificado de 32 bits flotante o valores de flotación de 64 bits |
rhs | Tensor clasificado de 32 bits flotante o valores de flotación de 64 bits |
Resultados:
Resultado | Descripción |
---|---|
result | Tensor clasificado de tipo complejo con valores de elementos flotantes de 32 bits o flotadores de 64 bits |
mhlo.composite
(mhlo :: compositelop)
operación compuesta
Sintaxis:
operation ::= `mhlo.composite` $name $inputs attr-dict `:` functional-type(operands, results)
Encapsula una operación compuesta (compuesta) de otras operaciones de Stablehlo, tomando inputs
y composite_attributes
y produciendo results
. La semántica del OP se implementa mediante el atributo decomposition
. El OP composite
se puede reemplazar con su descomposición sin cambiar la semántica del programa. En los casos en que en la descomposición no proporciona la misma semántica OP, prefiera usar custom_call
.
El campo version
(predeterminado se usa a 0
) se usa para denotar cuando cambia la semántica de un compuesto.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#composit .
Ejemplo:
%results = mhlo.composite "my.op" %arg0, %arg1 {
decomposition = @my_op,
composite_attributes = { my_attribute = "my_value" },
version = 1 : i32
} : (tensor<f32>, tensor<f32>) -> tensor<f32>
Interfaces: SymbolUserOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
name | ::mlir::StringAttr | atributo de cadena |
composite_attributes | :: mlir :: diccionaryattr | Diccionario de valores de atributos nombrados |
decomposition | ::mlir::FlatSymbolRefAttr | atributo de referencia de símbolo plano |
version | ::mlir::IntegerAttr | Atributo entero sin signo de 32 bits |
Operandos:
Operando | Descripción |
---|---|
inputs | Variadic de tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ Tipo o F8E5M2 Tipo o F8E5M2FNUZ Tipo o Tipo Float de 16 bítes /8/16/32/64 bits Integer sin signos o 4/8/16/32/64 bits enteros sin firmar o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/32 bits entero uniforme cuantizado firmado o 4/8/16/16/32 bits enteros cuantizados sin signo o 4/8/16/16/32 bits cuantificados por número entero firmado o 4/8/16/16/32 bits cuantizado por eje unsigned unsigned valores o token o tuple anidados con cualquier combinación de tensor clasificado de f8e4m3b11fnuz o tipo f8e4m3fn o f8e4m3fnuz tipo o tipo f8e5m2 o f8e5m2fnuz tipo o float de 16 bits o 32 bit float o 64 bit float o bfloat16 type o predet o número entero de 1 bits) o 4/8/16/32/64 bits entero sin signos o 4/8/16/32/64 bits entero sin signo o tipo complejo con 32 bits flotante o elementos flotantes de 64 bits o 4 /8/16/32 bits Uniformes cuantizados Integer o 4/8/16/16/32 bits valores de entero sin firmar uniforme sin signo o tensor clasificado de 4/8/16/32 bits cuantificados por eje firmado o 4/8 /16/32 bits cuantificados por eje sin firmar valores enteros o valores de token |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | Variadic de tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ Tipo o F8E5M2 Tipo o F8E5M2FNUZ Tipo o Tipo Float de 16 bítes /8/16/32/64 bits Integer sin signos o 4/8/16/32/64 bits enteros sin firmar o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/32 bits entero uniforme cuantizado firmado o 4/8/16/16/32 bits enteros cuantizados sin signo o 4/8/16/16/32 bits cuantificados por número entero firmado o 4/8/16/16/32 bits cuantizado por eje unsigned unsigned valores o token o tuple anidados con cualquier combinación de tensor clasificado de f8e4m3b11fnuz o tipo f8e4m3fn o f8e4m3fnuz tipo o tipo f8e5m2 o f8e5m2fnuz tipo o float de 16 bits o 32 bit float o 64 bit float o bfloat16 type o predet o número entero de 1 bits) o 4/8/16/32/64 bits entero sin signos o 4/8/16/32/64 bits entero sin signo o tipo complejo con 32 bits flotante o elementos flotantes de 64 bits o 4 /8/16/32 bits Uniformes cuantizados Integer o 4/8/16/16/32 bits valores de entero sin firmar uniforme sin signo o tensor clasificado de 4/8/16/32 bits cuantificados por eje firmado o 4/8 /16/32 bits cuantificados por eje sin firmar valores enteros o valores de token |
mhlo.compute_reshape_shape
(mhlo :: computereshapeShapeop)
Operación de compensación
Sintaxis:
operation ::= `mhlo.compute_reshape_shape` operands attr-dict `:` functional-type(operands, results)
Esta operación es un trabajo en progreso, por lo que aún no se incluye en la especificación: https://github.com/openxla/stablehlo/issues/8
Informalmente, esta operación calcula una salida_shape para DynamicReshapeop a partir del número de elementos num_elements
en un operando de DynamicReshapeop y la forma dynamic_shape
proporcionada a la reashape de TF: https://www.tensorflow.org/api_docs/pythontt/reshape
Por ejemplo, para num_elements = 12
y dynamic_shape = [2, -1]
, el result
será [2, 6]
. Si los operandos no son válidos (por ejemplo, si las dimensiones no dividen uniformemente el número de elementos, o si hay múltiples valores de -1 en las dimensiones), esto conduce a un comportamiento indefinido.
Ejemplo:
%result = mhlo.compute_reshape_shape %num_elements, %dynamic_shape
: (index, tensor<2xi32>) -> tensor<2xi32>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
num_elements | índice |
dynamic_shape | 1D tensor de valores enteros o de índice |
Resultados:
Resultado | Descripción |
---|---|
result | 1D tensor de valores enteros o de índice |
mhlo.concatenate
(mhlo :: concatenateop)
Concatenato de operación
Concatena un número variádico de tensores en inputs
a lo largo de la dimensión dimension
en el mismo orden que los argumentos dados y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#concatenate
Ejemplo:
%result = mhlo.concatenate %input0, %input1, dim = 0 : (tensor<3x2xi64>, tensor<1x2xi64>) -> tensor<4x2xi64>
Rasgos: AlwaysSpeculatableImplTrait
, SameOperandsAndResultElementType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
dimension | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
Operandos:
Operando | Descripción |
---|---|
val | Variadic de tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ Tipo o F8E5M2 Tipo o F8E5M2FNUZ Tipo o Tipo Float de 16 bítes /8/16/32/64 bits Integer sin signos o 4/8/16/32/64 bits enteros sin firmar o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/32 bits entero uniforme cuantizado firmado o 4/8/16/16/32 bits enteros cuantizados sin signo o 4/8/16/16/32 bits cuantificados por número entero firmado o 4/8/16/16/32 bits cuantizado por eje unsigned unsigned valores |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
mhlo.constant
(mhlo :: constantop)
Operación constante
Produce un tensor output
a partir de un value
constante.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#constant
Ejemplo:
%output = mhlo.constant dense<[[0.0, 1.0], [2.0, 3.0]]> : tensor<2x2xf32>
Rasgos: AlwaysSpeculatableImplTrait
, ConstantLike
Interfaces: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
value | :: mlir :: Elementsattr | atributo de vector constante/tensor |
Resultados:
Resultado | Descripción |
---|---|
output | statically shaped tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/ 8/16/32/64 bits Integer sin signos o 4/8/16/32/64 bits enteros sin firmar o tipo complejo con uniformes flotantes de 32 bits o elementos flotantes de 64 bits o 4/8/16/32 bits uniformes entero firmado cuantizado o 4/8/16/16/32 bits enteros cuantizados sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/16/32 bits cuantizados por eje sin signo sin firmar valores |
mhlo.convert
(mhlo :: convertop)
Convertir operación
Sintaxis:
operation ::= `mhlo.convert` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Realiza una conversión de elemento de un tipo de elemento a otro en el tensor operand
y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#convert
Ejemplo:
%result = mhlo.convert %operand : (tensor<3xi32>) -> tensor<3xcomplex<f32>>
Rasgos: AlwaysSpeculatableImplTrait
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
Resultados:
Resultado | Descripción |
---|---|
result | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
mhlo.convolution
(mhlo :: convolución)
operación de convolución
Sintaxis:
operation ::= `mhlo.convolution` `(`operands`)`
`dim_numbers` `=` custom<ConvolutionDimensions>($dimension_numbers) `,`
`window` `=` `{` custom<WindowAttributes>($window_strides, $padding,
$lhs_dilation, $rhs_dilation,
$window_reversal) `}`
attr-dict `:` functional-type(operands, results)
Calcula productos DOT entre ventanas de lhs
y rodajas de rhs
y produce result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#convolution
Ejemplo:
%result = "mhlo.convolution"(%lhs, %rhs) {
window_strides = dense<4> : tensor<2xi64>,
padding = dense<0> : tensor<2x2xi64>,
lhs_dilation = dense<2> : tensor<2xi64>,
rhs_dilation = dense<1> : tensor<2xi64>,
window_reversal = dense<false> : tensor<2xi1>,
dimension_numbers = #mhlo.conv<[b, 0, 1, f]x[0, 1, i, o]->[b, 0, 1, f]>,
feature_group_count = 1 : i64,
batch_group_count = 1 : i64,
precision_config = [#stablehlo<precision DEFAULT>, #stablehlo<precision DEFAULT>]
} : (tensor<1x4x4x1xi32>, tensor<3x3x1x1xi32>) -> tensor<1x2x2x1xi32>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
window_strides | :: mlir :: denseintelementsattr | Atributo de elementos enteros de 64 bits Signless Integer |
padding | :: mlir :: denseintelementsattr | Atributo de elementos enteros de 64 bits Signless Integer |
lhs_dilation | :: mlir :: denseintelementsattr | Atributo de elementos enteros de 64 bits Signless Integer |
rhs_dilation | :: mlir :: denseintelementsattr | Atributo de elementos enteros de 64 bits Signless Integer |
window_reversal | :: mlir :: denseElementsattr | Atributo de vector booleano/tensor constante |
dimension_numbers | :: mlir :: mhlo :: convdimensionnumbersattr | Estructura de la información de dimensión para convivir |
feature_group_count | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
batch_group_count | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
precision_config | ::mlir::ArrayAttr | Atributo de configuración de precisión |
Operandos:
Operando | Descripción |
---|---|
lhs | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
rhs | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
mhlo.copy
(mhlo :: copyop)
Operación de copia
Sintaxis:
operation ::= `mhlo.copy` operands attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Esta operación es privada para el compilador XLA, por lo que aún no tiene una especificación.
Informalmente, esta operación es una copia de operand
. Dependiendo de los metadatos adjuntos a la operación, puede comportarse de manera muy diferente a una OP de OP.
Ejemplo:
%0 = mhlo.copy %arg0 : tensor<f32>
Rasgos: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
cross_program_prefetch_index | ::mlir::IntegerAttr | Atributo entero sin signo de 32 bits |
Operandos:
Operando | Descripción |
---|---|
operand | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantificados por eje entero sin firmar o valores de entero sin firmar o sin firmar Token o anidada token o tipo de tipo con cualquier combinación de tensor clasificado de tipo f8e4m3b11fnuz o tipo f8e4m3fn o f8e4m3fnuz tipo o tipo f8e5m2 o f8e5m2M2fnuz tipo o float de 16 bit -bit entero) o 4/8/16/32/64 bits entero sin signos o 4/8/16/32/64 bits entero sin signo o tipo complejo con 32 bits flotante o elementos flotantes de 64 bits o 4/8 /16/32 bits Uniformes cuantizados Integer o 4/8/16/32 bits Valores de entero sin signo cuantificado o tensor clasificado de 4/8/16/32 bits cuantificados por eje firmado o 4/8/16 /32 bits cuantificados por eje sin firmar valores enteros o valores de token |
Resultados:
Resultado | Descripción |
---|---|
result | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantificados por eje entero sin firmar o valores de entero sin firmar o sin firmar Token o anidada token o tipo de tipo con cualquier combinación de tensor clasificado de tipo f8e4m3b11fnuz o tipo f8e4m3fn o f8e4m3fnuz tipo o tipo f8e5m2 o f8e5m2M2fnuz tipo o float de 16 bit -bit entero) o 4/8/16/32/64 bits entero sin signos o 4/8/16/32/64 bits entero sin signo o tipo complejo con 32 bits flotante o elementos flotantes de 64 bits o 4/8 /16/32 bits Uniformes cuantizados Integer o 4/8/16/32 bits Valores de entero sin signo cuantificado o tensor clasificado de 4/8/16/32 bits cuantificados por eje firmado o 4/8/16 /32 bits cuantificados por eje sin firmar valores enteros o valores de token |
mhlo.cosine
(Mhlo :: Cosineop)
Operación coseno
Sintaxis:
operation ::= `mhlo.cosine` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Realiza la operación de coseno en forma de elemento en el tensor operand
y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cosine
Ejemplo:
%result = mhlo.cosine %operand : tensor<2xf32>
Rasgos: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ Tipo o F8E5M2 o F8E5M2FNUZ Tipo o Float de 16 bits o Float de 32 bits o Float de 64 bits o tipo BFLOAT16 Tipo o tipo complejo con 32 bits Float o 64 bit float o 64 bit o Float o 64 bit o tipo bfloat16 Tipo o tipo complejo de 32 bits o float de 32 bits o float de 64 bit 4/8/16/16/32 bits enteros firmados cuantizados o 4/8/16/16/32 bits valores de entero cuantificados uniformes sin firmar |
Resultados:
Resultado | Descripción |
---|---|
result | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ Tipo o F8E5M2 o F8E5M2FNUZ Tipo o Float de 16 bits o Float de 32 bits o Float de 64 bits o tipo BFLOAT16 Tipo o tipo complejo con 32 bits Float o 64 bit float o 64 bit o Float o 64 bit o tipo bfloat16 Tipo o tipo complejo de 32 bits o float de 32 bits o float de 64 bit 4/8/16/16/32 bits enteros firmados cuantizados o 4/8/16/16/32 bits valores de entero cuantificados uniformes sin firmar |
mhlo.count_leading_zeros
(mhlo :: clzop)
Operación CLZ
Sintaxis:
operation ::= `mhlo.count_leading_zeros` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Realiza un recuento de elementos del número de bits cero principales en el tensor operand
y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#count_leading_zeross
Ejemplo:
%result = mhlo.count_leading_zeros %operand : tensor<2x2xi8>
Rasgos: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | Tensor clasificado de 4/8/16/32/64 bits Integer sin signos o 4/8/16/32/64 bits Valores de Integer Unsigned |
Resultados:
Resultado | Descripción |
---|---|
result | Tensor clasificado de 4/8/16/32/64 bits Integer sin signos o 4/8/16/32/64 bits Valores de Integer Unsigned |
mhlo.create_token
(mhlo :: createTokenop)
Operación de createToken
Sintaxis:
operation ::= `mhlo.create_token` attr-dict `:` type(results)
Esta operación está saliendo de Stablehlo, por lo que no está incluida en la especificación: https://github.com/openxla/stablehlo/issues/3
Informalmente, esta operación hace lo mismo que AfterAllop con 0 entradas: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#after_all
Ejemplo:
%output = mhlo.create_token : !mhlo.token
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Resultados:
Resultado | Descripción |
---|---|
output | simbólico |
mhlo.cross-replica-sum
(Mhlo :: CrossReplicAsumop)
Operación CrossReplicAsum
Esta operación está saliendo de Stablehlo, por lo que no está incluida en la especificación: https://github.com/openxla/stablehlo/issues/3
Informalmente, esta operación hace lo mismo que Allreduceop con channel_id = 0
, use_global_device_ids = false
e implementación de computation
Adición: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_reduce
Ejemplo:
%result = "mhlo.cross-replica-sum"(%operand) {
replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>
} : (tensor<4xf32>) -> tensor<4xf32>
Rasgos: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
replica_groups | :: mlir :: denseintelementsattr | Atributo de elementos enteros de 64 bits Signless Integer |
Operandos:
Operando | Descripción |
---|---|
operand | Tensor clasificado de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ TIPO /16/32/64 bits Integer sin signos o 4/8/16/32/64 bits entero sin firmar o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados entero firmado o 4/8/16/16/32 bits enteros uniformes sin signo o 4/8/16/32 bits cuantificados por eje entero firmado o 4/8/16/32 bits cuantizados por eje sin firmar valores de entero sin firmar |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.cstr_reshapable
(mhlo::CstrReshapableOp)
CstrReshapable operation
Sintaxis:
operation ::= `mhlo.cstr_reshapable` operands attr-dict `:` functional-type(operands, results)
This operation is a work in progress, so it is not yet included in the specification: https://github.com/openxla/stablehlo/issues/8
Informally, this operation creates a witness on the constraint that ComputeReshapeShape would succeed with the provided operands.
Ejemplo:
%result = mhlo.cstr_reshapable %num_elements, %dynamic_shape
: (index, tensor<3xi32>) -> !shape.witness
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
num_elements | índice |
dynamic_shape | 1D tensor of integer or index values |
Resultados:
Resultado | Descripción |
---|---|
result |
mhlo.custom_call
(mhlo::CustomCallOp)
CustomCall operation
Sintaxis:
operation ::= `mhlo.custom_call` custom<CustomCallTarget>($call_target_name) `(` $inputs `)`
attr-dict `:` functional-type(operands, results)
Encapsulates an implementation-defined operation call_target_name
that takes inputs
and called_computations
and produces results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#custom_call
Ejemplo:
%results = "mhlo.custom_call"(%input0) {
call_target_name = "foo",
has_side_effect = false,
backend_config = "bar",
api_version = 1 : i32,
called_computations = [@foo]
} : (tensor<f32>) -> tensor<f32>
A custom call invokes code external to XLA. The `inputs` are passed to the
external code, and the external code is expected to produce a result of the
given type. The exact mechanism is backend-specific. For example, in the CPU
backend, a call instruction is emitted which targets a symbol with the name
`call_target_name`.
If XLA runtime is enabled for a backend, then custom calls use the runtime
custom call calling convention to call into the external functions. This
calling convention defines an ABI for encoding arguments, attributes and
results.
Depending on the API version there are two ways to pass extra bits of static
information to the external function:
1. For `API_VERSION_TYPED_FFI` custom calls `backend_config` must be a
dictionary attribute, that will be encoded according to the custom call
calling convention and passed to the external function as the attributes
argument. External code is expected to use declarative bindings (see
`xla/runtime/custom_call.h`) to decode them at run time. These custom
calls are only supported if XLA uses XLA runtime.
2. For previous API versions it is the user responsibility to encode extra
bits of static information as a string `backend_config` attribute, and
decode it at run time.
Interfaces: MemoryEffectOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
call_target_name | ::mlir::StringAttr | atributo de cadena |
has_side_effect | ::mlir::BoolAttr | atributo booleano |
backend_config | ::mlir::Atributo | string attribute or dictionary of named attribute values |
api_version | ::mlir::mhlo::CustomCallApiVersionAttr | Custom call API version |
called_computations | ::mlir::ArrayAttr | flat symbol ref array attribute |
custom_call_schedule | ::mlir::mhlo::CustomCallScheduleAttr | Specifies the desired schedule for the custom-call. |
operand_layouts | ::mlir::ArrayAttr | Array of layout (1D tensor of index type) attributes |
result_layouts | ::mlir::ArrayAttr | Array of layout (1D tensor of index type) attributes |
output_operand_aliases | ::mlir::ArrayAttr | Aliasing attribute for outputs and operands of CustomCall |
Operandos:
Operando | Descripción |
---|---|
inputs | variadic of tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token or nested tuple with any combination of tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | variadic of tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token or nested tuple with any combination of tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token values |
mhlo.divide
(mhlo::DivOp)
operación división
Sintaxis:
operation ::= `mhlo.divide` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Performs element-wise division of dividend lhs
and divisor rhs
tensors and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#divide
Ejemplo:
%result = mhlo.divide %lhs, %rhs : tensor<4xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.domain
(mhlo::DomainOp)
Domain operation
This operation is private to the XLA compiler, so it is does not yet have a specification.
Informally, these operations are used to group instructions with the same DomainMetadata property. ShardingMetadata is the main use case today to group instructions on the same device. Domain instructions provide two major benefits:
- Prevent unintentionally optimizing instructions across domains.
- Automatically assign the metadata of the instructions created in the domain. Without domain instructions, each HLO optimization pass would have to check and propagate the metadata, which would be easy to miss and also adds complexity to the compiler. Since domain instructions connect two different domains, each domain instruction is associated with two DomainMetadata -- one on the operand side and one on the user side of the domain.
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
kind | ::mlir::mhlo::DomainKindAttr | Kind of domain metatdata attached to an HLO domain. |
entry_metadata | ::mlir::StringAttr | atributo de cadena |
exit_metadata | ::mlir::StringAttr | atributo de cadena |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
mhlo.dot
(mhlo::DotOp)
Dot operation
This operation is on its way out of StableHLO, so it is not included in the specification: https://github.com/openxla/stablehlo/issues/3
Informally, this operation does the same thing as XLA's Dot: https://www.tensorflow.org/xla/operation_semantics#dot
Ejemplo:
%0 = mhlo.dot %arg0, %arg1 : (tensor<1x2xi32>, tensor<2x1xi32>) -> tensor<1x1xi32>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
precision_config | ::mlir::ArrayAttr | Precision Config attribute |
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dot_general
(mhlo::DotGeneralOp)
DotGeneral operation
Computes dot products between slices of lhs
and slices of rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dot_general
Ejemplo:
%result = "mhlo.dot_general"(%lhs, %rhs) {
dot_dimension_numbers = #mhlo.dot<
lhs_batching_dimensions = [0],
rhs_batching_dimensions = [0],
lhs_contracting_dimensions = [2],
rhs_contracting_dimensions = [1]
>,
precision_config = [#stablehlo<precision DEFAULT>, #stablehlo<precision DEFAULT>]
} : (tensor<2x2x2xi32>, tensor<2x2x2xi32>) -> tensor<2x2x2xi32>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
dot_dimension_numbers | ::mlir::mhlo::DotDimensionNumbersAttr | Attribute that models the dimension information for dot. |
precision_config | ::mlir::ArrayAttr | Precision Config attribute |
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dynamic_broadcast_in_dim
(mhlo::DynamicBroadcastInDimOp)
DynamicBroadcastInDim operation
This operation is a work in progress, so it is not yet included in the specification: https://github.com/openxla/stablehlo/issues/8
Informally, this operation does the same thing as BroadcastInDimOp except that the result shape is specified dynamically via output_dimensions
: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#broadcast_in_dim
It also accepts optional attributes to express static knowledge about the expanding behavior of dimensions. If not specified, all dimensions are assumed to be possibly expanding. The sets of dimensions that are known to be expanding and the set of dimensions that are known to be non-expanding must be disjoint and they must be a subset of the operand's dimensions.
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
broadcast_dimensions | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
known_expanding_dimensions | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
known_nonexpanding_dimensions | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
output_dimensions | 1D tensor of index or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dynamic_conv
(mhlo::DynamicConvOp)
DynamicConv operation
This operation is a work in progress, so it is not yet included in the specification: https://github.com/openxla/stablehlo/issues/8
Informally, this operation does the same thing as ConvolutionOp except that padding
is specified dynamically via d_padding
: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#convolution
Ejemplo:
%result = "mhlo.dynamic_conv"(%lhs, %rhs, %d_padding) {
window_strides = dense<4> : tensor<2xi64>,
lhs_dilation = dense<2> : tensor<2xi64>,
rhs_dilation = dense<1> : tensor<2xi64>,
window_reversal = dense<false> : tensor<2xi1>,
dimension_numbers = #mhlo.conv<[b, 0, 1, f]x[0, 1, i, o]->[b, 0, 1, f]>,
feature_group_count = 1 : i64,
batch_group_count = 1 : i64,
precision_config = [#stablehlo<precision DEFAULT>, #stablehlo<precision DEFAULT>]
} : (tensor<1x4x4x1xi32>, tensor<3x3x1x1xi32>, tensor<2x2xi64>) -> tensor<1x2x2x1xi32>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
window_strides | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
padding | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
lhs_dilation | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
rhs_dilation | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
window_reversal | ::mlir::DenseElementsAttr | constant boolean vector/tensor attribute |
dimension_numbers | ::mlir::mhlo::ConvDimensionNumbersAttr | Structure of dimension information for conv op |
feature_group_count | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
batch_group_count | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
precision_config | ::mlir::ArrayAttr | Precision Config attribute |
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
d_padding | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dynamic_gather
(mhlo::DynamicGatherOp)
DynamicGather operation
This operation is a work in progress, so it is not yet included in the specification: https://github.com/openxla/stablehlo/issues/8
Informally, this operation does the same thing as GatherOp except that slice_sizes
are specified dynamically: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#gather
Ejemplo:
%result = "mhlo.dynamic_gather"(%operand, %start_indices, %slice_sizes) {
dimension_numbers = #mhlo.gather<
offset_dims = [2, 3],
collapsed_slice_dims = [0],
start_index_map = [0, 2],
index_vector_dim = 2>,
indices_are_sorted = false
} : (tensor<3x4x2xi32>, tensor<2x3x2xi64>, tensor<3xi64>) -> tensor<2x3x2x2xi32>
Traits: AlwaysSpeculatableImplTrait
, InferTensorType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
dimension_numbers | ::mlir::mhlo::GatherDimensionNumbersAttr | Attribute that models the dimension information for gather |
indices_are_sorted | ::mlir::BoolAttr | atributo booleano |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
start_indices | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
slice_sizes | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dynamic_iota
(mhlo::DynamicIotaOp)
DynamicIota operation
This operation is a work in progress, so it is not yet included in the specification: https://github.com/openxla/stablehlo/issues/8
Informally, this operation does the same thing as IotaOp except that the result shape is specified dynamically via output_shape
: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#iota
Ejemplo:
%0 = mhlo.dynamic_iota %arg0, dim = 0 : (tensor<1xindex>) -> tensor<4xi32>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
iota_dimension | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
Operandos:
Operando | Descripción |
---|---|
output_shape | 1D tensor of index or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dynamic_pad
(mhlo::DynamicPadOp)
DynamicPad operation
Sintaxis:
operation ::= `mhlo.dynamic_pad` operands attr-dict `:` functional-type(operands, results)
Dynamically Pads the operand
, with amount of padding added at low-end/high-end/interior is passed through input tensors.
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
padding_value | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
edge_padding_low | 1D tensor of index or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
edge_padding_high | 1D tensor of index or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
interior_padding | 1D tensor of index or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dynamic_reshape
(mhlo::DynamicReshapeOp)
DynamicReshape operation
Sintaxis:
operation ::= `mhlo.dynamic_reshape` operands attr-dict `:` functional-type(operands, results)
This operation is a work in progress, so it is not yet included in the specification: https://github.com/openxla/stablehlo/issues/8
Informally, this operation does the same thing as ReshapeOp except that the result shape is specified dynamically via output_shape
: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reshape
Ejemplo:
%0 = mhlo.dynamic_reshape %arg0, %shape : (tensor<?xf32>, tensor<2xindex>) -> tensor<?x?xf32>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
output_shape | 1D tensor of index or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dynamic_slice
(mhlo::DynamicSliceOp)
DynamicSlice operation
Extracts a slice from the operand
using dynamically-computed starting indices and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_slice
Ejemplo:
%result = mhlo.dynamic_slice %operand, %start_indices0, %start_indices1, sizes = [2, 2]
: (tensor<4x4xi32>, tensor<i64>, tensor<i64>) -> tensor<2x2xi32>
Traits: AlwaysSpeculatableImplTrait
, InferTensorType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
slice_sizes | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
start_indices | variadic of 0D tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dynamic_update_slice
(mhlo::DynamicUpdateSliceOp)
DynamicUpdateSlice operation
Sintaxis:
operation ::= `mhlo.dynamic_update_slice` operands attr-dict `:` functional-type(operands, results)
Produces a result
tensor which is equal to the operand
tensor except that the slice starting at start_indices
is updated with the values in update
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_update_slice
Ejemplo:
%result = mhlo.dynamic_update_slice %operand, %update, %start_indices0, %start_indices1
: (tensor<4x4xi32>, tensor<2x2xi32>, tensor<i64>, tensor<i64>) -> tensor<4x4xi32>
Traits: AlwaysSpeculatableImplTrait
, InferTensorType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
update | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
start_indices | variadic of 0D tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.einsum
(mhlo::EinsumOp)
Einsum operation
This operation is on its way out of StableHLO, so it is not included in the specification: https://github.com/openxla/stablehlo/issues/3
Informally, this operation does the same thing as TF's einsum: https://www.tensorflow.org/api_docs/python/tf/einsum
Ejemplo:
%result = "mhlo.einsum"(%lhs, %rhs) {
einsum_config = "ab,bc->ac"
} : (tensor<4x16xf32>, tensor<16x4xf32>) -> tensor<4x4xf32>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
einsum_config | ::mlir::StringAttr | atributo de cadena |
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.erf
(mhlo::ErfOp)
Erf operation
Sintaxis:
operation ::= `mhlo.erf` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise erf operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#erf
Ejemplo:
%result = mhlo.erf %operand : tensor<2x2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
mhlo.exponential
(mhlo::ExpOp)
Exp operation
Sintaxis:
operation ::= `mhlo.exponential` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise exponential operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#exponential
Ejemplo:
%result = mhlo.exponential %operand : tensor<2x2xf64>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.exponential_minus_one
(mhlo::Expm1Op)
Expm1 operation
Sintaxis:
operation ::= `mhlo.exponential_minus_one` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise exponential minus one operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#exponential_minus_one
Ejemplo:
%result = mhlo.exponential_minus_one %operand : tensor<2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.fft
(mhlo::FftOp)
Fft operation
Performs the forward and inverse Fourier transforms for real and complex inputs/outputs.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#fft
Ejemplo:
%result = mhlo.fft %operand, type = FFT, length = [4] : (tensor<4xcomplex<f32>>) -> tensor<4xcomplex<f32>>
Traits: AlwaysSpeculatableImplTrait
, InferTensorType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
fft_type | ::mlir::mhlo::FftTypeAttr | XLA fast fourier transform type. |
fft_length | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.floor
(mhlo::FloorOp)
Floor operation
Sintaxis:
operation ::= `mhlo.floor` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise floor of operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#floor
Ejemplo:
%result = mhlo.floor %operand : tensor<2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
mhlo.fusion
(mhlo::FusionOp)
Fusion operation
This operation is private to the XLA compiler, so it is does not yet have a specification.
Informally, this operation consists of a group of basic ops (represented as a region attached to it). It serves as a hint to the backend that it is beneficial to emit the contained ops into a single loop nest or kernel.
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
fusion_kind | ::mlir::mhlo::FusionKindAttr | fusion kind |
output_operand_aliases | ::mlir::ArrayAttr | Aliasing attribute for outputs and operands of Fusion |
Operandos:
Operando | Descripción |
---|---|
inputs | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
Resultados:
Resultado | Descripción |
---|---|
results | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or nested tuple with any combination of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token values |
mhlo.gather
(mhlo::GatherOp)
Gather operation
Gathers slices from operand
tensor from offsets specified in start_indices
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#gather
Ejemplo:
%result = "mhlo.gather"(%operand, %start_indices) {
dimension_numbers = #mhlo.gather<
offset_dims = [2, 3],
collapsed_slice_dims = [0],
start_index_map = [0, 2],
index_vector_dim = 2>,
slice_sizes = dense<[0, 2, 2]> : tensor<3xi64>,
indices_are_sorted = false
} : (tensor<3x4x2xi32>, tensor<2x3x2xi64>) -> tensor<2x3x2x2xi32>
Traits: AlwaysSpeculatableImplTrait
, InferTensorType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
dimension_numbers | ::mlir::mhlo::GatherDimensionNumbersAttr | Attribute that models the dimension information for gather |
slice_sizes | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
indices_are_sorted | ::mlir::BoolAttr | atributo booleano |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
start_indices | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.get_dimension_size
(mhlo::GetDimensionSizeOp)
GetDimensionSize operation
Produces the size of the given dimension
of the operand
.
See https://github.com/openxla/stablehlo/blob/main/docs/spec.md#get_dimension_size
Ejemplo:
%result = mhlo.get_dimension_size %operand, dim = 1 : (tensor<2x3xf32>) -> tensor<i32>
Traits: AlwaysSpeculatableImplTrait
, InferTensorType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
dimension | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | tensor of 32-bit signless integer values |
mhlo.get_tuple_element
(mhlo::GetTupleElementOp)
GetTupleElement operation
Sintaxis:
operation ::= `mhlo.get_tuple_element` $operand `[` $index `]` attr-dict `:` functional-type(operands, results)
Extracts element at index
position of the operand
tuple and produces a result
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#get_tuple_element
Ejemplo:
%result = mhlo.get_tuple_element %operand[0] : (tuple<tensor<2xf32>, tuple<tensor<i32>>>) -> tensor<2xf32>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
index | ::mlir::IntegerAttr | Atributo entero sin signo de 32 bits |
Operandos:
Operando | Descripción |
---|---|
operand | nested tuple with any combination of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token or nested tuple with any combination of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token values |
mhlo.if
(mhlo::IfOp)
If operation
Produces the output from executing exactly one branch from true_branch
or false_branch
depending on the value of pred
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#if
Example: %result = "mhlo.if"(%pred) ({ "mhlo.return"(%result_true_branch) : (tensor
Traits: RecursiveMemoryEffects
, SingleBlockImplicitTerminator<ReturnOp>
, SingleBlock
Interfaces: InferTypeOpInterface
Operandos:
Operando | Descripción |
---|---|
pred | ranked tensor of pred (AKA boolean or 1-bit integer) values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
mhlo.imag
(mhlo::ImagOp)
Imag operation
Sintaxis:
operation ::= `mhlo.imag` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Extracts the imaginary part, element-wise, from the operand
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#imag
Ejemplo:
%result = mhlo.imag %operand : (tensor<2xcomplex<f32>>) -> tensor<2xf32>
Traits: AlwaysSpeculatableImplTrait
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
mhlo.infeed
(mhlo::InfeedOp)
Infeed operation
Reads data from the infeed and produces results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#infeed
Ejemplo:
%results:2 = "mhlo.infeed"(%token) {
infeed_config = ""
} : (!mhlo.token) -> (tensor<3x3x3xi32>, !mhlo.token)
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
infeed_config | ::mlir::StringAttr | atributo de cadena |
layout | ::mlir::ArrayAttr | atributo de matriz |
Operandos:
Operando | Descripción |
---|---|
token | simbólico |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | variadic of statically shaped tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values or statically shaped tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
mhlo.iota
(mhlo::IotaOp)
Iota operation
Fills an output
tensor with values in increasing order starting from zero along the iota_dimension
dimension.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#iota
Ejemplo:
%output = mhlo.iota dim = 0 : tensor<4x5xi32>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
iota_dimension | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
Resultados:
Resultado | Descripción |
---|---|
output | statically shaped tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements values |
mhlo.is_finite
(mhlo::IsFiniteOp)
IsFinite operation
Sintaxis:
operation ::= `mhlo.is_finite` $x attr-dict `:` functional-type(operands, results)
Performs element-wise check whether the value in x
is finite (ie is neither +Inf, -Inf, nor NaN) and produces a y
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#is_finite
Ejemplo:
%y = mhlo.is_finite %x : (tensor<7xf32>) -> tensor<7xi1>
Traits: AlwaysSpeculatableImplTrait
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
x | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
Resultados:
Resultado | Descripción |
---|---|
y | ranked tensor of pred (AKA boolean or 1-bit integer) values |
mhlo.log
(mhlo::LogOp)
Log operation
Sintaxis:
operation ::= `mhlo.log` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise logarithm operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#log
Ejemplo:
%result = mhlo.log %operand : tensor<2x2xf64>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.log_plus_one
(mhlo::Log1pOp)
Log1p operation
Sintaxis:
operation ::= `mhlo.log_plus_one` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise logarithm plus one operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#log_plus_one
Ejemplo:
%result = mhlo.log_plus_one %operand : tensor<6xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.logistic
(mhlo::LogisticOp)
Logistic operation
Sintaxis:
operation ::= `mhlo.logistic` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise logistic operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#logistic
Ejemplo:
%result = mhlo.logistic %operand : tensor<2x2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.map
(mhlo::MapOp)
Map operation
Applies a map function computation
to inputs
along the dimensions
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#map
Ejemplo:
%result = "mhlo.map"(%input0, %input1) ({
^bb0(%arg0: tensor<i32>, %arg1: tensor<i32>):
%0 = mhlo.multiply %arg0, %arg1 : tensor<i32>
mhlo.return %0 : tensor<i32>
}) {
dimensions = dense<[0, 1]> : tensor<2xi64>
} : (tensor<2x2xi32>, tensor<2x2xi32>) -> tensor<2x2xi32>
Traits: InferTensorType
, RecursiveMemoryEffects
, SameOperandsAndResultShape
, SingleBlockImplicitTerminator<ReturnOp>
, SingleBlock
Interfaces: InferShapedTypeOpInterface
, InferTypeOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
dimensions | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operandos:
Operando | Descripción |
---|---|
inputs | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4 /8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer valores |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.maximum
(mhlo::MaxOp)
Max operation
Sintaxis:
operation ::= `mhlo.maximum` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Performs element-wise max operation on tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#maximum
Ejemplo:
%result = mhlo.maximum %lhs, %rhs : tensor<4xf32>
Traits: AlwaysSpeculatableImplTrait
, Commutative
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.minimum
(mhlo::MinOp)
Min operation
Sintaxis:
operation ::= `mhlo.minimum` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Performs element-wise min operation on tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#minimum
Ejemplo:
%result = mhlo.minimum %lhs, %rhs : tensor<4xf32>
Traits: AlwaysSpeculatableImplTrait
, Commutative
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.multiply
(mhlo::MulOp)
Mul operation
Sintaxis:
operation ::= `mhlo.multiply` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Performs element-wise product of two tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#multiply
Ejemplo:
%result = mhlo.multiply %lhs, %rhs : tensor<2xi32>
Traits: AlwaysSpeculatableImplTrait
, Commutative
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.negate
(mhlo::NegOp)
Neg operation
Sintaxis:
operation ::= `mhlo.negate` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise negation of operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#negate
Ejemplo:
%result = mhlo.negate %operand : tensor<2x3xi32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.not
(mhlo::NotOp)
Not operation
Sintaxis:
operation ::= `mhlo.not` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise NOT of tensor operand
of type integer and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#not
Ejemplo:
%result = mhlo.not %operand : tensor<5x3x1xi1>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
mhlo.optimization_barrier
(mhlo::OptimizationBarrierOp)
OptimizationBarrier operation
Sintaxis:
operation ::= `mhlo.optimization_barrier` attr-dict ($operand^ `:` custom<PairwiseOpType>(type($operand), type($result))):(`(` `)`)?
Ensures that the operations that produce the operand
are executed before any operations that depend on the result
and prevents compiler transformations from moving operations across the barrier. Other than that, the operation is an identity, ie result
= operand
.
See https://github.com/openxla/stablehlo/blob/main/docs/spec.md#optimization_barrier
Ejemplo:
%result0, %result1 = mhlo.optimization_barrier %operand0, %operand1 : tensor<f32>, tensor<f32>
Traits: AlwaysSpeculatableImplTrait
, HLO_PairwiseSameOperandAndResultType
Interfaces: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
Resultados:
Resultado | Descripción |
---|---|
result | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
mhlo.or
(mhlo::OrOp)
Or operation
Sintaxis:
operation ::= `mhlo.or` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Performs element-wise OR of two tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#or
Ejemplo:
%result = mhlo.or %lhs, %rhs : tensor<2xi1>
Traits: AlwaysSpeculatableImplTrait
, Commutative
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
rhs | ranked tensor of pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.outfeed
(mhlo::OutfeedOp)
Outfeed operation
Writes inputs
to the outfeed and produces a result
token.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#outfeed
Ejemplo:
%result = "mhlo.outfeed"(%input0, %token) {
outfeed_config = ""
} : (tensor<3x3x3xi32>, !mhlo.token) -> !mhlo.token
Interfaces: InferTypeOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
outfeed_config | ::mlir::StringAttr | atributo de cadena |
Operandos:
Operando | Descripción |
---|---|
inputs | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4 /8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer valores |
token | simbólico |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | simbólico |
mhlo.pad
(mhlo::PadOp)
Pad operation
Expands operand
by padding around the tensor as well as between the elements of the tensor with the given padding_value
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#pad
Ejemplo:
%0 = mhlo.pad %arg0, %arg1, low = [0, 1], high = [2, 1], interior = [1, 2]
: (tensor<2x3xi32>, tensor<i32>) -> tensor<5x9xi32>
Traits: AlwaysSpeculatableImplTrait
, SameOperandsAndResultElementType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
edge_padding_low | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
edge_padding_high | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
interior_padding | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
padding_value | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.partition_id
(mhlo::PartitionIdOp)
PartitionId operation
Sintaxis:
operation ::= `mhlo.partition_id` attr-dict `:` type(results)
Produces partition_id
of the current process.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#partition_id
Ejemplo:
%result = mhlo.partition_id : tensor<ui32>
Interfaces: InferTypeOpInterface
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of 32-bit unsigned integer values |
mhlo.popcnt
(mhlo::PopulationCountOp)
PopulationCount operation
Sintaxis:
operation ::= `mhlo.popcnt` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise count of the number of bits set in the operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#popcnt
Ejemplo:
%result = mhlo.popcnt %operand : tensor<4xi8>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
mhlo.power
(mhlo::PowOp)
operación de potencia
Sintaxis:
operation ::= `mhlo.power` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Performs element-wise exponentiation of lhs
tensor by rhs
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#power
Ejemplo:
%result = mhlo.power %lhs, %rhs : tensor<6xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.real
(mhlo::RealOp)
Real operation
Sintaxis:
operation ::= `mhlo.real` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Extracts the real part, element-wise, from the operand
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#real
Ejemplo:
%result = mhlo.real %operand : (tensor<2xcomplex<f32>>) -> tensor<2xf32>
Traits: AlwaysSpeculatableImplTrait
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
mhlo.real_dynamic_slice
(mhlo::RealDynamicSliceOp)
RealDynamicSlice operation
Sintaxis:
operation ::= `mhlo.real_dynamic_slice` operands attr-dict `:` functional-type(operands, results)
This operation is a work in progress, so it is not yet included in the specification: https://github.com/openxla/stablehlo/issues/8
Informally, this operation does the same thing as SliceOp except that start_indices
, limit_indices
and strides
are specified dynamically: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#slice
Ejemplo:
%result = mhlo.real_dynamic_slice %operand,
%start_indices, %limit_indices, %strides
: (tensor<256x?xf32>, tensor<2xindex>, tensor<2xindex>, tensor<2xindex>) -> tensor<256x?xf32>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
start_indices | 1D tensor of index or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
limit_indices | 1D tensor of index or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
strides | 1D tensor of index or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.recv
(mhlo::RecvOp)
Recv operation
Receives data from a channel with channel_id
and produces results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#recv
Ejemplo:
%results:2 = "mhlo.recv"(%token) {
// channel_id = 5 : i64,
// channel_type = #stablehlo<channel_type HOST_TO_DEVICE>,
channel_handle = #mhlo.channel_handle<handle = 5, type = 3>,
is_host_transfer = true
} : (!mhlo.token) -> (tensor<3x4xi32>, !mhlo.token)
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
channel_handle | ::mlir::mhlo::ChannelHandleAttr | two 64-bit integers 'handle' and 'type' |
is_host_transfer | ::mlir::BoolAttr | atributo booleano |
Operandos:
Operando | Descripción |
---|---|
token | simbólico |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | variadic of statically shaped tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values or statically shaped tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
mhlo.reduce
(mhlo::ReduceOp)
Reduce operation
Applies a reduction function body
to inputs
and init_values
along the dimensions
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce
Ejemplo:
%result = "mhlo.reduce"(%input, %init_value) ({
^bb0(%arg0: tensor<i32>, %arg1: tensor<i32>):
%0 = "mhlo.add"(%arg0, %arg1) : (tensor<i32>, tensor<i32>) -> tensor<i32>
"mhlo.return"(%0) : (tensor<i32>) -> ()
}) {
dimensions = dense<1> : tensor<1xi64>
} : (tensor<1x6xi32>, tensor<i32>) -> tensor<1xi32>
Traits: InferTensorType
, RecursiveMemoryEffects
, SameVariadicOperandSize
, SingleBlockImplicitTerminator<ReturnOp>
, SingleBlock
Interfaces: InferShapedTypeOpInterface
, InferTypeOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
dimensions | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operandos:
Operando | Descripción |
---|---|
inputs | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4 /8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer valores |
init_values | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4 /8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer valores |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4 /8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer valores |
mhlo.reduce_precision
(mhlo::ReducePrecisionOp)
ReducePrecision operation
Sintaxis:
operation ::= `mhlo.reduce_precision` $operand `,` `format` `=` custom<ExponentMantissa>($exponent_bits, $mantissa_bits)
attr-dict `:` custom<SameOperandsAndResultType>(type($operand), type($output))
Performs element-wise conversion of operand
to another floating-point type that uses exponent_bits
and mantissa_bits
and back to the original floating-point type and produces an output
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce_precision
Ejemplo:
%output = mhlo.reduce_precision %operand, format = e5m2 : tensor<6xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
exponent_bits | ::mlir::IntegerAttr | Atributo entero sin signo de 32 bits |
mantissa_bits | ::mlir::IntegerAttr | Atributo entero sin signo de 32 bits |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
Resultados:
Resultado | Descripción |
---|---|
output | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
mhlo.reduce_scatter
(mhlo::ReduceScatterOp)
Operación de reducción de dispersión
Within each process group in the process grid, performs reduction, using computations
, over the values of the operand
tensor from each process, splits the reduction result along scatter_dimension
into parts, and scatters the split parts between the processes to produce the result
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce_scatter
Ejemplo:
%result = "mhlo.reduce_scatter"(%operand) ({
^bb0(%arg0: tensor<f32>, %arg1: tensor<f32>):
%0 = mhlo.add %arg0, %arg1 : tensor<f32>
mhlo.return %0 : tensor<f32>
}) {
scatter_dimension = 1 : i64,
replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
// channel_id = 0
channel_handle = #mhlo.channel_handle<handle = 0, type = 0>
// use_global_device_ids = false
} : (tensor<2x4xf32>) -> tensor<2x2xf32>
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
scatter_dimension | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
replica_groups | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
channel_handle | ::mlir::mhlo::ChannelHandleAttr | two 64-bit integers 'handle' and 'type' |
use_global_device_ids | ::mlir::AtributoUnidad | atributo de unidad |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.reduce_window
(mhlo::ReduceWindowOp)
ReduceWindow operation
Applies a reduction function body
to windows of inputs
and init_values
and produces results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce_window
Ejemplo:
%result = "mhlo.reduce_window"(%input, %init_value) ({
^bb0(%arg0: tensor<i32>, %arg1: tensor<i32>):
%0 = mhlo.add %arg0, %arg1 : tensor<i32>
mhlo.return %0 : tensor<i32>
}) {
window_dimensions = dense<[2, 1]> : tensor<2xi64>,
window_strides = dense<[4, 1]> : tensor<2xi64>,
base_dilations = dense<[2, 1]> : tensor<2xi64>,
window_dilations = dense<[3, 1]> : tensor<2xi64>,
padding = dense<[[2, 1], [0, 0]]> : tensor<2x2xi64>
} : (tensor<3x2xi32>, tensor<i32>) -> tensor<2x2xi32>
Traits: InferTensorType
, RecursiveMemoryEffects
, SameVariadicOperandSize
, SingleBlockImplicitTerminator<ReturnOp>
, SingleBlock
Interfaces: InferShapedTypeOpInterface
, InferTypeOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
window_dimensions | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
window_strides | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
base_dilations | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
window_dilations | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
padding | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operandos:
Operando | Descripción |
---|---|
inputs | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4 /8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer valores |
init_values | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4 /8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer valores |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4 /8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer valores |
mhlo.remainder
(mhlo::RemOp)
Rem operation
Sintaxis:
operation ::= `mhlo.remainder` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Performs element-wise remainder of dividend lhs
and divisor rhs
tensors and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#remainder
Ejemplo:
%result = mhlo.remainder %lhs, %rhs : tensor<4xi64>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.replica_id
(mhlo::ReplicaIdOp)
ReplicaId operation
Sintaxis:
operation ::= `mhlo.replica_id` attr-dict `:` type(results)
Produces replica_id
of the current process.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#replica_id
Ejemplo:
%result = mhlo.replica_id : tensor<ui32>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of 32-bit unsigned integer values |
mhlo.reshape
(mhlo::ReshapeOp)
Reshape operation
Sintaxis:
operation ::= `mhlo.reshape` operands attr-dict `:` functional-type(operands, results)
Performs reshape of operand
tensor to a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reshape
Ejemplo:
%result = mhlo.reshape %operand : (tensor<2xf32>) -> tensor<1x2xf32>
Traits: AlwaysSpeculatableImplTrait
, HLO_CompatibleOperandsAndResultElementType
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | statically shaped tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.return
(mhlo::ReturnOp)
_This operation is a work in progress, so it is not yet included in the specification: https://github.com/openxla/stablehlo/issues/425
Informally, this operation serves as a terminator for regions defined by
the StableHLO ops. Non-StableHLO ops, e.g. `func.func`, have their own
terminators, e.g. `func.return`.
Example:
```mlir
%result = "mhlo.reduce"(%input, %init_value) ({
^bb0(%arg0: tensor<i32>, %arg1: tensor<i32>):
%0 = "mhlo.add"(%arg0, %arg1) : (tensor<i32>, tensor<i32>) -> tensor<i32>
"mhlo.return"(%0) : (tensor<i32>) -> ()
}) {
dimensions = dense<1> : tensor<1xi64>
} : (tensor<1x6xi32>, tensor<i32>) -> tensor<1xi32>
```_
Syntax:
```
operation ::= mhlo.return
$results attr-dict ( :
type($results)^)?
Traits: `AlwaysSpeculatableImplTrait`, `Terminator`
Interfaces: `ConditionallySpeculatable`, `NoMemoryEffect (MemoryEffectOpInterface)`
Effects: `MemoryEffects::Effect{}`
#### Operands:
| Operand | Description |
| :-----: | ----------- |
| `results` | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token or nested tuple with any combination of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token values
### `mhlo.reverse` (mhlo::ReverseOp)
_Reverse operation_
Reverses the order of elements in the `operand` along the specified
`dimensions` and produces a `result` tensor.
See:
<a href="https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reverse">https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reverse</a>
Example:
```mlir
%result = mhlo.reverse %operand, dims = [1] : tensor<3x2xi32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
dimensions | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.rng
(mhlo::RngOp)
Rng operation
Generates random numbers using the rng_distribution
algorithm and produces a result
tensor of a given shape shape
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rng
Ejemplo:
%result = mhlo.rng %a, %b, %shape, distribution = NORMAL : (tensor<i32>, tensor<i32>, tensor<2xi64>) -> tensor<3x3xi32>
Traits: InferTensorType
Interfaces: InferShapedTypeOpInterface
, InferTypeOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
rng_distribution | ::mlir::mhlo::RngDistributionAttr | XLA PRNG distribution to be used. |
Operandos:
Operando | Descripción |
---|---|
a | 0D tensor of pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
b | 0D tensor of pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
shape | 1D tensor of index or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
mhlo.rng_bit_generator
(mhlo::RngBitGeneratorOp)
RngBitGenerator operation
Returns an output
filled with uniform random data and an updated output state output_state
given an initial state initial_state
using the pseudorandom number generator algorithm rng_algorithm
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rng_bit_generator
Ejemplo:
%output_state, %output = mhlo.rng_bit_generator %initial_state, algorithm = THREE_FRY : (tensor<2xui64>) -> (tensor<2xui64>, tensor<2x2xui64>)
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
rng_algorithm | ::mlir::mhlo::RngAlgorithmAttr | XLA PRNG algorithm to be used. |
Operandos:
Operando | Descripción |
---|---|
initial_state | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
Resultados:
Resultado | Descripción |
---|---|
output_state | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
output | statically shaped tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
mhlo.round_nearest_afz
(mhlo::RoundOp)
Round operation
Sintaxis:
operation ::= `mhlo.round_nearest_afz` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise rounding towards the nearest integer, breaking ties away from zero, on the operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#round_nearest_afz
Ejemplo:
%result = mhlo.round_nearest_afz %operand : tensor<5xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
mhlo.round_nearest_even
(mhlo::RoundNearestEvenOp)
RoundNearestEven operation
Sintaxis:
operation ::= `mhlo.round_nearest_even` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise rounding towards the nearest integer, breaking ties towards the even integer, on the operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#round_nearest_even
Ejemplo:
%result = mhlo.round_nearest_even %operand : tensor<5xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
mhlo.rsqrt
(mhlo::RsqrtOp)
Rsqrt operation
Sintaxis:
operation ::= `mhlo.rsqrt` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise reciprocal square root operation on operand
tensor and produces a result
tensor, implementing the rSqrt
operation from the IEEE-754 specification.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rsqrt
Ejemplo:
%result = mhlo.rsqrt %operand : tensor<2x2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.scatter
(mhlo::ScatterOp)
Scatter operation
Produces results
tensors which are equal to inputs
tensors except that several slices specified by scatter_indices
are updated with the values updates
using update_computation
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#scatter
Ejemplo:
%result = "mhlo.scatter"(%input, %scatter_indices, %update) ({
^bb0(%arg0: tensor<i32>, %arg1: tensor<i32>):
%0 = mhlo.add %arg0, %arg1 : tensor<i32>
mhlo.return %0 : tensor<i32>
}) {
scatter_dimension_numbers = #mhlo.scatter<
update_window_dims = [2,3],
inserted_window_dims = [0],
scatter_dims_to_operand_dims = [1, 0],
index_vector_dim = 2>,
indices_are_sorted = false,
unique_indices = false
} : (tensor<3x4x2xi32>, tensor<2x3x2xi64>, tensor<2x3x2x2xi32>) -> tensor<3x4x2xi32>
Traits: RecursiveMemoryEffects
, SameVariadicOperandSize
Interfaces: InferTypeOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
scatter_dimension_numbers | ::mlir::mhlo::ScatterDimensionNumbersAttr | Attribute that models the dimension information for scatter |
indices_are_sorted | ::mlir::BoolAttr | atributo booleano |
unique_indices | ::mlir::BoolAttr | atributo booleano |
Operandos:
Operando | Descripción |
---|---|
inputs | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4 /8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer valores |
scatter_indices | ranked tensor of integer or index values |
updates | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4 /8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer valores |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4 /8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer valores |
mhlo.select
(mhlo::SelectOp)
Seleccionar operación
Sintaxis:
operation ::= `mhlo.select` operands attr-dict `:`
custom<SelectOpType>(type($pred), type($on_true), type($on_false), type($result))
Produces a result
tensor where each element is selected from on_true
or on_false
tensor based on the value of the corresponding element of pred
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#select
Ejemplo:
%result = mhlo.select %pred, %on_true, %on_false : tensor<2x2xi1>, tensor<2x2xi32>
Traits: AlwaysSpeculatableImplTrait
, HLO_BroadcastingElementwise
, InferTensorType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
pred | ranked tensor of pred (AKA boolean or 1-bit integer) values |
on_true | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
on_false | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.select_and_scatter
(mhlo::SelectAndScatterOp)
SelectAndScatter operation
Scatters the values from the source
tensor using scatter
based on the outcome of reduce_window
of the input
tensor using select
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#select_and_scatter
Ejemplo:
%result = "mhlo.select_and_scatter"(%operand, %source, %init_value) ({
^bb0(%arg0: tensor<i32>, %arg1: tensor<i32>):
%0 = "mhlo.compare"(%arg0, %arg1) {
comparison_direction = #stablehlo<comparison_direction GE>
} : (tensor<i32>, tensor<i32>) -> tensor<i1>
"mhlo.return"(%0) : (tensor<i1>) -> ()
}, {
^bb0(%arg0: tensor<i32>, %arg1: tensor<i32>):
%0 = "mhlo.add"(%arg0, %arg1) : (tensor<i32>, tensor<i32>) -> tensor<i32>
"mhlo.return"(%0) : (tensor<i32>) -> ()
}) {
window_dimensions = dense<[3, 1]> : tensor<2xi64>,
window_strides = dense<[2, 1]> : tensor<2xi64>,
padding = dense<[[0, 1], [0, 0]]> : tensor<2x2xi64>
} : (tensor<4x2xi32>, tensor<2x2xi32>, tensor<i32>) -> tensor<4x2xi32>
Traits: RecursiveMemoryEffects
Interfaces: InferTypeOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
window_dimensions | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
window_strides | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
padding | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
source | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
init_value | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.send
(mhlo::SendOp)
Send operation
Sends inputs
to a channel channel_id
and produces a result
token.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#send
Ejemplo:
%result = "mhlo.send"(%operand, %token) {
// channel_id = 5 : i64,
// channel_type = #stablehlo<channel_type DEVICE_TO_HOST>,
channel_handle = #mhlo.channel_handle<handle = 5, type = 2>,
is_host_transfer = true
} : (tensor<3x4xi32>, !mhlo.token) -> !mhlo.token
Interfaces: InferTypeOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
channel_handle | ::mlir::mhlo::ChannelHandleAttr | two 64-bit integers 'handle' and 'type' |
is_host_transfer | ::mlir::BoolAttr | atributo booleano |
Operandos:
Operando | Descripción |
---|---|
inputs | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4 /8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer valores |
token | simbólico |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | simbólico |
mhlo.set_dimension_size
(mhlo::SetDimensionSizeOp)
SetDimensionSize operation
This operation is a work in progress, so it is not yet included in the specification: https://github.com/openxla/stablehlo/issues/8
Informally, this operation does the same thing as XLA's SetDimensionSize: https://www.tensorflow.org/xla/operation_semantics#setdimensionsize
Ejemplo:
%0 = mhlo.set_dimension_size %arg0, %arg1, dim = 1 : (tensor<4x2xf32>, tensor<i32>) -> tensor<4x2xf32>
Traits: AlwaysSpeculatableImplTrait
, InferTensorType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
dimension | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
size | tensor of 32-bit signless integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.shift_left
(mhlo::ShiftLeftOp)
ShiftLeft operation
Sintaxis:
operation ::= `mhlo.shift_left` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Performs element-wise left-shift operation on the lhs
tensor by rhs
number of bits and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_left
Ejemplo:
%result = mhlo.shift_left %lhs, %rhs : tensor<6xi8>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
rhs | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
mhlo.shift_right_arithmetic
(mhlo::ShiftRightArithmeticOp)
ShiftRightArithmetic operation
Sintaxis:
operation ::= `mhlo.shift_right_arithmetic` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Performs element-wise arithmetic right-shift operation on the lhs
tensor by rhs
number of bits and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_right_arithmetic
Ejemplo:
%result = mhlo.shift_right_arithmetic %lhs, %rhs : tensor<6xi8>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
rhs | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
mhlo.shift_right_logical
(mhlo::ShiftRightLogicalOp)
ShiftRightLogical operation
Sintaxis:
operation ::= `mhlo.shift_right_logical` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Performs element-wise logical right-shift operation on the lhs
tensor by rhs
number of bits and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_right_logical
Ejemplo:
%result = mhlo.shift_right_logical %lhs, %rhs : tensor<6xi8>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
rhs | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
mhlo.sign
(mhlo::SignOp)
Sign operation
Sintaxis:
operation ::= `mhlo.sign` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Returns the sign of the operand
element-wise and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sign
Ejemplo:
%result = mhlo.sign %operand : tensor<7xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of 4/8/16/32/64-bit signless integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of 4/8/16/32/64-bit signless integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.sine
(mhlo::SineOp)
Sine operation
Sintaxis:
operation ::= `mhlo.sine` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise sine operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sine
Ejemplo:
%result = mhlo.sine %operand : tensor<2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.slice
(mhlo::SliceOp)
Operación de corte
Extracts a slice from the operand
using statically-computed starting indices and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#slice
Ejemplo:
%result = "mhlo.slice" (%operand) {
start_indices = dense<[1, 2]> : tensor<2xi64>,
limit_indices = dense<[3, 4]> : tensor<2xi64>,
strides = dense<1> : tensor<2xi64>
} : (tensor<3x4xi64>) -> tensor<2x2xi64>
Traits: AlwaysSpeculatableImplTrait
, SameOperandsAndResultElementType
Interfaces: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
start_indices | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
limit_indices | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
strides | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.sort
(mhlo::SortOp)
Sort operation
Sorts a variadic number of tensors in inputs
together, according to a custom comparator
, along the given dimension
and produces a variadic number of tensors as results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sort
Ejemplo:
%result0, %result1 = "mhlo.sort"(%input0, %input1) ({
^bb0(%arg0: tensor<i32>, %arg1: tensor<i32>, %arg2: tensor<i32>, %arg3: tensor<i32>):
%predicate = "mhlo.compare"(%arg0, %arg1) {
comparison_direction = #stablehlo<comparison_direction GT>
} : (tensor<i32>, tensor<i32>) -> tensor<i1>
"mhlo.return"(%predicate) : (tensor<i1>) -> ()
}) {
dimension = 0 : i64,
is_stable = true
} : (tensor<2x3xi32>, tensor<2x3xi32>) -> (tensor<2x3xi32>, tensor<2x3xi32>)
Traits: InferTensorType
, RecursiveMemoryEffects
, SameOperandsAndResultShape
Interfaces: InferShapedTypeOpInterface
, InferTypeOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
dimension | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
is_stable | ::mlir::BoolAttr | atributo booleano |
Operandos:
Operando | Descripción |
---|---|
inputs | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4 /8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer valores |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4 /8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer valores |
mhlo.sparse_dot
(mhlo::SparseDotOp)
Sparse dot operation
Similar to dot_general
operation, with one or both of the operands being sparse. An additional argument provides sparsity meta information. Disclaimer: this op is experimental / a work in progress.
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
lhs_sparsity | ::mlir::mhlo::SparsityDescriptorAttr | Describes structured (N:M) sparsity configuration |
rhs_sparsity | ::mlir::mhlo::SparsityDescriptorAttr | Describes structured (N:M) sparsity configuration |
dot_dimension_numbers | ::mlir::mhlo::DotDimensionNumbersAttr | Attribute that models the dimension information for dot. |
precision_config | ::mlir::ArrayAttr | Precision Config attribute |
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
meta | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4 /8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer valores |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.sqrt
(mhlo::SqrtOp)
Sqrt operation
Sintaxis:
operation ::= `mhlo.sqrt` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise square root operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sqrt
Ejemplo:
%result = mhlo.sqrt %operand : tensor<2x2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.stochastic_convert
(mhlo::StochasticConvertOp)
StochasticConvert operation
This operation is a work in progress, so it is not yet included in the specification: https://github.com/openxla/stablehlo/issues/295
Informally, this operation performs element-wise conversion of values from a bigger type to a smaller one with stochastic rounding using the random number passed in.
Traits: AlwaysSpeculatableImplTrait
, Elementwise
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
random | ranked tensor of 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.subtract
(mhlo::SubtractOp)
Subtract operation
Sintaxis:
operation ::= `mhlo.subtract` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Performs element-wise subtraction of two tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#subtract
Ejemplo:
%result = mhlo.subtract %lhs, %rhs : tensor<2xi32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.tan
(mhlo::TanOp)
Tan operation
Sintaxis:
operation ::= `mhlo.tan` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
This operation is a work in progress, so it is not yet included in the specification: https://github.com/openxla/stablehlo/issues/954
Informally, this operation returns Tan(operand)
element-wise.
Ejemplo:
%0 = mhlo.tan %arg0 : tensor<2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements values |
mhlo.tanh
(mhlo::TanhOp)
Tanh operation
Sintaxis:
operation ::= `mhlo.tanh` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise hyperbolic tangent operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tanh
Ejemplo:
%result = mhlo.tanh %operand : tensor<2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.topk
(mhlo::TopKOp)
TopK operation
Sintaxis:
operation ::= `mhlo.topk` `(`$operand `,` `k` `=` $k (`,` `largest` `=` $largest^)? `)` attr-dict `:`
type($operand) `->` `(`type($values)`,` type($indices)`)`
Returns top k
values and their indices, along the last dimension of the operand if largest=true
or the bottom k
values if largest=false
.
See: https://www.tensorflow.org/xla/operation_semantics#top-k
Ejemplo:
%values, %indices = mhlo.topk(%operand, k=5, largest=true)
: tensor<100xf32> -> (tensor<5xf32>, tensor<5xi32>)
Traits: InferTensorType
, RecursiveMemoryEffects
Interfaces: InferShapedTypeOpInterface
, InferTypeOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
k | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
largest | ::mlir::BoolAttr | atributo booleano |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
values | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
indices | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.torch_index_select
(mhlo::TorchIndexSelectOp)
TorchIndexSelect operation
This operation is on its way out of StableHLO, so it is not included in the specification: https://github.com/openxla/stablehlo/issues/3
Informally, this operation does the same thing as PyTorch's index_select, augmented with support for batch dimensions: https://pytorch.org/docs/stable/generated/torch.index_select.html
The batch_dims
attribute specifies the number of major batch dimensions (0 or more) that act like a multidimensional loop over both the operand and the index.
Ejemplo:
%result = "mhlo.torch_index_select"(%operand, %index) {
dim = 2 : i64,
batch_dims = 1 : i64
} : (tensor<8x128x3072x64xf32>, tensor<8x16x1024xi32>) -> tensor<8x128x16x1024x64xf32>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
dim | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
batch_dims | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
index | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.trace
(mhlo::TraceOp)
Trace operation
Sintaxis:
operation ::= `mhlo.trace` $operand `,` $tag attr-dict `:` type($operand)
This operation is on its way out of StableHLO, so it is not included in the specification: https://github.com/openxla/stablehlo/issues/604
It is not used by JAX, PyTorch or TensorFlow, so it looks like we should've classified it as "Private to XLA" and not included it in StableHLO in the first place. With that in mind, its semantics will not be documented here.
Ejemplo:
mhlo.trace %arg0, "In test code." : tensor<5x1x5xi32>
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
tag | ::mlir::StringAttr | atributo de cadena |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.transpose
(mhlo::TransposeOp)
Transpose operation
Permutes the dimensions of operand
tensor using permutation
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#transpose
Ejemplo:
%0 = mhlo.transpose %arg0, dims = [2, 1, 0] : (tensor<1x2x3xi32>) -> tensor<3x2x1xi32>
Traits: AlwaysSpeculatableImplTrait
, HLO_CompatibleOperandsAndResultElementType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
permutation | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.triangular_solve
(mhlo::TriangularSolveOp)
TriangularSolve operation
Solves batches of systems of linear equations with lower or upper triangular coefficient matrices.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#triangular_solve
Ejemplo:
%result = "mhlo.triangular_solve"(%a, %b) {
left_side = true,
lower = true,
unit_diagonal = false,
transpose_a = #stablehlo<transpose NO_TRANSPOSE>
} : (tensor<3x3xf32>, tensor<3x3xf32>) -> tensor<3x3xf32>
Traits: AlwaysSpeculatableImplTrait
, InferTensorType
, SameOperandsAndResultElementType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
left_side | ::mlir::BoolAttr | atributo booleano |
lower | ::mlir::BoolAttr | atributo booleano |
unit_diagonal | ::mlir::BoolAttr | atributo booleano |
transpose_a | ::mlir::mhlo::TransposeAttr | Transpose options |
Operandos:
Operando | Descripción |
---|---|
a | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements values |
b | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements values |
mhlo.tuple
(mhlo::TupleOp)
Tuple operation
Sintaxis:
operation ::= `mhlo.tuple` $val attr-dict `:` custom<TupleOpType>(type($val), type($result))
Produces a result
tuple from values val
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tuple
Ejemplo:
%result = mhlo.tuple %val0, %val1 : tuple<tensor<2xf32>, tuple<tensor<i32>>>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
val | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token or nested tuple with any combination of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token values |
Resultados:
Resultado | Descripción |
---|---|
result | nested tuple with any combination of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token values |
mhlo.unary_einsum
(mhlo::UnaryEinsumOp)
UnaryEinsum operation
This operation is on its way out of StableHLO, so it is not included in the specification: https://github.com/openxla/stablehlo/issues/3
Informally, this operation does the same thing as TF's einsum: https://www.tensorflow.org/api_docs/python/tf/einsum
Ejemplo:
%result = "mhlo.unary_einsum"(%operand) {
einsum_config = "ab->a"
} : (tensor<4x16xf32>) -> tensor<4xf32>
Rasgos: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
einsum_config | ::mlir::StringAttr | atributo de cadena |
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.uniform_dequantize
(mhlo::UniformDequantizeOp)
UniformDequantize operation
Sintaxis:
operation ::= `mhlo.uniform_dequantize` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise conversion of quantized tensor operand
to a floating-point tensor result
according to the quantization parameters defined by the operand
type.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#uniform_dequantize
Ejemplo:
%result = mhlo.uniform_dequantize %operand : (tensor<16x16x!quant.uniform<i8:f32, 34.0:16>>) -> tensor<16x16xf32>
Traits: AlwaysSpeculatableImplTrait
, Elementwise
, InferTensorType
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
mhlo.uniform_quantize
(mhlo::UniformQuantizeOp)
UniformQuantize operation
Sintaxis:
operation ::= `mhlo.uniform_quantize` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise conversion of floating-point tensor or quantized tensor operand
to a quantized tensor result
according to the quantization parameters defined by the result
type.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#uniform_quantize
Ejemplo:
%result = mhlo.uniform_quantize %operand : (tensor<16x16xf32>) -> tensor<16x16x!quant.uniform<ui8:f32, 34.0:16>>
Traits: AlwaysSpeculatableImplTrait
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
operand | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.while
(mhlo::WhileOp)
While operation
Produces the output from executing body
function 0 or more times while the cond
function outputs true
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#while
Ejemplo:
%results0, %results1 = "mhlo.while"(%operand0, %operand1) ({
^bb0(%arg0: tensor<i32>, %arg1: tensor<i32>):
%0 = "mhlo.compare"(%arg0, %arg1) {
comparison_direction = #stablehlo<comparison_direction LT>
} : (tensor<i32>, tensor<i32>) -> tensor<i1>
"mhlo.return"(%0) : (tensor<i1>) -> ()
}, {
^bb0(%arg0: tensor<i32>, %arg1: tensor<i32>):
%0 = "mhlo.add"(%arg0, %constant0) : (tensor<i32>, tensor<i32>) -> tensor<i32>
"mhlo.return"(%0, %arg1) : (tensor<i32>, tensor<i32>) -> ()
}) : (tensor<i32>, tensor<i32>) -> (tensor<i32>, tensor<i32>)
Traits: RecursiveMemoryEffects
, SingleBlockImplicitTerminator<ReturnOp>
, SingleBlock
Interfaces: InferTypeOpInterface
, OpAsmOpInterface
Operandos:
Operando | Descripción |
---|---|
operand | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | variadic of ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
mhlo.xla.rng_get_and_update_state
(mhlo::XlaRngGetAndUpdateStateOp)
XlaRngGetAndUpdateState operation
Sintaxis:
operation ::= `mhlo.xla.rng_get_and_update_state` attr-dict
This operation is private to the XLA compiler, so it is does not yet have a specification.
Informally, this operation represents the change of the global random number generator state for rng instructions. The global state is incremented by delta and the old state is returned.
The output is currently defined for a single output type. If this changes in the future to support multiple types, lowering to use of a global memref must ensure that a single memref is still used and updated appropriately.
Interfaces: InferTypeOpInterface
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
delta | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | statically shaped tensor of 64-bit unsigned integer values |
mhlo.xor
(mhlo::XorOp)
Xor operation
Sintaxis:
operation ::= `mhlo.xor` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Performs element-wise XOR of two tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#xor
Ejemplo:
%result = mhlo.xor %lhs, %rhs : tensor<2xi32>
Traits: AlwaysSpeculatableImplTrait
, Commutative
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Effect{}
Operandos:
Operando | Descripción |
---|---|
lhs | ranked tensor of pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
rhs | ranked tensor of pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
Resultados:
Resultado | Descripción |
---|---|
result | ranked tensor of f8E4M3B11FNUZ type or f8E4M3FN type or f8E4M3FNUZ type or f8E5M2 type or f8E5M2FNUZ type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized unsigned integer or 4/8/16/32-bit uniform quantized per axis signed integer or 4/8/16/32-bit uniform quantized per axis unsigned integer values |
Atributos
ArgResultAliasAttr
Attribute that models the alias relationship of entry function argument
This attribute captures the alias relationship of an MHLO main function argument to one of the results, denoted by resultIndex
. The argTupleIndices
and resultTupleIndices
are used to index into nested tuples in operand and result respectively. If isMustAlias
is true then the operand-result pair must alias.
This is meant to be used as an attribute on a function argument in MHLO. For example, in the following code it expresses that %arg1
may alias 0-th result.
func @main(%arg0: tensor<2xf32>, %arg1: tensor<3xf32> {mhlo.result_alias =
mhlo.result_alias<result_index = [2], ...>}
) -> tensor<2xf32>, tensor<3xf32> {
// function body ...
}
Parámetros:
Parámetro | tipo C ++ | Descripción |
---|---|---|
argTupleIndices | ::llvm::ArrayRef<int64_t> | Dimensión |
resultIndex | int64_t | |
resultTupleIndices | ::llvm::ArrayRef<int64_t> | Dimensión |
isMustAlias | bool |
ChannelHandleAttr
two 64-bit integers 'handle' and 'type'
Sintaxis:
#mhlo.channel_handle<
int64_t, # handle
int64_t # type
>
Parámetros:
Parámetro | tipo C ++ | Descripción |
---|---|---|
manejar | int64_t | |
tipo | int64_t |
ComparisonDirectionAttr
Which comparison operation to perform.
Sintaxis:
#mhlo.comparison_direction<
::mlir::mhlo::ComparisonDirection # value
>
Casos de enumeración:
- EQ (
EQ
) - NE (
NE
) - GE (
GE
) - GT (
GT
) - LE (
LE
) - LT (
LT
) #### Parameters:
Parámetro | tipo C ++ | Descripción |
---|---|---|
valor | ::mlir::mhlo::ComparisonDirection | an enum of type ComparisonDirection |
ComparisonTypeAttr
Which comparison type to use.
Sintaxis:
#mhlo.comparison_type<
::mlir::mhlo::ComparisonType # value
>
Casos de enumeración:
- NOTYPE (
NOTYPE
) - FLOAT (
FLOAT
) - TOTALORDER (
TOTALORDER
) - SIGNED (
SIGNED
) - UNSIGNED (
UNSIGNED
) #### Parameters:
Parámetro | tipo C ++ | Descripción |
---|---|---|
valor | ::mlir::mhlo::ComparisonType | an enum of type ComparisonType |
ConvDimensionNumbersAttr
Structure of dimension information for conv op
Parámetros:
Parámetro | tipo C ++ | Descripción |
---|---|---|
inputBatchDimension | int64_t | |
inputFeatureDimension | int64_t | |
inputSpatialDimensions | ::llvm::ArrayRef<int64_t> | Dimensión |
kernelInputFeatureDimension | int64_t | |
kernelOutputFeatureDimension | int64_t | |
kernelSpatialDimensions | ::llvm::ArrayRef<int64_t> | Dimensión |
outputBatchDimension | int64_t | |
outputFeatureDimension | int64_t | |
outputSpatialDimensions | ::llvm::ArrayRef<int64_t> | Dimensión |
CrossProgramPrefetchAttr
Argument that is prefetched from another program
Sintaxis:
#mhlo.cross_program_prefetch<
int64_t, # parameter
::llvm::ArrayRef<int64_t>, # indices
std::optional<int64_t> # offset
>
This attribute captures an argument that is prefetched from another program. For a given CrossProgramPrefetchAttr
, parameter
tells us which argument of the main
function of the module is prefetched, and indices
is a shape index telling us what subshape of that argument is prefetched.
A shape has a subshape iff it is a tuple. In that case, the subshape of the tuple by indices
is the shape achieved after indexing by each element of indices
in turn. For example, the [1,0] subshape of tuple<tuple<token, token>, tuple<tensor<i32>, token>>
is tensor<i32>
.
An empty value for indices
means the whole shape is prefetched.
Por ejemplo,
module attributes { mhlo.cross_program_prefetch = [ #mhlo.cross_program_prefetch< parameter = 0, indices = [0]> ]} {
func.func @copy(%arg0 : tuple<tensor<2x3xi32>, tensor<i32>>) -> tuple<tensor<2x3xi32>, tensor<i32>> {
%0 = "mhlo.copy"(%arg0) {is_cross_program_prefetch}
return %0 : tuple<tensor<2x3xi32>, tensor<i32>>
}
func.func @main(%arg0 : tuple<tensor<2x3xi32>, tensor<i32>>) -> tuple<tensor<2x3xi32>, tensor<i32>> {
%1 = "mhlo.async_start"(%arg0) {called_computation=@copy}
%2 = "mhlo.async_done"(%1) {called_computation=@copy}
return %2 : tuple<tensor<2x3xi32>, tensor<i32>>
}
}
The parameter = 0
tells us that the async copy of the 0
th parameter is a cross_program_prefetch
, while the index
of [0]
tells us that the 0
th element of the tuple is prefetched while the other element of the tuple is not.
Parámetros:
Parámetro | tipo C ++ | Descripción |
---|---|---|
parámetro | int64_t | |
índices | ::llvm::ArrayRef<int64_t> | Dimensión |
compensar | std::optional<int64_t> |
CustomCallScheduleAttr
Specifies the desired schedule for the custom-call.
Sintaxis:
#mhlo.custom_call_schedule<
::mlir::mhlo::CustomCallSchedule # value
>
Casos de enumeración:
- NINGUNO
NONE
) - LATEST (
LATEST
) - EARLIEST (
EARLIEST
) #### Parameters:
Parámetro | tipo C ++ | Descripción |
---|---|---|
valor | ::mlir::mhlo::CustomCallSchedule | an enum of type CustomCallSchedule |
DequantizeModeAttr
Dequantization mode. Only MIN_COMBINED is supported.
Sintaxis:
#mhlo.dequantize_mode<
::mlir::mhlo::DequantizeMode # value
>
Casos de enumeración:
- MIN_COMBINED (
MIN_COMBINED
) #### Parameters:
Parámetro | tipo C ++ | Descripción |
---|---|---|
valor | ::mlir::mhlo::DequantizeMode | an enum of type DequantizeMode |
DomainKindAttr
Kind of domain metatdata attached to an HLO domain.
Sintaxis:
#mhlo.kind<
::mlir::mhlo::DomainKind # value
>
Casos de enumeración:
- sharding (
sharding
) #### Parameters:
Parámetro | tipo C ++ | Descripción |
---|---|---|
valor | ::mlir::mhlo::DomainKind | an enum of type DomainKind |
DotDimensionNumbersAttr
Attribute that models the dimension information for dot.
Parámetros:
Parámetro | tipo C ++ | Descripción |
---|---|---|
lhsBatchingDimensions | ::llvm::ArrayRef<int64_t> | Dimensión |
rhsBatchingDimensions | ::llvm::ArrayRef<int64_t> | Dimensión |
lhsContractingDimensions | ::llvm::ArrayRef<int64_t> | Dimensión |
rhsContractingDimensions | ::llvm::ArrayRef<int64_t> | Dimensión |
FftTypeAttr
XLA fast fourier transform type.
Sintaxis:
#mhlo.fft_type<
::mlir::mhlo::FftType # value
>
Casos de enumeración:
- FFT (
FFT
) - IFFT (
IFFT
) - RFFT (
RFFT
) - IRFFT (
IRFFT
) #### Parameters:
Parámetro | tipo C ++ | Descripción |
---|---|---|
valor | ::mlir::mhlo::FftType | an enum of type FftType |
FusionKindAttr
fusion kind
Sintaxis:
#mhlo.fusion_kind<
::mlir::mhlo::FusionKind # value
>
Casos de enumeración:
- kLoop (
kLoop
) - kInput (
kInput
) - kOutput (
kOutput
) - kCustom (
kCustom
) #### Parameters:
Parámetro | tipo C ++ | Descripción |
---|---|---|
valor | ::mlir::mhlo::FusionKind | an enum of type FusionKind |
GatherDimensionNumbersAttr
Attribute that models the dimension information for gather
Parámetros:
Parámetro | tipo C ++ | Descripción |
---|---|---|
offsetDims | ::llvm::ArrayRef<int64_t> | Dimensión |
collapsedSliceDims | ::llvm::ArrayRef<int64_t> | Dimensión |
startIndexMap | ::llvm::ArrayRef<int64_t> | Dimensión |
indexVectorDim | int64_t |
OutputOperandAliasAttr
Attribute that models the alias relationship of output and operand of a CustomCall op
Sintaxis:
#mhlo.output_operand_alias<
::llvm::ArrayRef<int64_t>, # outputTupleIndices
int64_t, # operandIndex
::llvm::ArrayRef<int64_t> # operandTupleIndices
>
This attribute captures the alias relationship of the output to one of the operands for a CustomCall op, denoted by operand_index
. The output_tuple_indices
and operand_tuple_indices
are used to index into output and operand types. These indices lists are empty if the corresponding types are not tuple types, and can be arbitrarily long in case of arbitrarily nested tuple types.
See https://www.tensorflow.org/xla/aliasing
Example when used as array with in mhlo.custom-call:
%0 = "mhlo.custom_call"(%arg0, %arg1) {
// other attributes
output_operand_alias = [
#mhlo.output_operand_alias<output_tuple_indices = [0],
operand_index = 0,
operand_tuple_indices = [1]>
]
} : (tuple<tensor<1x1xf32>, tensor<2x3xf32>>, tensor<5x5xf32>) -> tuple<tensor<2x3xf32>>
The output and the 0th operand are both tuples. The aliasing shows the
relationship between the 0th element in output tuple with the 1st element in
the 0th operand. And both of them are of the same type: tensor<2x3xf32>.
Parámetros:
Parámetro | tipo C ++ | Descripción |
---|---|---|
outputTupleIndices | ::llvm::ArrayRef<int64_t> | Dimensión |
operandIndex | int64_t | |
operandTupleIndices | ::llvm::ArrayRef<int64_t> | Dimensión |
PrecisionAttr
XLA precision for an operand. Has backend specific meaning.
Sintaxis:
#mhlo.precision<
::mlir::mhlo::Precision # value
>
Casos de enumeración:
- DEFAULT (
DEFAULT
) - ALTA
HIGH
) - HIGHEST (
HIGHEST
) - PACKED_NIBBLE (
PACKED_NIBBLE
) #### Parameters:
Parámetro | tipo C ++ | Descripción |
---|---|---|
valor | ::mlir::mhlo::Precision | an enum of type Precision |
RngAlgorithmAttr
XLA PRNG algorithm to be used.
Sintaxis:
#mhlo.rng_algorithm<
::mlir::mhlo::RngAlgorithm # value
>
Casos de enumeración:
- DEFAULT (
DEFAULT
) - THREE_FRY (
THREE_FRY
) - PHILOX (
PHILOX
) #### Parameters:
Parámetro | tipo C ++ | Descripción |
---|---|---|
valor | ::mlir::mhlo::RngAlgorithm | an enum of type RngAlgorithm |
RngDistributionAttr
XLA PRNG distribution to be used.
Sintaxis:
#mhlo.rng_distribution<
::mlir::mhlo::RngDistribution # value
>
Casos de enumeración:
- UNIFORM (
UNIFORM
) - NORMAL (
NORMAL
) #### Parameters:
Parámetro | tipo C ++ | Descripción |
---|---|---|
valor | ::mlir::mhlo::RngDistribution | an enum of type RngDistribution |
ScatterDimensionNumbersAttr
Attribute that models the dimension information for scatter
Parámetros:
Parámetro | tipo C ++ | Descripción |
---|---|---|
updateWindowDims | ::llvm::ArrayRef<int64_t> | Dimensión |
insertedWindowDims | ::llvm::ArrayRef<int64_t> | Dimensión |
scatterDimsToOperandDims | ::llvm::ArrayRef<int64_t> | Dimensión |
indexVectorDim | int64_t |
SparsityDescriptorAttr
Describes structured (N:M) sparsity configuration
Sintaxis:
#mhlo.sparsity<
int64_t, # dimension
int64_t, # n
int64_t # m
>
This attribute is defined for a sparse dot operation with a structured sparse input tensor. With (N=2,M=4), every 4 consecutive logical elements have exactly 2 non-zero physical elements in the input tensor.
$dimension defines the index of the contracting dimension that is sparse (it has to be the most minor dimension). The additional metadata operand in the sparse dot operation defines which logical elements are zeroed out.
Parámetros:
Parámetro | tipo C ++ | Descripción |
---|---|---|
dimensión | int64_t | |
norte | int64_t | |
metro | int64_t |
TransposeAttr
Transpose options
Sintaxis:
#mhlo.transpose<
::mlir::mhlo::Transpose # value
>
Casos de enumeración:
- TRANSPOSE_INVALID (
TRANSPOSE_INVALID
) - NO_TRANSPOSE (
NO_TRANSPOSE
) - TRANSPONER (
TRANSPOSE
) - ADJOINT (
ADJOINT
) #### Parameters:
Parámetro | tipo C ++ | Descripción |
---|---|---|
valor | ::mlir::mhlo::Transpose | an enum of type Transpose |
TypeExtensionsAttr
Attribute that extends tensor type with MHLO type properties.
Sintaxis:
#mhlo.type_extensions<
::llvm::ArrayRef<int64_t> # bounds
>
This attribute is used to extend MLIR tensor type with MHLO tensor specific properties. These properties aren't modeled in the MLIR type. This attribute is set in the encoding
field of the tensor type.
See HLO_BoundedAttrInterface
for documentation for bounds
.
Parámetros:
Parámetro | tipo C ++ | Descripción |
---|---|---|
límites | ::llvm::ArrayRef<int64_t> |
Tipos
AsyncBundleType
Opaque collection of other types
Sintaxis:
!mhlo.async_bundle<
::llvm::ArrayRef<Type> # types
>
Parámetros:
Parámetro | tipo C ++ | Descripción |
---|---|---|
tipos | ::llvm::ArrayRef<Type> |