'chlo' Dialect

クライアント HLO Ops

この言語には、XlaBuilder C++ API の API サーフェス領域と密接に連携する op が含まれています。このような op には、下位レベルの言語(stablehlo など)に存在するものを超えるセマンティクスがあります。基本的に、クライアント ライブラリが API 呼び出しに複数の op の構文糖衣または構成を使用する場合、この言語は API 呼び出しをモデル化し、下位レベルの言語に完全に具体化するための変換パターンを提供しようとします。

運用

chlo._asin_acos_kernel(chlo::AsinAcosKernelOp)

AsinAcosKernel 演算子

構文:

operation ::= `chlo._asin_acos_kernel` $operand attr-dict `:` type($operand) `->` type($result)

AsinAcosKernel(operand) を要素ごとに返します。

If
  w = _asin_acos_kernel(z)
  w' = _asin_acos_kernel(I * z)
Then
  asin(z) = complex(atan2(z.real, w.real), sign(z.imag) * w.imag)
  acos(z) = complex(atan2(w.real, z.real), -sign(z.imag) * w.imag)
  asinh(z) = complex(sign(z.real) * w'.imag, atan2(z.imag, w'.real))
  acosh(z) = complex(w.imag, sign(z.imag) * atan2(w.real, z.real))

この op は分解の中間値として使用され、フレームワークによって直接構築されたり、バックエンドによって使用されたりすることはありません。

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 32/64 ビットの浮動小数点要素値を持つ複素数型のテンソル

結果:

結果 説明
result 32/64 ビットの浮動小数点要素値を持つ複素数型のテンソル

chlo.acos(chlo::AcosOp)

Acos 演算子

構文:

operation ::= `chlo.acos` $operand attr-dict `:` type($operand) `->` type($result)

Acos(operand) を要素ごとに返します。

\[ \acos(x) = 2 * \atan(\sqrt(1 - x^2) / (1 + x)) if x != -1 = pi if x == -1 \]

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

結果:

結果 説明
result 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

chlo.acosh(chlo::AcoshOp)

Acosh オペレーション

構文:

operation ::= `chlo.acosh` $operand attr-dict `:` type($operand) `->` type($result)

Acosh(operand) を要素ごとに返します。

\[ \acosh(x) = log(x + sqrt(x^2 - 1)) if x >= -1 \acosh(x) = nan if x < -1 \]

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

結果:

結果 説明
result 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

chlo.asin(chlo::AsinOp)

Asin 演算子

構文:

operation ::= `chlo.asin` $operand attr-dict `:` type($operand) `->` type($result)

Asin(operand) を要素ごとに返します。

\[ \asin(x) = 2 * atan(x / (1 + sqrt(1 - x^2))) \]

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

結果:

結果 説明
result 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

chlo.asinh(chlo::AsinhOp)

Asinh オペレーション

構文:

operation ::= `chlo.asinh` $operand attr-dict `:` type($operand) `->` type($result)

Asinh(operand) を要素ごとに返します。

\[ \asinh(x) = log(x + sqrt(x^2 + 1)) \]

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

結果:

結果 説明
result 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

chlo.atan(chlo::AtanOp)

Atan 演算子

構文:

operation ::= `chlo.atan` $operand attr-dict `:` type($operand) `->` type($result)

Atan(operand) を要素ごとに返します。

\[ \atan(x) = \atan2(x, 1) \]

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

結果:

結果 説明
result 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

chlo.atanh(chlo::AtanhOp)

Atanh 演算子

構文:

operation ::= `chlo.atanh` $operand attr-dict `:` type($operand) `->` type($result)

Atanh(operand) を要素ごとに返します。

\[ \atanh(x) = 0.5 * log((1 + x) / (1 - x)) if abs(x) <= 1 = nan otherwise \]

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

結果:

結果 説明
result 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

chlo.bessel_i1e(chlo::BesselI1eOp)

1 次のベッセル関数

構文:

operation ::= `chlo.bessel_i1e` $operand attr-dict `:` type($operand) `->` type($result)

bessel_i1e(operand) を要素ごとに返します。

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

結果:

結果 説明
result 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

chlo.broadcast_add(chlo::BroadcastAddOp)

加算演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_add` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

lhs + rhs を要素ごとに返します。

https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingCommutativeHLO_BroadcastingElementwiseHLO_CompatibleOperandsAndResultElementTypeInferTensorType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_and(chlo::BroadcastAndOp)

論理積演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_and` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

