Definición de operación
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: condicionalmente especulable, InferShapedTypeOpInterface, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Efecto{}
Operandos:
Operando | Descripción |
---|---|
operand | tensor 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 complejo tipo con elementos flotantes de 32 bits o elementos flotantes de 64 bits o enteros con signo cuantificados uniformes 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 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 4 /Entero con signo cuantificado uniforme de 8/16/32 bits o valores enteros sin signo cuantificados uniformes de 4/8/16/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, Conmutativo, CompatibleOperandsAndResultType, Elementwise, SameOperandsAndResultShape
Interfaces: condicionalmente especulable, InferShapedTypeOpInterface, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Efecto{}
Operandos:
Operando | Descripción |
---|---|
lhs | tensor 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 con signo cuantificado uniforme de 4/8/16/32 bits entero o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
rhs | tensor 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 con signo cuantificado uniforme de 4/8/16/32 bits entero o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
Resultados:
Resultado | Descripción |
---|---|
result | tensor 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 con signo cuantificado uniforme de 4/8/16/32 bits entero o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
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: siempre especulableImplRasgo
Interfaces: condicionalmente especulable, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Efecto{}
Operandos:
Operando | Descripción |
---|---|
operand | tensor 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 con signo cuantificado uniforme de 4/8/16/32 bits entero o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits o token |
token | simbólico |
Resultados:
Resultado | Descripción |
---|---|
output | tensor 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 con signo cuantificado uniforme de 4/8/16/32 bits entero o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits 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: siempre especulableImplRasgo
Interfaces: condicionalmente especulable, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Efecto{}
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 operand
de cada proceso a lo largo de all_gather_dim
y produce un tensor result
.
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 |
---|---|
operand | tensor 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 con signo cuantificado uniforme de 4/8/16/32 bits entero o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | tensor 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 con signo cuantificado uniforme de 4/8/16/32 bits entero o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
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, SameOperandsAndResultElementType, SingleBlock, SingleBlockImplicitTerminator
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 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 uniforme de 4/8/16/32 bits entero cuantificado con signo o valores enteros cuantificados uniformes sin signo de 4/8/16/32 bits |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | variadic de tensor 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 uniforme de 4/8/16/32 bits entero cuantificado con signo o valores enteros cuantificados uniformes sin signo de 4/8/16/32 bits |
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: condicionalmente especulable, InferShapedTypeOpInterface, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Efecto{}
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 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 uniforme de 4/8/16/32 bits entero cuantificado con signo o valores enteros cuantificados uniformes sin signo de 4/8/16/32 bits |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | variadic de tensor 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 uniforme de 4/8/16/32 bits entero cuantificado con signo o valores enteros cuantificados uniformes sin signo de 4/8/16/32 bits |
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, Conmutativo, CompatibleOperandsAndResultType, Elementwise, SameOperandsAndResultShape
Interfaces: condicionalmente especulable, InferShapedTypeOpInterface, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Efecto{}
Operandos:
Operando | Descripción |
---|---|
lhs | tensor 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 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 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 con signo cuantificado uniforme de 4/8/16/32 bits entero o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
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 |
group_id | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
Operandos:
Operando | Descripción |
---|---|
bundle | async_bundle con cualquier combinación de tensor 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/8/16/32 Entero con signo cuantificado uniforme de -bit o valores enteros sin signo cuantificados uniformemente de 4/8/16/32 bits o valores de token |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | variadic de tensor 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 uniforme de 4/8/16/32 bits entero cuantificado con signo o valores enteros cuantificados uniformes sin signo de 4/8/16/32 bits o token o tupla anidada con cualquier combinación de tensor de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o 32 -bit flotante 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 enteros con signo cuantificados uniformes de 4/8/16/32 bits o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits o valores de token |
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. group_id
etiqueta un conjunto de operaciones de inicio asíncrono, de finalización asíncrona y cero o más operaciones de actualización asíncrona correspondientes al mismo cálculo. Representamos un group_id faltante con un valor negativo o Ninguno.
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 |
group_id | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
Operandos:
Operando | Descripción |
---|---|
inputs | variadic de tensor 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 uniforme de 4/8/16/32 bits entero cuantificado con signo o valores enteros cuantificados uniformes sin signo de 4/8/16/32 bits o token o tupla anidada con cualquier combinación de tensor de tipo f8E4M3B11FNUZ o tipo f8E4M3FN o tipo f8E4M3FNUZ o tipo f8E5M2 o tipo f8E5M2FNUZ o flotante de 16 bits o 32 -bit flotante 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 enteros con signo cuantificados uniformes de 4/8/16/32 bits o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits o valores de token |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | async_bundle con cualquier combinación de tensor 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/8/16/32 Entero con signo cuantificado uniforme de -bit o valores enteros sin signo cuantificados uniformemente de 4/8/16/32 bits o valores de token |
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 |
group_id | ::mlir::IntegerAttr | Atributo entero sin signo de 64 bits |
Operandos:
Operando | Descripción |
---|---|
bundle | async_bundle con cualquier combinación de tensor 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/8/16/32 Entero con signo cuantificado uniforme de -bit o valores enteros sin signo cuantificados uniformemente de 4/8/16/32 bits o valores de token |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | async_bundle con cualquier combinación de tensor 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/8/16/32 Entero con signo cuantificado uniforme de -bit o valores enteros sin signo cuantificados uniformemente de 4/8/16/32 bits o valores de token |
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: condicionalmente especulable, InferShapedTypeOpInterface, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Efecto{}
Operandos:
Operando | Descripción |
---|---|
lhs | tensor 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 4 /Entero con signo cuantificado uniforme de 8/16/32 bits o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
rhs | tensor 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 4 /Entero con signo cuantificado uniforme de 8/16/32 bits o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
Resultados:
Resultado | Descripción |
---|---|
result | tensor 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 4 /Entero con signo cuantificado uniforme de 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: condicionalmente especulable, InferShapedTypeOpInterface, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Efecto{}
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: condicionalmente especulable, InferShapedTypeOpInterface, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Efecto{}
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: condicionalmente especulable, InferShapedTypeOpInterface, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Efecto{}
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: siempre especulableImplRasgo
Interfaces: condicionalmente especulable, sin memoria (MemoryEffectOpInterface)
Efectos: MemoryEffects::Efecto{}
Operandos:
Operando | Descripción |
---|---|
operand | tensor 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 con signo cuantificado uniforme de 4/8/16/32 bits entero o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | tensor 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 con signo cuantificado uniforme de 4/8/16/32 bits entero o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
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: siempre especulableImplRasgo
Interfaces: condicionalmente especulable, InferShapedTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Efecto{}
Operandos:
Operando | Descripción |
---|---|
operand | tensor 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 con signo cuantificado uniforme de 4/8/16/32 bits entero o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | tensor 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 con signo cuantificado uniforme de 4/8/16/32 bits entero o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
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: condicionalmente especulable, InferShapedTypeOpInterface, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects::Efecto{}
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 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 con signo cuantificado uniforme de 4/8/16/32 bits entero o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | tensor 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 con signo cuantificado uniforme de 4/8/16/32 bits entero o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
mhlo.broadcast_in_dim
(mhlo::BroadcastInDimOp)
Operación BroadcastInDim
Expande las dimensiones y/o el rango de un tensor de entrada duplicando 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: condicionalmente especulable, sin memoria (MemoryEffectOpInterface)
Efectos: MemoryEffects::Efecto{}
Atributos:
Atributo | Tipo MLIR | Descripción |
---|---|---|
broadcast_dimensions | ::mlir::DenseIntElementsAttr | Atributo de elementos enteros sin signo de 64 bits |
Operandos:
Operando | Descripción |
---|---|
operand | tensor 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 con signo cuantificado uniforme de 4/8/16/32 bits entero o valores enteros sin signo cuantificados uniformes de 4/8/16/32 bits |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | tensor de forma estática 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 uniforme de 4/8/16/32 bits entero cuantificado con signo o valores enteros cuantificados uniformes sin signo de 4/8/16/32 bits |
mhlo.case
(mhlo::CaseOp)
Operación de caso
Produce el resultado de ejecutar exactamente una function
de branches
dependiendo del valor de 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: recursivemoryEffects, un solo bloqueo, un solo bloqueo de mínimo
Interfaces: infertypeopeinterface
Operands:
Operando | Descripción |
---|---|
index | Tensor de valores enteros sin signos de 32 bits |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | Variadic de tensor de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ Tipo o Float de 16 bits o Float 32 bit o Float o 44 bit o bfloat16 tipo o pred (aka boolean o 1 bits o 1 bits o 4/ bit o 4/ o 4/64 bits o 4/ bitsy 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 Integer firmado cuantizado o 4/8/16/16/32 bits valores de entero sin signo cuantificados o token |
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: AlwayspeculatableImtrait, compatibleperandsandresulttype, elementwise, lo mismo ocurre y resulta
Interfaces: condicionalmente especulable, infershapedTypeopeRinterface, infertypeopeRinterface, nomemoryEffect (MemoryEffectopInterface)
Efectos: MemoryEffects :: Effect {}
Operands:
Operando | Descripción |
---|---|
operand | Tensor de tipo f8e4m3b11fnuz o tipo f8e4m3fn o f8e4m3fnuz o tipo f8e5m2 o tipo f8e5m2fnuz tipo o tipo flotante de 16 bits o float de 32 bits o 44 bit o bfloat16 tipo o complejo con un tipo de flotación de 32 bits o float de 64 bits /8/16/32 bits enteros cuantizados uniformados o 4/8/16/16/32 bits valores de entero sin firmar uniforme sin firmar |
Resultados:
Resultado | Descripción |
---|---|
result | Tensor de tipo f8e4m3b11fnuz o tipo f8e4m3fn o f8e4m3fnuz o tipo f8e5m2 o tipo f8e5m2fnuz tipo o tipo flotante de 16 bits o float de 32 bits o 44 bit o bfloat16 tipo o complejo con un tipo de flotación de 32 bits o float de 64 bits /8/16/32 bits enteros cuantizados uniformados o 4/8/16/16/32 bits valores de entero sin firmar uniforme 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: AlwayspeculatableImtrait, compatibleperandsandresulttype, elementwise, lo mismo ocurre y resulta
Interfaces: condicionalmente especulable, infershapedTypeopeRinterface, infertypeopeRinterface, nomemoryEffect (MemoryEffectopInterface)
Efectos: MemoryEffects :: Effect {}
Operands:
Operando | Descripción |
---|---|
operand | tensor de tipo f8e4m3b11fnuz o tipo f8e4m3fn o f8e4m3fnuz o tipo f8e5m2 o tipo f8e5m2fnuz tipo o flotante de 16 bits o 32 bits o 64 bit o bfloat16 Valores de tipo |
Resultados:
Resultado | Descripción |
---|---|
result | tensor de tipo f8e4m3b11fnuz o tipo f8e4m3fn o f8e4m3fnuz o tipo f8e5m2 o tipo f8e5m2fnuz tipo o flotante de 16 bits o 32 bits o 64 bit o bfloat16 Valores de tipo |
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: AlwaysSpeculatableImtrait, infertenSortype, lo mismo ocurre y compleja
Interfaces: condicionalmente especulable, infershapedTypeopeRinterface, infertypeopeRinterface, nomemoryEffect (MemoryEffectopInterface)
Efectos: MemoryEffects :: Effect {}
Atributos:
Atributo | Tipo mlir | Descripción |
---|---|---|
lower | :: mlir :: boolattr | atributo bool |
Operands:
Operando | Descripción |
---|---|
a | tensor de tipo f8e4m3b11fnuz o tipo f8e4m3fn o f8e4m3fnuz o tipo f8e5m2 o tipo f8e5m2fnuz tipo o tipo flotante de 16 bits o 32 bits o 64 bit o bfloat16 tipo o tipo complejo con 32 bits flotante o flotador de 64 bits flotación |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | tensor de tipo f8e4m3b11fnuz o tipo f8e4m3fn o f8e4m3fnuz o tipo f8e5m2 o tipo f8e5m2fnuz tipo o tipo flotante de 16 bits o 32 bits o 64 bit o bfloat16 tipo o tipo complejo con 32 bits flotante o flotador de 64 bits flotación |
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, lo mismo ocurre y compleja
Interfaces: condicionalmente especulable, infershapedTypeopeRinterface, infertypeopeRinterface, nomemoryEffect (MemoryEffectopInterface)
Efectos: MemoryEffects :: Effect {}
Operands:
Operando | Descripción |
---|---|
min | 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 entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores de entero sin firmar cuantificados |
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 bits Integer sin signos o 4/8/16/32/64 bits entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores de entero sin firmar cuantificados |
max | 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 entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores de entero sin firmar cuantificados |
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 bits Integer sin signos o 4/8/16/32/64 bits entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores de entero sin firmar cuantificados |
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: AlwaysSpeculatableImtrait, compatibleperandsandresultType
Interfaces: condicionalmente especulable, infershapedTypeopeRinterface, infertypeopeRinterface, 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' |
Operands:
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 bits Integer sin signos o 4/8/16/32/64 bits entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores de entero sin firmar cuantificados |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores de entero sin firmar cuantificados |
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: AlwayspeculatableImplitTait, Elementwise, infertenSortype, lo mismo ocurre y se resulta, lo mismo ocurre y sellaype
Interfaces: condicionalmente especulable, infershapedTypeopeRinterface, infertypeopeRinterface, 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. |
Operands:
Operando | Descripción |
---|---|
lhs | 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 entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores de entero sin firmar cuantificados |
rhs | 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 entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores de entero sin firmar cuantificados |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | Tensor de 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: AlwayspeculatableImtrait, elementwise, lo mismo ocurre y resulta, lo mismo ocurre y selectionType
Interfaces: condicionalmente especulable, infershapedTypeopeRinterface, infertypeopeRinterface, nomemoryEffect (MemoryEffectopInterface)
Efectos: MemoryEffects :: Effect {}
Operands:
Operando | Descripción |
---|---|
lhs | Tensor de valores flotantes de 32 bits o flotadores de 64 bits |
rhs | Tensor de valores flotantes de 32 bits o flotadores de 64 bits |
Resultados:
Resultado | Descripción |
---|---|
result | Tensor de tipo complejo con valores de elementos flotantes de 32 bits o flotadores de 64 bits |
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: AlwaysSpeculatableImtrait
Interfaces: ConditionlySpeculatable, NomemoryEffect (MemoryEffectopInterface)
Efectos: MemoryEffects :: Effect {}
Operands:
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: AlwaysSpeculatableImtrait, Sameperands yResultElentType
Interfaces: condicionalmente especulable, infershapedTypeopeRinterface, infertypeopeRinterface, nomemoryEffect (MemoryEffectopInterface)
Efectos: MemoryEffects :: Effect {}
Atributos:
Atributo | Tipo mlir | Descripción |
---|---|---|
dimension | :: mlir :: integerattr | Atributo entero de 64 bits Signless |
Operands:
Operando | Descripción |
---|---|
val | Variadic de tensor de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ Tipo o Float de 16 bits o Float 32 bit o Float o 44 bit o bfloat16 tipo o pred (aka boolean o 1 bits o 1 bits o 4/ bit o 4/ o 4/64 bits o 4/ bitsy 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 Integer firmado cuantizado o 4/8/16/16/32 bits Valores de enteros sin signo cuantificados |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores de entero sin firmar cuantificados |
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: AlwaysSpeculatableImtrait, constante
Interfaces: condicionalmente especulable, 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 Integer firmado cuantizado o 4/8/16/16/32 bits Valores de enteros sin signo cuantificados |
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: AlwayspeculatableImtrait, elementwise, lo mismo ocurre y se produce
Interfaces: condicionalmente especulable, infershapedTypeopeRinterface, NomemoryEffect (MemoryEffectopinterface)
Efectos: MemoryEffects :: Effect {}
Operands:
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 bits Integer sin signos o 4/8/16/32/64 bits entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores de entero sin firmar cuantificados |
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 bits Integer sin signos o 4/8/16/32/64 bits entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores de entero sin firmar cuantificados |
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: AlwaysSpeculatableImtrait
Interfaces: ConditionlySpeculatable, 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 de 64 bits Signless |
batch_group_count | :: mlir :: integerattr | Atributo entero de 64 bits Signless |
precision_config | :: mlir :: Arrayattr | Atributo de configuración de precisión |
Operands:
Operando | Descripción |
---|---|
lhs | 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 entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores de entero sin firmar cuantificados |
rhs | 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 entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores de entero sin firmar cuantificados |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores de entero sin firmar cuantificados |
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: AlwaysSpeculatableImtrait, compatibleperandsandresultType
Interfaces: condicionalmente especulable, infershapedTypeopeRinterface, infertypeopeRinterface, nomemoryEffect (MemoryEffectopInterface)
Efectos: MemoryEffects :: Effect {}
Atributos:
Atributo | Tipo mlir | Descripción |
---|---|---|
cross_program_prefetch_index | :: mlir :: integerattr | Atributo Integer de Signless de 32 bits |
Operands:
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 bits Integer sin signos o 4/8/16/32/64 bits entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/8/16/16/32 bits valores enteros sin signo cuantificados o token o anidados con cualquier combinación de tensor de f8e4m3b11fnuz tipo o tipo f8e4m3fn o tipo f8e4m3fnuz o tipo f8e5m2 o tipo F8E5M2FNUZ flotante o 64 bits o bfloat16 tipo o pred (también conocido como entero booleano o 1 bits) o 4/8/16/16/32/64 bits integer sin siglo Escriba con elementos flotantes de 32 bits o flotadores de 64 bits o 4/8/16/16/32 bits Integer cuantificado firmado o 4/8/16/32 bits Valores de entero sin signo cuantificados o valores de token token |
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 bits Integer sin signos o 4/8/16/32/64 bits entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/8/16/16/32 bits valores enteros sin signo cuantificados o token o anidados con cualquier combinación de tensor de f8e4m3b11fnuz tipo o tipo f8e4m3fn o tipo f8e4m3fnuz o tipo f8e5m2 o tipo F8E5M2FNUZ flotante o 64 bits o bfloat16 tipo o pred (también conocido como entero booleano o 1 bits) o 4/8/16/16/32/64 bits integer sin siglo Escriba con elementos flotantes de 32 bits o flotadores de 64 bits o 4/8/16/16/32 bits Integer cuantificado firmado o 4/8/16/32 bits Valores de entero sin signo cuantificados o valores de token 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: AlwayspeculatableImtrait, compatibleperandsandresulttype, elementwise, lo mismo ocurre y resulta
Interfaces: condicionalmente especulable, infershapedTypeopeRinterface, infertypeopeRinterface, nomemoryEffect (MemoryEffectopInterface)
Efectos: MemoryEffects :: Effect {}
Operands:
Operando | Descripción |
---|---|
operand | Tensor de tipo f8e4m3b11fnuz o tipo f8e4m3fn o f8e4m3fnuz o tipo f8e5m2 o tipo f8e5m2fnuz tipo o tipo flotante de 16 bits o float de 32 bits o 44 bit o bfloat16 tipo o complejo con un tipo de flotación de 32 bits o float de 64 bits /8/16/32 bits enteros cuantizados uniformados o 4/8/16/16/32 bits valores de entero sin firmar uniforme sin firmar |
Resultados:
Resultado | Descripción |
---|---|
result | Tensor de tipo f8e4m3b11fnuz o tipo f8e4m3fn o f8e4m3fnuz o tipo f8e5m2 o tipo f8e5m2fnuz tipo o tipo flotante de 16 bits o float de 32 bits o 44 bit o bfloat16 tipo o complejo con un tipo de flotación de 32 bits o float de 64 bits /8/16/32 bits enteros cuantizados uniformados o 4/8/16/16/32 bits valores de entero sin firmar uniforme 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: AlwayspeculatableImtrait, compatibleperandsandresulttype, elementwise, lo mismo ocurre y resulta
Interfaces: condicionalmente especulable, infershapedTypeopeRinterface, infertypeopeRinterface, nomemoryEffect (MemoryEffectopInterface)
Efectos: MemoryEffects :: Effect {}
Operands:
Operando | Descripción |
---|---|
operand | Tensor de 4/8/16/32/64 bits Integer sin signos o 4/8/16/32/64 bits Valores de entero sin firmar |
Resultados:
Resultado | Descripción |
---|---|
result | Tensor de 4/8/16/32/64 bits Integer sin signos o 4/8/16/32/64 bits Valores de entero sin firmar |
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: AlwaysSpeculatableImtrait
Interfaces: condicionalmente especulable, 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: AlwaysSpeculatableImtrait, compatibleperandsandresultType
Interfaces: condicionalmente especulable, infershapedTypeopeRinterface, infertypeopeRinterface, nomemoryEffect (MemoryEffectopInterface)
Efectos: MemoryEffects :: Effect {}
Atributos:
Atributo | Tipo mlir | Descripción |
---|---|---|
replica_groups | :: mlir :: denseintelementsattr | Atributo de elementos enteros de 64 bits Signless Integer |
Operands:
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 bits Integer sin signos o 4/8/16/32/64 bits entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores de entero sin firmar cuantificados |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores de entero sin firmar cuantificados |
mhlo.cstr_reshapable
(mhlo :: cstrreshapableop)
Operación Cstrreshapable
Sintaxis:
operation ::= `mhlo.cstr_reshapable` 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 crea un testigo sobre la restricción de que ComputerShapeshape tendrá éxito con los operandos proporcionados.
Ejemplo:
%result = mhlo.cstr_reshapable %num_elements, %dynamic_shape
: (index, tensor<3xi32>) -> !shape.witness
Rasgos: AlwaysSpeculatableImtrait
Interfaces: condicionalmente especulable, infertypeopinterface, nomemoryEffect (MemoryEffectOpInterface)
Efectos: MemoryEffects :: Effect {}
Operands:
Operando | Descripción |
---|---|
num_elements | índice |
dynamic_shape | 1D tensor de valores enteros o de índice |
Resultados:
Resultado | Descripción |
---|---|
result |
mhlo.custom_call
(mhlo :: customcallop)
Operación personalizada
Sintaxis:
operation ::= `mhlo.custom_call` custom<CustomCallTarget>($call_target_name) `(` $inputs `)`
attr-dict `:` functional-type(operands, results)
Encapsula una operación definida por implementación call_target_name
que toma inputs
y called_computations
y produce results
.
Ver: 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 bool |
backend_config | :: mlir :: atributo | atributo de cadena o diccionario de valores de atributo con nombre |
api_version | :: mlir :: mhlo :: customcallapiversionattr | Versión API de llamadas personalizadas |
called_computations | :: mlir :: Arrayattr | Atributo de matriz de referencia de símbolo plano |
custom_call_schedule | :: mlir :: mhlo :: customcallschedleeattr | Especifica el horario deseado para el llamado personalizado. |
operand_layouts | :: mlir :: Arrayattr | Matriz de atributos de diseño (tensor 1D del tipo de índice) |
result_layouts | :: mlir :: Arrayattr | Matriz de atributos de diseño (tensor 1D del tipo de índice) |
output_operand_aliases | :: mlir :: Arrayattr | Atributo de alias para salidas y operandos de CustomCall |
Operands:
Operando | Descripción |
---|---|
inputs | Variadic de tensor de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ Tipo o Float de 16 bits o Float 32 bit o Float o 44 bit o bfloat16 tipo o pred (aka boolean o 1 bits o 1 bits o 4/ bit o 4/ o 4/64 bits o 4/ bitsy 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 valores enteros sin signo cuantizados o token o tupla anidada con cualquier combinación de tensor de f8e4m3b11fnuz tipo o tipo f8e4m3fn o tipo f8e4m3fnuz o tipo f8e5m2 o tipo f8e5m2fnuz o 32-bit-bit float o 32 float o 322 o 32 o 32 o 32 o 32 o 32 o 32 o 32 -bit flotante o 64 bits flotante o bfloat16 tipo o pred (también conocido como entero booleano o 1 bit) o 4/8/16/16/32/64 bits integer sin siglo o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits enteros cuantiados uniformados firmados o 4/8/16/16/32 bits Valores de entero sin firmar uniforme o valores de token de token |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | Variadic de tensor de tipo F8E4M3B11FNUZ o tipo F8E4M3FN o F8E4M3FNUZ o tipo F8E5M2 o F8E5M2FNUZ Tipo o Float de 16 bits o Float 32 bit o Float o 44 bit o bfloat16 tipo o pred (aka boolean o 1 bits o 1 bits o 4/ bit o 4/ o 4/64 bits o 4/ bitsy 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 valores enteros sin signo cuantizados o token o tupla anidada con cualquier combinación de tensor de f8e4m3b11fnuz tipo o tipo f8e4m3fn o tipo f8e4m3fnuz o tipo f8e5m2 o tipo f8e5m2fnuz o 32-bit-bit float o 32 float o 322 o 32 o 32 o 32 o 32 o 32 o 32 o 32 -bit flotante o 64 bits flotante o bfloat16 tipo o pred (también conocido como entero booleano o 1 bit) o 4/8/16/16/32/64 bits integer sin siglo o tipo complejo con flotación de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits enteros cuantiados uniformados firmados o 4/8/16/16/32 bits Valores de entero sin firmar uniforme o valores de token de token |
mhlo.divide
(mhlo :: divop)
Operación Div
Sintaxis:
operation ::= `mhlo.divide` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Realiza la división de elementos de dividendos lhs
y los tensores del divisor rhs
y produce un tensor result
.
Ver: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#divide
Ejemplo:
%result = mhlo.divide %lhs, %rhs : tensor<4xf32>
Rasgos: AlwayspeculatableImtrait, compatibleperandsandresulttype, elementwise, lo mismo ocurre y resulta
Interfaces: condicionalmente especulable, infershapedTypeopeRinterface, infertypeopeRinterface, nomemoryEffect (MemoryEffectopInterface)
Efectos: MemoryEffects :: Effect {}
Operands:
Operando | Descripción |
---|---|
lhs | 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 Flotador de 32 bits o tipo flotante de 64 bits o tipo BFLOAT16 o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits enteros firmados cuantizados o 4/8/16/32 bits valores de enteros sin firmar cuantificados uniformes |
rhs | 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 Flotador de 32 bits o tipo flotante de 64 bits o tipo BFLOAT16 o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits enteros firmados cuantizados o 4/8/16/32 bits valores de enteros sin firmar cuantificados uniformes |
Resultados:
Resultado | Descripción |
---|---|
result | 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 Flotador de 32 bits o tipo flotante de 64 bits o tipo BFLOAT16 o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits enteros firmados cuantizados o 4/8/16/32 bits valores de enteros sin firmar cuantificados uniformes |
mhlo.domain
(mhlo :: domainop)
Operación de dominio
Esta operación es privada para el compilador XLA, por lo que aún no tiene una especificación.
Informalmente, estas operaciones se utilizan para agrupar las instrucciones con la misma propiedad DomainMetadata. ShardingMetadata es el caso de uso principal hoy para agrupar las instrucciones en el mismo dispositivo. Las instrucciones de dominio proporcionan dos beneficios principales:
- Evite la optimización involuntaria de las instrucciones entre los dominios.
- Asigne automáticamente los metadatos de las instrucciones creadas en el dominio. Sin instrucciones de dominio, cada pase de optimización HLO tendría que verificar y propagar los metadatos, lo que sería fácil de perder y también agrega complejidad al compilador. Dado que las instrucciones de dominio conectan dos dominios diferentes, cada instrucción de dominio está asociada con dos metadatos de dominio, uno en el lado del operando y otro en el lado del usuario del dominio.
Rasgos: AlwaysSpeculatableImtrait, compatibleperandsandresultType
Interfaces: condicionalmente especulable, infershapedTypeopeRinterface, infertypeopeRinterface, nomemoryEffect (MemoryEffectopInterface)
Efectos: MemoryEffects :: Effect {}
Atributos:
Atributo | Tipo mlir | Descripción |
---|---|---|
kind | :: mlir :: mhlo :: domainkindattr | Tipo de dominio metatdata unido a un dominio HLO. |
entry_metadata | :: mlir :: stringattr | atributo de cadena |
exit_metadata | :: mlir :: stringattr | atributo de cadena |
Operands:
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 bits Integer sin signos o 4/8/16/32/64 bits entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores o token de enteros sin signo cuantificados |
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 bits Integer sin signos o 4/8/16/32/64 bits entero sin signo o tipo complejo con flotador de 32 bits o elementos flotantes de 64 bits o 4/8/16/16/32 bits cuantizados firmados firmados Integer o 4/8/16/16/32 bits valores o token de enteros sin signo cuantificados |
mhlo.dot
(mhlo :: dotop)
Operación de puntos
Esta operación está saliendo de Stablehlo, por lo que no está incluida en la especificación: 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>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
precision_config | ::mlir::ArrayAttr | Precision Config attribute |
Operands:
Operand | Descripción |
---|---|
lhs | 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 |
rhs | 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 |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 |
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>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, InferShapedTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
dot_dimension_numbers | ::mlir::mhlo::DotDimensionNumbersAttr | Attribute that models the dimension information for dot. |
precision_config | ::mlir::ArrayAttr | Precision Config attribute |
Operands:
Operand | Descripción |
---|---|
lhs | 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 |
rhs | 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 |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 |
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.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, InferShapedTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | 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 |
Operands:
Operand | 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 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" | 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 |
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>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | 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 | 64-bit signless integer attribute |
batch_group_count | ::mlir::IntegerAttr | 64-bit signless integer attribute |
precision_config | ::mlir::ArrayAttr | Precision Config attribute |
Operands:
Operand | Descripción |
---|---|
lhs | 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 |
rhs | 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 |
d_padding | 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 |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 |
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)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
dimension_numbers | ::mlir::mhlo::GatherDimensionNumbersAttr | Attribute that models the dimension information for gather |
indices_are_sorted | ::mlir::BoolAttr | bool attribute |
Operands:
Operand | 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 values |
start_indices | tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
slice_sizes | 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" | 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 |
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>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, InferShapedTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
iota_dimension | ::mlir::IntegerAttr | 64-bit signless integer attribute |
Operands:
Operand | 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 | 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 |
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.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, InferShapedTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 values |
padding_value | 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 |
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 | 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 |
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>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, InferShapedTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 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 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)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
slice_sizes | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operands:
Operand | 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 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 | 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 |
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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 values |
update | 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 |
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 | 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 |
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>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
einsum_config | ::mlir::StringAttr | string attribute |
Operands:
Operand | Descripción |
---|---|
lhs | 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 |
rhs | 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 |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 |
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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 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 | 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 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 | 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)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
fft_type | ::mlir::mhlo::FftTypeAttr | XLA fast fourier transform type. |
fft_length | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operands:
Operand | 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 values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 |
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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 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 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 | MLIR Type | Descripción |
---|---|---|
fusion_kind | ::mlir::mhlo::FusionKindAttr | fusion kind |
output_operand_aliases | ::mlir::ArrayAttr | Aliasing attribute for outputs and operands of Fusion |
Operands:
Operand | 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 values or token |
Resultados:
Resultado | Descripción |
---|---|
results | 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 values 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 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)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | 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 | bool attribute |
Operands:
Operand | 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 values |
start_indices | 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" | 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 |
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)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
dimension | ::mlir::IntegerAttr | 64-bit signless integer attribute |
Operands:
Operand | 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 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>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
index | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands:
Operand | Descripción |
---|---|
operand | 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 values or token values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 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 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, SingleBlock, SingleBlockImplicitTerminator
Interfaces: InferTypeOpInterface
Operands:
Operand | Descripción |
---|---|
pred | tensor of pred (AKA boolean or 1-bit integer) 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 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 complex type with 32-bit float or 64-bit float elements 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 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 | MLIR Type | Descripción |
---|---|---|
infeed_config | ::mlir::StringAttr | string attribute |
layout | ::mlir::ArrayAttr | array attribute |
Operands:
Operand | 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 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>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
iota_dimension | ::mlir::IntegerAttr | 64-bit signless integer attribute |
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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
x | 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 | 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 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 | 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 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 | 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 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 | 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, SingleBlock, SingleBlockImplicitTerminator
Interfaces: InferShapedTypeOpInterface, InferTypeOpInterface
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
dimensions | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operands:
Operand | 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 values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 |
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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
lhs | 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 |
rhs | 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 |
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 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
lhs | 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 |
rhs | 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 |
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 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
lhs | 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 |
rhs | 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 |
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 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
operand | 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 values |
Resultados:
Resultado | Descripción |
---|---|
result | 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 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
operand | 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 | 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
operand | 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 values or token |
Resultados:
Resultado | Descripción |
---|---|
result | 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 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
lhs | 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 | 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 | 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 |
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 | MLIR Type | Descripción |
---|---|---|
outfeed_config | ::mlir::StringAttr | string attribute |
Operands:
Operand | 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 values |
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)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | 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 |
Operands:
Operand | 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 values |
padding_value | 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 |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 |
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" | 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
operand | 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 | tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
mhlo.power
(mhlo::PowOp)
Pow operation
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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
lhs | 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 values |
rhs | 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 values |
Resultados:
Resultado | Descripción |
---|---|
result | 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 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 complex type with 32-bit float or 64-bit float elements 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 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>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, InferShapedTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 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 | 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 |
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 | MLIR Type | Descripción |
---|---|---|
channel_handle | ::mlir::mhlo::ChannelHandleAttr | two 64-bit integers 'handle' and 'type' |
is_host_transfer | ::mlir::BoolAttr | bool attribute |
Operands:
Operand | 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 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, SingleBlock, SingleBlockImplicitTerminator
Interfaces: InferShapedTypeOpInterface, InferTypeOpInterface
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
dimensions | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operands:
Operand | 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 values |
init_values | 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 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 values |
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
Interfaces: ConditionallySpeculatable, InferShapedTypeOpInterface, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
exponent_bits | ::mlir::IntegerAttr | 32-bit signless integer attribute |
mantissa_bits | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands:
Operand | 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 values |
Resultados:
Resultado | Descripción |
---|---|
output | 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)
ReduceScatter operation
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>
Traits: SameOperandsAndResultElementType
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
scatter_dimension | ::mlir::IntegerAttr | 64-bit signless integer attribute |
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::UnitAttr | unit attribute |
Operands:
Operand | 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 values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 |
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, SingleBlock, SingleBlockImplicitTerminator
Interfaces: InferShapedTypeOpInterface, InferTypeOpInterface
Atributos:
Atributo | MLIR Type | 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 |
Operands:
Operand | 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 values |
init_values | 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 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 values |
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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
lhs | 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 values |
rhs | 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 values |
Resultados:
Resultado | Descripción |
---|---|
result | 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 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>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 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 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 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 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 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)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
dimensions | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operands:
Operand | 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 values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 |
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 | MLIR Type | Descripción |
---|---|---|
rng_distribution | ::mlir::mhlo::RngDistributionAttr | XLA PRNG distribution to be used. |
Operands:
Operand | 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 | 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>)
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
rng_algorithm | ::mlir::mhlo::RngAlgorithmAttr | XLA PRNG algorithm to be used. |
Operands:
Operand | Descripción |
---|---|
initial_state | 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 | 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 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 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 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 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 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 | 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 | MLIR Type | Descripción |
---|---|---|
scatter_dimension_numbers | ::mlir::mhlo::ScatterDimensionNumbersAttr | Attribute that models the dimension information for scatter |
indices_are_sorted | ::mlir::BoolAttr | bool attribute |
unique_indices | ::mlir::BoolAttr | bool attribute |
Operands:
Operand | 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 values |
scatter_indices | tensor of integer or index values |
updates | 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 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 values |
mhlo.select
(mhlo::SelectOp)
Select operation
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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
pred | tensor of pred (AKA boolean or 1-bit integer) values |
on_true | 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 |
on_false | 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 |
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 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 | MLIR Type | 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 |
Operands:
Operand | 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 values |
source | 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 |
init_value | 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 |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 |
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 | MLIR Type | Descripción |
---|---|---|
channel_handle | ::mlir::mhlo::ChannelHandleAttr | two 64-bit integers 'handle' and 'type' |
is_host_transfer | ::mlir::BoolAttr | bool attribute |
Operands:
Operand | 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 values |
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)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
dimension | ::mlir::IntegerAttr | 64-bit signless integer attribute |
Operands:
Operand | 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 values |
size | tensor of 32-bit signless integer values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 |
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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
lhs | tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
rhs | 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 | 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
lhs | tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
rhs | 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 | 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
lhs | tensor of 4/8/16/32/64-bit signless integer or 4/8/16/32/64-bit unsigned integer values |
rhs | 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 | 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
operand | 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 | 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 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 | 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)
Slice operation
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)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | 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 |
Operands:
Operand | 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 values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 |
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 | MLIR Type | Descripción |
---|---|---|
dimension | ::mlir::IntegerAttr | 64-bit signless integer attribute |
is_stable | ::mlir::BoolAttr | bool attribute |
Operands:
Operand | 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 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 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 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 | 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
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 values |
random | tensor of 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 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
lhs | 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 values |
rhs | 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 values |
Resultados:
Resultado | Descripción |
---|---|
result | 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 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 complex type with 32-bit float or 64-bit float elements 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 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 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 | 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 | MLIR Type | Descripción |
---|---|---|
k | ::mlir::IntegerAttr | 64-bit signless integer attribute |
largest | ::mlir::BoolAttr | bool attribute |
Operands:
Operand | 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 values |
Resultados:
Resultado | Descripción |
---|---|
values | 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 |
indices | 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 |
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>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
dim | ::mlir::IntegerAttr | 64-bit signless integer attribute |
batch_dims | ::mlir::IntegerAttr | 64-bit signless integer attribute |
Operands:
Operand | 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 values |
index | 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 |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 |
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 | MLIR Type | Descripción |
---|---|---|
tag | ::mlir::StringAttr | string attribute |
Operands:
Operand | 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 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)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
permutation | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operands:
Operand | 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 values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 |
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)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
left_side | ::mlir::BoolAttr | bool attribute |
lower | ::mlir::BoolAttr | bool attribute |
unit_diagonal | ::mlir::BoolAttr | bool attribute |
transpose_a | ::mlir::mhlo::TransposeAttr | Transpose options |
Operands:
Operand | Descripción |
---|---|
a | 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 | 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" | 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>>>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
val | 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 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 values or token values |
Resultados:
Resultado | Descripción |
---|---|
result | 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 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>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Atributos:
Atributo | MLIR Type | Descripción |
---|---|---|
einsum_config | ::mlir::StringAttr | string attribute |
Operands:
Operand | 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 values |
Resultados:
Resultado | Descripción |
---|---|
"sin nombre" | 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 |
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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
operand | tensor of 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 | 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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | 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 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 | tensor of 4/8/16/32-bit uniform quantized signed integer or 4/8/16/32-bit uniform quantized 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, SingleBlock, SingleBlockImplicitTerminator
Interfaces: InferTypeOpInterface, OpAsmOpInterface
Operands:
Operand | Descripción |
---|---|
operand | 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 values or token |
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 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 | MLIR Type | Descripción |
---|---|---|
delta | ::mlir::IntegerAttr | 64-bit signless integer attribute |
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)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Descripción |
---|---|
lhs | 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 | 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 | 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 |
Attribute definition
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 | C++ type | 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 | C++ type | Descripción |
---|---|---|
manejar | int64_t | |
tipo | int64_t |
ComparisonDirectionAttr
Which comparison operation to perform.
Sintaxis:
#mhlo.comparison_direction<
::mlir::mhlo::ComparisonDirection # value
>
Enum cases:
- EQ (
EQ
) - NE (
NE
) - GE (
GE
) - GT (
GT
) - LE (
LE
) - LT (
LT
) #### Parameters:
Parámetro | C++ type | 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
>
Enum cases:
- NOTYPE (
NOTYPE
) - FLOAT (
FLOAT
) - TOTALORDER (
TOTALORDER
) - SIGNED (
SIGNED
) - UNSIGNED (
UNSIGNED
) #### Parameters:
Parámetro | C++ type | Descripción |
---|---|---|
valor | ::mlir::mhlo::ComparisonType | an enum of type ComparisonType |
ConvDimensionNumbersAttr
Structure of dimension information for conv op
Parámetros:
Parámetro | C++ type | 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 | C++ type | 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
>
Enum cases:
- NINGUNO
NONE
) - LATEST (
LATEST
) - EARLIEST (
EARLIEST
) #### Parameters:
Parámetro | C++ type | 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
>
Enum cases:
- MIN_COMBINED (
MIN_COMBINED
) #### Parameters:
Parámetro | C++ type | 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
>
Enum cases:
- sharding (
sharding
) #### Parameters:
Parámetro | C++ type | Descripción |
---|---|---|
valor | ::mlir::mhlo::DomainKind | an enum of type DomainKind |
DotDimensionNumbersAttr
Attribute that models the dimension information for dot.
Parámetros:
Parámetro | C++ type | 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
>
Enum cases:
- FFT (
FFT
) - IFFT (
IFFT
) - RFFT (
RFFT
) - IRFFT (
IRFFT
) #### Parameters:
Parámetro | C++ type | Descripción |
---|---|---|
valor | ::mlir::mhlo::FftType | an enum of type FftType |
FusionKindAttr
fusion kind
Sintaxis:
#mhlo.fusion_kind<
::mlir::mhlo::FusionKind # value
>
Enum cases:
- kLoop (
kLoop
) - kInput (
kInput
) - kOutput (
kOutput
) - kCustom (
kCustom
) #### Parameters:
Parámetro | C++ type | Descripción |
---|---|---|
valor | ::mlir::mhlo::FusionKind | an enum of type FusionKind |
GatherDimensionNumbersAttr
Attribute that models the dimension information for gather
Parámetros:
Parámetro | C++ type | 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 | C++ type | 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
>
Enum cases:
- DEFAULT (
DEFAULT
) - ALTA
HIGH
) - HIGHEST (
HIGHEST
) - PACKED_NIBBLE (
PACKED_NIBBLE
) #### Parameters:
Parámetro | C++ type | 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
>
Enum cases:
- DEFAULT (
DEFAULT
) - THREE_FRY (
THREE_FRY
) - PHILOX (
PHILOX
) #### Parameters:
Parámetro | C++ type | 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
>
Enum cases:
- UNIFORM (
UNIFORM
) - NORMAL (
NORMAL
) #### Parameters:
Parámetro | C++ type | Descripción |
---|---|---|
valor | ::mlir::mhlo::RngDistribution | an enum of type RngDistribution |
ScatterDimensionNumbersAttr
Attribute that models the dimension information for scatter
Parámetros:
Parámetro | C++ type | 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 |
TransposeAttr
Transpose options
Sintaxis:
#mhlo.transpose<
::mlir::mhlo::Transpose # value
>
Enum cases:
- TRANSPOSE_INVALID (
TRANSPOSE_INVALID
) - NO_TRANSPOSE (
NO_TRANSPOSE
) - TRANSPOSE (
TRANSPOSE
) - ADJOINT (
ADJOINT
) #### Parameters:
Parámetro | C++ type | 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 | C++ type | Descripción |
---|---|---|
límites | ::llvm::ArrayRef<int64_t> |
Type definition
AsyncBundleType
Opaque collection of other types
Sintaxis:
!mhlo.async_bundle<
::llvm::ArrayRef<Type> # types
>
Parámetros:
Parámetro | C++ type | Descripción |
---|---|---|
tipos | ::llvm::ArrayRef<Type> |