logical_and(lhs, rhs) を要素ごとに返します。

https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingCommutativeHLO_BroadcastingElementwiseInferTensorType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs bool または 2/4/8/16/32/64 ビット整数値のテンソル
rhs bool または 2/4/8/16/32/64 ビット整数値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_atan2(chlo::BroadcastAtan2Op)

Atan2 演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_atan2` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

atan2(lhs/rhs) を要素ごとに返します。

https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingHLO_BroadcastingElementwiseInferTensorTypeSameOperandsAndResultElementType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_compare(chlo::BroadcastCompareOp)

比較演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_compare` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

comparison_directioncompare_type に従って、lhsrhs を要素ごとに比較します。指定しない場合、compare_type は浮動小数点要素型の場合は FLOAT、符号付き要素型の場合は SIGNED、符号なし要素型の場合は UNSIGNED になります。

https://www.tensorflow.org/xla/operation_semantics#element-wise_comparison_operations をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingHLO_BroadcastingElementwiseInferTensorType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性
comparison_direction::mlir::chlo::ComparisonDirectionAttr実行する比較オペレーション。
compare_type::mlir::chlo::ComparisonTypeAttr使用する比較タイプ。

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» ブール値のテンソル

chlo.broadcast_complex(chlo::BroadcastComplexOp)

複合演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_complex` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

実数値と虚数値のペアを要素ごとに複素数値に変換します。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingHLO_BroadcastingElementwiseInferTensorType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点値のテンソル

結果:

結果 説明
«unnamed» 32/64 ビットの浮動小数点要素値を持つ複素数型のテンソル

chlo.broadcast_divide(chlo::BroadcastDivOp)

除算演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_divide` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

lhs / rhs を要素ごとに返します。

https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingHLO_BroadcastingElementwiseInferTensorTypeSameOperandsAndResultElementType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_maximum(chlo::BroadcastMaxOp)

最大オペレーター(ブロードキャストは任意)

構文:

operation ::= `chlo.broadcast_maximum` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

max(lhs, rhs) を要素ごとに返します。

https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingCommutativeHLO_BroadcastingElementwiseHLO_CompatibleOperandsAndResultElementTypeInferTensorType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_minimum(chlo::BroadcastMinOp)

最小演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_minimum` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

min(lhs, rhs) を要素ごとに返します。

https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingCommutativeHLO_BroadcastingElementwiseHLO_CompatibleOperandsAndResultElementTypeInferTensorType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_multiply(chlo::BroadcastMulOp)

乗算演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_multiply` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

lhs * rhs を要素ごとに返します。

https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingCommutativeHLO_BroadcastingElementwiseInferTensorTypeSameOperandsAndResultElementType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_next_after(chlo::BroadcastNextAfterOp)

Std::nextafter 演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_next_after` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

rhs の方向に lhs の次に表現可能な値を要素ごとに返します。非正規化数を返すこともあります。

C++ の std::nextafter 関数と同等です。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingHLO_BroadcastingElementwiseInferTensorTypeSameOperandsAndResultElementType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_or(chlo::BroadcastOrOp)

論理 OR 演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_or` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

logical_or(lhs, rhs) を要素ごとに返します。

https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingCommutativeHLO_BroadcastingElementwiseInferTensorType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs bool または 2/4/8/16/32/64 ビット整数値のテンソル
rhs bool または 2/4/8/16/32/64 ビット整数値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_polygamma(chlo::BroadcastPolygammaOp)

ポリガンマ関数(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_polygamma` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

Polygamma(operand, operand) を要素ごとに返します。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingHLO_BroadcastingElementwiseInferTensorTypeSameOperandsAndResultElementType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_power(chlo::BroadcastPowOp)

べき乗演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_power` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

lhs ^ rhs を要素ごとに返します。

https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingHLO_BroadcastingElementwiseInferTensorTypeSameOperandsAndResultElementType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_remainder(chlo::BroadcastRemOp)

剰余演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_remainder` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

lhs % rhs を要素ごとに返します。

https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingHLO_BroadcastingElementwiseInferTensorTypeSameOperandsAndResultElementType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_select(chlo::BroadcastSelectOp)

演算子を選択(numpy スタイルのブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_select` $pred `,` $on_true `,` $on_false attr-dict `:`
              `(` type($pred) `,` type($on_true) `,` type($on_false) `)` `->` type(results)

述語配列の値に基づいて、2 つの入力配列の要素から出力配列を作成します。

https://www.tensorflow.org/xla/operation_semantics#select をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingHLO_BroadcastingElementwiseInferTensorType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
pred ブール値のランク付けされたテンソル
on_true 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
on_false 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_shift_left(chlo::BroadcastShiftLeftOp)

左シフト演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_shift_left` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

lhs << rhs を要素ごとに返します。

https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingHLO_BroadcastingElementwiseInferTensorTypeSameOperandsAndResultElementType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_shift_right_arithmetic(chlo::BroadcastShiftRightArithmeticOp)

右シフト算術演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_shift_right_arithmetic` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

lhs >> rhs を要素ごとに返します。

https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingHLO_BroadcastingElementwiseInferTensorTypeSameOperandsAndResultElementType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_shift_right_logical(chlo::BroadcastShiftRightLogicalOp)

右シフト論理演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_shift_right_logical` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

lhs >> rhs を要素ごとに返します。

https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingHLO_BroadcastingElementwiseInferTensorTypeSameOperandsAndResultElementType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_subtract(chlo::BroadcastSubOp)

減算演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_subtract` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

lhs - rhs を要素ごとに返します。

https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingHLO_BroadcastingElementwiseInferTensorTypeSameOperandsAndResultElementType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_xor(chlo::BroadcastXorOp)

論理 XOR 演算子(ブロードキャストは省略可)

構文:

operation ::= `chlo.broadcast_xor` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

logical_xor(lhs, rhs) を要素ごとに返します。

https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations をご覧ください。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingCommutativeHLO_BroadcastingElementwiseInferTensorType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs bool または 2/4/8/16/32/64 ビット整数値のテンソル
rhs bool または 2/4/8/16/32/64 ビット整数値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.broadcast_zeta(chlo::BroadcastZetaOp)

Hurwitz zeta function

構文:

operation ::= `chlo.broadcast_zeta` $lhs `,` $rhs attr-dict `:`
              `(` type($lhs) `,` type($rhs) `)` `->` type(results)

Zeta(operand, operand) を要素ごとに返します。

\[ \(\zeta(x, q) = \sum_{n=0}^{\infty} (q + n)^{-x}\) \]

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingHLO_BroadcastingElementwiseInferTensorTypeSameOperandsAndResultElementType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
broadcast_dimensions::mlir::DenseI64ArrayAttri64 密配列属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点値のテンソル

chlo.conj(chlo::ConjOp)

Conj 演算子

構文:

operation ::= `chlo.conj` $operand attr-dict `:` type($operand) `->` type($result)

Conj(operand) を要素ごとに返します。

\[ \conj(x) = (\real(x), \neg(\imag(x))) \]

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

結果:

結果 説明
result 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

chlo.constant(chlo::ConstantOp)

定数演算子

構文:

operation ::= `chlo.constant` attr-dict $value

定数値を表します。

特性: AlwaysSpeculatableImplTraitConstantLike

インターフェース: ConditionallySpeculatableInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
value::mlir::ElementsAttr定数ベクトル/テンソル属性

結果:

結果 説明
output 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素またはテンソルごとの整数量子化値を持つ複素数型の静的形状テンソル

chlo.constant_like(chlo::ConstantLikeOp)

定数類似演算子

オペランドと同じ形状のスプラット定数を返します。

トレイト: AlwaysSpeculatableImplTraitCHLO_BroadcastingHLO_BroadcastingElementwiseInferTensorTypeSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
value::mlir::TypedAttrTypedAttr インスタンス

オペランド:

オペランド 説明
operand 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
«unnamed» 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.cosh(chlo::CoshOp)

Cosh 演算子

構文:

operation ::= `chlo.cosh` $operand attr-dict `:` type($operand) `->` type($result)

Cosh(operand) を要素ごとに返します。

\[ \cosh(x) = (e^x + e^-x) / 2 \]

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

結果:

結果 説明
result 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

chlo.digamma(chlo::DigammaOp)

Digamma 関数

構文:

operation ::= `chlo.digamma` $operand attr-dict `:` type($operand) `->` type($result)

Digamma(operand) を要素ごとに返します。

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 4/6/8/16/32/64 ビット浮動小数点値のテンソル

結果:

結果 説明
result 4/6/8/16/32/64 ビット浮動小数点値のテンソル

chlo.erf(chlo::ErfOp)

Erfc 演算子

構文:

operation ::= `chlo.erf` $operand attr-dict `:` type($operand) `->` type($result)

x のガウスの誤差関数を要素ごとに計算します。

erf(x) = erf_impl(x) if |x| < 1 = 1 - erfc_impl(x) otherwise

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 4/6/8/16/32/64 ビット浮動小数点値のテンソル

結果:

結果 説明
result 4/6/8/16/32/64 ビット浮動小数点値のテンソル

chlo.erf_inv(chlo::ErfInvOp)

逆誤差関数

構文:

operation ::= `chlo.erf_inv` $operand attr-dict `:` type($operand) `->` type($result)

ErfInv(operand) を要素ごとに返します。

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 4/6/8/16/32/64 ビット浮動小数点値のテンソル

結果:

結果 説明
result 4/6/8/16/32/64 ビット浮動小数点値のテンソル

chlo.erfc(chlo::ErfcOp)

Erfc 演算子

構文:

operation ::= `chlo.erfc` $operand attr-dict `:` type($operand) `->` type($result)

誤差関数補完(1 - erf(x))の近似値を計算します。

erfc(x) = erfc_impl(x) if |x| > 1 = 1 - erf_impl(x) otherwise

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 4/6/8/16/32/64 ビット浮動小数点値のテンソル

結果:

結果 説明
result 4/6/8/16/32/64 ビット浮動小数点値のテンソル

chlo.is_inf(chlo::IsInfOp)

IsInf 述語

構文:

operation ::= `chlo.is_inf` $operand attr-dict `:` type($operand) `->` type($result)

値が +/-inf であるかどうかを要素ごとに返します。

トレイト: AlwaysSpeculatableImplTraitElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 4/6/8/16/32/64 ビット浮動小数点値のテンソル

結果:

結果 説明
result ブール値のテンソル

chlo.is_neg_inf(chlo::IsNegInfOp)

IsNegInf 述語

構文:

operation ::= `chlo.is_neg_inf` $operand attr-dict `:` type($operand) `->` type($result)

値が -inf かどうかを要素ごとに返します。

トレイト: AlwaysSpeculatableImplTraitElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 4/6/8/16/32/64 ビット浮動小数点値のテンソル

結果:

結果 説明
result ブール値のテンソル

chlo.is_pos_inf(chlo::IsPosInfOp)

IsPosInf 述語

構文:

operation ::= `chlo.is_pos_inf` $operand attr-dict `:` type($operand) `->` type($result)

値が +inf かどうかを要素ごとに返します。

トレイト: AlwaysSpeculatableImplTraitElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 4/6/8/16/32/64 ビット浮動小数点値のテンソル

結果:

結果 説明
result ブール値のテンソル

chlo.lgamma(chlo::LgammaOp)

Lgamma 関数

構文:

operation ::= `chlo.lgamma` $operand attr-dict `:` type($operand) `->` type($result)

Lgamma(operand) を要素ごとに返します。

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 4/6/8/16/32/64 ビット浮動小数点値のテンソル

結果:

結果 説明
result 4/6/8/16/32/64 ビット浮動小数点値のテンソル

chlo.next_after(chlo::NextAfterOp)

Std::nextafter 演算子

構文:

operation ::= `chlo.next_after` $x `,` $y attr-dict `:` type($x) `,` type($y) `->` type(results)

y の方向に x の次に表現可能な値を要素ごとに返します。非正規化数を返すこともあります。

C++ の std::nextafter 関数と同等です。

特性: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
x 4/6/8/16/32/64 ビット浮動小数点値のテンソル
y 4/6/8/16/32/64 ビット浮動小数点値のテンソル

結果:

結果 説明
result 4/6/8/16/32/64 ビット浮動小数点値のテンソル

chlo.polygamma(chlo::PolygammaOp)

ポリガンマ関数

構文:

operation ::= `chlo.polygamma` $n `,` $x attr-dict `:` type($n) `,` type($x) `->` type(results)

Polygamma(operand, operand) を要素ごとに返します。

特性: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
n 4/6/8/16/32/64 ビット浮動小数点値のテンソル
x 4/6/8/16/32/64 ビット浮動小数点値のテンソル

結果:

結果 説明
result 4/6/8/16/32/64 ビット浮動小数点値のテンソル

chlo.ragged_dot(chlo::RaggedDotOp)

1 つのラグド ディメンションで matmul を計算します

このオペレーションは、lhs、rhs、group_sizes の 3 つのテンソル引数と、ragged_dot_dimension_numbers 属性を取ります。dot_general と同様に、lhs と rhs には任意のバッチ ディメンションと縮約ディメンションを使用できます。また、lhs には 1 つのラグド ディメンションが必要であり、rhs には最大 1 つのグループ ディメンションを含めることができます。演算は、左辺のラグド ディメンションの種類に応じて 3 つのモードがあります。

モード 1 では、シェイプ シグネチャは [b,m,k], [g,b,k,n], [b,g] -> [b,m,n] です。ここで、不揃いディメンションは左辺の非収縮ディメンション(m)です。ディメンション bk は、それぞれバッチ ディメンションと収縮ディメンションを表します。右辺にはグループ ディメンション(g)が必要です。

モード 2 では、シェイプ シグネチャは [b,m,k], [b,k,n], [b,g] -> [g,b,m,n] です。ここで、不揃いなディメンションは左辺/右辺の縮約ディメンション(k)です。

モード 3 では、シェイプ シグネチャは [b,m,k], [b,k,n], [g] -> [b,m,n] です。ここで、ラグド ディメンションは lhs/rhs バッチ ディメンション(b)です。

特性: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
ragged_dot_dimension_numbers::mlir::chlo::RaggedDotDimensionNumbersAttr不揃いなドットのディメンション情報をモデル化する属性。
precision_config::mlir::ArrayAttrPrecision Config 属性

オペランド:

オペランド 説明
lhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
rhs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
group_sizes 2/4/8/16/32/64 ビット整数値のランク付きテンソル

結果:

結果 説明
result 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.scan(chlo::ScanOp)

スキャン オペレーション

dimension に沿って inputsinits に削減関数 body を適用し、resultsoutputscarries で構成される)を生成します。

is_reverse が true の場合、スキャンは逆順で実行されます。is_associative は、削減関数が結合的かどうかを示します。

参照: https://www.tensorflow.org/xla/operation_semantics#scan

ScanOp には現在、StableHLO への分解がありません。

トレイト: AttrSizedOperandSegmentsAttrSizedResultSegmentsInferTensorTypeIsolatedFromAboveRecursiveMemoryEffects

インターフェース: InferShapedTypeOpInterfaceInferTypeOpInterfaceOpAsmOpInterface

属性:

属性MLIR 型説明
dimension::mlir::IntegerAttr値が非負の 64 ビット符号なし整数属性
is_reverse::mlir::BoolAttrbool 属性
is_associative::mlir::BoolAttrbool 属性

オペランド:

オペランド 説明
inputs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソルの可変長引数
inits 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソルの可変長引数

結果:

結果 説明
outputs 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソルの可変長引数
carries 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソルの可変長引数

chlo.sinh(chlo::SinhOp)

Sinh オペレーション

構文:

operation ::= `chlo.sinh` $operand attr-dict `:` type($operand) `->` type($result)

Sinh(operand) を要素ごとに返します。

\[ \sinh(x) = (e^x - e^-x) / 2 if |x| < 1 = e^(x + log(1/2)) - e^(-x + log(1/2)) otherwise. \]

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

結果:

結果 説明
result 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

chlo.square(chlo::SquareOp)

Square オペレーション

構文:

operation ::= `chlo.square` $operand attr-dict `:` type($operand) `->` type($result)

Square(operand) を要素ごとに返します。

\[ \square(x) = complex((x.real - x.imag) * (x.real + x.imag), x.real * x.imag * 2) if x is a complex number = x * x otherwise \]

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

結果:

結果 説明
result 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

chlo.tan(chlo::TanOp)

Tan オペレーション

構文:

operation ::= `chlo.tan` $operand attr-dict `:` type($operand) `->` type($result)

Tan(operand) を要素ごとに返します。

\[ \tan(x) = \sin(x) / \cos(x) \]

トレイト: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultTypeElementwiseSameOperandsAndResultShape

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
operand 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

結果:

結果 説明
result 32 ビットまたは 64 ビットの浮動小数点要素値を持つ 4 / 6 / 8 / 16 / 32 / 64 ビットの浮動小数点型または複素数型のテンソル

chlo.top_k(chlo::TopKOp)

最後の次元の k 個の最大要素の値とインデックスを検索します。

構文:

operation ::= `chlo.top_k` `(`$operand `,` `k` `=` $k`)` attr-dict `:`
              type($operand) `->` `(`type($values)`,` type($indices)`)`

入力がベクトル(ランク 1)の場合、ベクトル内の k 個の最大エントリを見つけ、その値とインデックスをベクトルとして出力します。したがって、values[j]inputj 番目に大きいエントリであり、そのインデックスは indices[j] です。

行列(または高ランクの入力)の場合、各行(または最後の次元に沿ったベクトル)の上位 k 個のエントリを計算します。つまり、

values.shape = indices.shape = input.shape[:-1] + [k]

2 つの要素が等しい場合は、インデックスの小さい要素が先に表示されます。

特性: AlwaysSpeculatableImplTraitInferTensorType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性:

属性MLIR 型説明
k::mlir::IntegerAttr64 ビット符号なし整数属性

オペランド:

オペランド 説明
operand 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

結果:

結果 説明
values 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル
indices 4/6/8/16/32/64 ビット浮動小数点数、ブール値、2/4/8/16/32/64 ビット整数、32/64 ビット浮動小数点要素を含む複素数型、テンソルごとの整数量子化値、軸ごとの整数量子化値のテンソル

chlo.zeta(chlo::ZetaOp)

Hurwitz zeta function

構文:

operation ::= `chlo.zeta` $x `,` $q attr-dict `:` type($x) `,` type($q) `->` type(results)

Zeta(operand, operand) を要素ごとに返します。

\[ \(\zeta(x, q) = \sum_{n=0}^{\infty} (q + n)^{-x}\) \]

特性: AlwaysSpeculatableImplTraitCompatibleOperandsAndResultType

インターフェース: ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

オペランド:

オペランド 説明
x 4/6/8/16/32/64 ビット浮動小数点値のテンソル
q 4/6/8/16/32/64 ビット浮動小数点値のテンソル

結果:

結果 説明
result 4/6/8/16/32/64 ビット浮動小数点値のテンソル

属性

ComparisonDirectionAttr

実行する比較オペレーション。

構文:

#chlo.comparison_direction<
  ::mlir::chlo::ComparisonDirection   # value
>

パラメータ:

パラメータ C++ 型 説明
::mlir::chlo::ComparisonDirection ComparisonDirection 型の列挙型

ComparisonTypeAttr

使用する比較タイプ。

構文:

#chlo.comparison_type<
  ::mlir::chlo::ComparisonType   # value
>

パラメータ:

パラメータ C++ 型 説明
::mlir::chlo::ComparisonType ComparisonType 型の列挙型

PrecisionAttr

オペランドの XLA 精度。バックエンド固有の意味を持ちます。

構文:

#chlo.precision<
  ::mlir::chlo::Precision   # value
>

パラメータ:

パラメータ C++ 型 説明
::mlir::chlo::Precision Precision 型の列挙型

RaggedDotDimensionNumbersAttr

不揃いなドットのディメンション情報をモデル化する属性。

パラメータ:

パラメータ C++ 型 説明
lhsBatchingDimensions ::llvm::ArrayRef<int64_t> ディメンション
rhsBatchingDimensions ::llvm::ArrayRef<int64_t> ディメンション
lhsContractingDimensions ::llvm::ArrayRef<int64_t> ディメンション
rhsContractingDimensions ::llvm::ArrayRef<int64_t> ディメンション
lhsRaggedDimensions ::llvm::ArrayRef<int64_t> ディメンション
rhsGroupDimensions ::llvm::ArrayRef<int64_t> ディメンション

列挙型

ComparisonDirection

実行する比較オペレーション。

Cases:

記号 文字列
EQ 0 EQ
北東 1 北東
GE 2 GE
GT 3 GT
LE 4 LE
LT 5 LT

ComparisonType

使用する比較タイプ。

Cases:

記号 文字列
NOTYPE 0 NOTYPE
FLOAT 1 FLOAT
TOTALORDER 2 TOTALORDER
SIGNED 3 SIGNED
UNSIGNED 4 UNSIGNED

適合率

オペランドの XLA 精度。バックエンド固有の意味を持ちます。

Cases:

記号 文字列
デフォルト 0 デフォルト
1
HIGHEST 2 HIGHEST