Hoạt động
mhlo.abs
(mhlo::AbsOp)
Hoạt động cơ bụng
Cú pháp:
operation ::= `mhlo.abs` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Thực hiện thao tác abs theo phần tử trên tensor operand
và tạo ra tensor result
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#abs
Ví dụ:
%result = mhlo.abs %operand : tensor<3xi32>
Đặc điểm: AlwaysSpeculatableImplTrait
, Elementwise
, SameOperandsAndResultShape
Các giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Toán hạng:
Toán hạng | Sự miêu tả |
---|---|
operand | tenxơ xếp hạng số nguyên không dấu 2/4/8/16/32/64-bit hoặc loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc f8 E8M0FNU loại hoặc loại float 16-bit hoặc loại float 32-bit hoặc loại float 64-bit hoặc bfloat16 hoặc loại phức tạp với các phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu lượng tử hóa thống nhất 2/4/8/16/32-bit hoặc 2/4/8/16/32-bit được lượng tử hóa đồng đều trên mỗi trục có dấu số nguyên hoặc 2/4/8/16/32-bit được lượng tử hóa đồng đều trên mỗi trục không dấu giá trị số nguyên |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | tenxơ xếp hạng số nguyên không dấu 2/4/8/16/32/64-bit hoặc loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc f8 E8M0FNU loại hoặc loại float 16-bit hoặc float 32-bit hoặc loại float 64-bit hoặc bfloat16 hoặc loại số nguyên có dấu được lượng tử hóa thống nhất 2/4/8/16/32-bit hoặc thống nhất 2/4/8/16/32-bit được lượng tử hóa trên mỗi số nguyên có dấu trục hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit trên mỗi trục |
mhlo.add
(mhlo::AddOp)
Thêm thao tác
Cú pháp:
operation ::= `mhlo.add` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Thực hiện phép cộng theo từng phần tử của hai tensor lhs
và rhs
và tạo ra một tensor result
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#add
Ví dụ:
%result = mhlo.add %lhs, %rhs : tensor<2x2xi32>
Đặc điểm: AlwaysSpeculatableImplTrait
, Commutative
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Các giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Toán hạng:
toán hạng | Sự miêu tả |
---|---|
lhs | tensor xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc float 32-bit hoặc phao 64-bit hoặc loại bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1 bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc loại phức tạp với Các phần tử float 32-bit hoặc 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc 2/4/8/16 /32-bit đồng nhất lượng tử hóa trên mỗi trục số nguyên có dấu hoặc 2/4/8/16/32-bit thống nhất lượng tử hóa trên mỗi trục giá trị số nguyên không dấu |
rhs | tensor xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc float 32-bit hoặc phao 64-bit hoặc loại bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1 bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc loại phức tạp với Các phần tử float 32-bit hoặc 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc 2/4/8/16 /32-bit đồng nhất lượng tử hóa trên mỗi trục số nguyên có dấu hoặc 2/4/8/16/32-bit thống nhất lượng tử hóa trên mỗi trục giá trị số nguyên không dấu |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | tensor xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc float 32-bit hoặc phao 64-bit hoặc loại bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1 bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc loại phức tạp với Các phần tử float 32-bit hoặc 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc 2/4/8/16 /32-bit đồng nhất lượng tử hóa trên mỗi trục số nguyên có dấu hoặc 2/4/8/16/32-bit thống nhất lượng tử hóa trên mỗi trục giá trị số nguyên không dấu |
mhlo.add_dependency
(mhlo::AddDependencyOp)
Hoạt động AddDependency
Cú pháp:
operation ::= `mhlo.add_dependency` operands attr-dict `:` functional-type(operands, results)
Hoạt động này là riêng tư đối với trình biên dịch XLA, vì vậy nó chưa có thông số kỹ thuật.
Một cách không chính thức, thao tác này có hai toán hạng: toán hạng dữ liệu và mã thông báo. Đầu ra của hoạt động là toán hạng dữ liệu. Khi được sử dụng với AfterAll, thao tác này cho phép sắp xếp các hoạt động không có tác dụng phụ (những hoạt động không tạo ra giá trị mã thông báo).
Ví dụ:
%1 = mhlo.add_dependency %arg0, %0 : (tensor<3x4xf32>, !mhlo.token) -> tensor<3x4xf32>
Đặc điểm: AlwaysSpeculatableImplTrait
Các giao diện: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Toán hạng:
toán hạng | Sự miêu tả |
---|---|
operand | tensor xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc float 32-bit hoặc phao 64-bit hoặc loại bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1 bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc loại phức tạp với Các phần tử float 32-bit hoặc 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc các giá trị số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc tenxơ được xếp hạng là 2/4 /8/16/32-bit thống nhất được lượng tử hóa trên mỗi trục có dấu số nguyên hoặc 2/4/8/16/32-bit thống nhất được lượng tử hóa trên mỗi trục giá trị số nguyên không dấu hoặc mã thông báo |
token | mã thông báo |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
output | tensor xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc float 32-bit hoặc phao 64-bit hoặc loại bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1 bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc loại phức tạp với Các phần tử float 32-bit hoặc 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc các giá trị số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc tenxơ được xếp hạng là 2/4 /8/16/32-bit thống nhất được lượng tử hóa trên mỗi trục có dấu số nguyên hoặc 2/4/8/16/32-bit thống nhất được lượng tử hóa trên mỗi trục giá trị số nguyên không dấu hoặc mã thông báo |
mhlo.after_all
(mhlo::AfterAllOp)
Sau tất cả hoạt động
Cú pháp:
operation ::= `mhlo.after_all` $inputs attr-dict
`:` custom<VariadicSameOperandsAndResultType>(ref($inputs), type($inputs), type($result))
Đảm bảo rằng các thao tác tạo inputs
được thực hiện trước bất kỳ thao tác nào phụ thuộc vào result
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#after_all
Ví dụ:
%result = mhlo.after_all %input0, %input1 : !mhlo.token
Đặc điểm: AlwaysSpeculatableImplTrait
Các giao diện: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Toán hạng:
toán hạng | Sự miêu tả |
---|---|
inputs | mã thông báo biến đổi |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | mã thông báo |
mhlo.all_gather
(mhlo::AllGatherOp)
Hoạt động AllGather
Trong mỗi nhóm quy trình trong lưới quy trình, nối các giá trị của tenxơ toán hạng từ mỗi quy trình dọc theo all_gather_dim
và tạo ra một tenxơ kết quả. computation
được áp dụng riêng cho từng toán hạng trong operands
, tạo ra một kết quả cho mỗi toán hạng.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_gather
Ví dụ:
%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>
Đặc điểm: SameOperandsAndResultElementType
Thuộc tính:
Thuộc tính | Loại MLIR | Sự miêu tả |
---|---|---|
all_gather_dim | ::mlir::IntegerAttr | Thuộc tính số nguyên không dấu 64 bit có giá trị không âm |
replica_groups | ::mlir::DenseIntElementsAttr | Thuộc tính phần tử số nguyên không dấu 64-bit |
channel_handle | ::mlir::mhlo::ChannelHandleAttr | hai số nguyên 64 bit 'xử lý' và 'loại' |
use_global_device_ids | ::mlir::UnitAttr | thuộc tính đơn vị |
Toán hạng:
Toán hạng | Sự miêu tả |
---|---|
operands | biến thể của tenxơ xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc Phao 2 bit hoặc 64- bit float hoặc bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1 bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số phức loại có phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc 2/4/8 /16/32-bit thống nhất được lượng tử hóa trên mỗi trục có dấu số nguyên hoặc 2/4/8/16/32-bit thống nhất được lượng tử hóa trên mỗi trục giá trị số nguyên không dấu |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | biến thể của tenxơ xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc Phao 2 bit hoặc 64- bit float hoặc bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1 bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số phức loại có phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc 2/4/8 /16/32-bit thống nhất được lượng tử hóa trên mỗi trục có dấu số nguyên hoặc 2/4/8/16/32-bit thống nhất được lượng tử hóa trên mỗi trục giá trị số nguyên không dấu |
mhlo.all_reduce
(mhlo::AllReduceOp)
Hoạt động AllReduce
Trong mỗi nhóm quy trình trong lưới quy trình, áp dụng computation
hàm rút gọn cho các giá trị của tenxơ toán hạng từ mỗi quy trình và tạo ra một tenxơ kết quả. computation
được áp dụng riêng cho từng toán hạng trong operands
, tạo ra một kết quả cho mỗi toán hạng.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_reduce
Ví dụ:
%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>
Đặc điểm: InferTensorType
, SingleBlockImplicitTerminator<ReturnOp>
, SingleBlock
Các giao diện: InferShapedTypeOpInterface
, InferTypeOpInterface
Thuộc tính:
Thuộc tính | Loại MLIR | Sự miêu tả |
---|---|---|
replica_groups | ::mlir::DenseIntElementsAttr | Thuộc tính phần tử số nguyên không dấu 64-bit |
channel_handle | ::mlir::mhlo::ChannelHandleAttr | hai số nguyên 64 bit 'xử lý' và 'loại' |
use_global_device_ids | ::mlir::UnitAttr | thuộc tính đơn vị |
Toán hạng:
Toán hạng | Sự miêu tả |
---|---|
operands | biến thể của tenxơ xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc Phao 2 bit hoặc 64- bit float hoặc bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1 bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số phức loại có phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc 2/4/8 /16/32-bit thống nhất được lượng tử hóa trên mỗi trục có dấu số nguyên hoặc 2/4/8/16/32-bit thống nhất được lượng tử hóa trên mỗi trục giá trị số nguyên không dấu |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | biến thể của tenxơ xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc Phao 2 bit hoặc 64- bit float hoặc bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1 bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số phức loại có phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc 2/4/8 /16/32-bit thống nhất được lượng tử hóa trên mỗi trục có dấu số nguyên hoặc 2/4/8/16/32-bit thống nhất được lượng tử hóa trên mỗi trục giá trị số nguyên không dấu |
mhlo.all_to_all
(mhlo::AllToAllOp)
Hoạt động AllToAll
Trong mỗi nhóm quy trình trong lưới quy trình, phân chia các giá trị của tensor operand
theo split_dimension
thành các phần, phân tán các phần được phân tách giữa các quy trình, nối các phần phân tán dọc theo concat_dimension
và tạo ra tensor result
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_to_all
Ví dụ:
%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>
Đặc điểm: AlwaysSpeculatableImplTrait
, InferTensorType
, SameOperandsElementType
, SameOperandsShape
, SameVariadicOperandSize
Các giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Thuộc tính:
Thuộc tính | Loại MLIR | Sự miêu tả |
---|---|---|
split_dimension | ::mlir::IntegerAttr | Thuộc tính số nguyên không dấu 64 bit có giá trị không âm |
concat_dimension | ::mlir::IntegerAttr | Thuộc tính số nguyên không dấu 64 bit có giá trị không âm |
split_count | ::mlir::IntegerAttr | Thuộc tính số nguyên không dấu 64 bit có giá trị dương |
replica_groups | ::mlir::DenseIntElementsAttr | Thuộc tính phần tử số nguyên không dấu 64-bit |
channel_handle | ::mlir::mhlo::ChannelHandleAttr | hai số nguyên 64 bit 'xử lý' và 'loại' |
Toán hạng:
Toán hạng | Sự miêu tả |
---|---|
operand | biến thể của tenxơ xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc Phao 2 bit hoặc 64- bit float hoặc bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1 bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số phức loại có phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc 2/4/8 /16/32-bit thống nhất được lượng tử hóa trên mỗi trục có dấu số nguyên hoặc 2/4/8/16/32-bit thống nhất được lượng tử hóa trên mỗi trục giá trị số nguyên không dấu |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | biến thể của tenxơ xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc Phao 2 bit hoặc 64- bit float hoặc bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1 bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số phức loại có phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc 2/4/8 /16/32-bit đồng nhất được lượng tử hóa trên mỗi trục có dấu số nguyên hoặc 2/4/8/16/32-bit được lượng tử hóa đồng đều trên mỗi trục giá trị số nguyên không dấu |
mhlo.and
(mhlo::AndOp)
Và hoạt động
Cú pháp:
operation ::= `mhlo.and` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Thực hiện AND theo phần tử của hai tensor lhs
và rhs
và tạo ra một tensor result
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#and
Ví dụ:
%result = mhlo.and %lhs, %rhs : tensor<2x2xi32>
Đặc điểm: AlwaysSpeculatableImplTrait
, Commutative
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Các giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Toán hạng:
Toán hạng | Sự miêu tả |
---|---|
lhs | tensor được xếp hạng của pred (AKA boolean hoặc số nguyên 1 bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc các giá trị số nguyên không dấu 2/4/8/16/32/64-bit |
rhs | tensor được xếp hạng của pred (AKA boolean hoặc số nguyên 1 bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc các giá trị số nguyên không dấu 2/4/8/16/32/64-bit |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | tensor xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc float 32-bit hoặc phao 64-bit hoặc loại bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1 bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc loại phức tạp với Các phần tử float 32-bit hoặc 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc 2/4/8/16 /32-bit đồng nhất lượng tử hóa trên mỗi trục số nguyên có dấu hoặc 2/4/8/16/32-bit thống nhất lượng tử hóa trên mỗi trục giá trị số nguyên không dấu |
mhlo.async_done
(mhlo::AsyncDoneOp)
Hoạt động không đồng bộ
Hoạt động này là riêng tư đối với trình biên dịch XLA, vì vậy nó chưa có thông số kỹ thuật.
Một cách không chính thức, hoạt động này sẽ chặn cho đến khi kết thúc quá trình tính toán không đồng bộ. Nó trả về kết quả cuối cùng của tính toán không đồng bộ.
Xem tài liệu về AsyncStart để biết thêm thông tin.
Giao diện: InferTypeOpInterface
Toán hạng:
toán hạng | Sự miêu tả |
---|---|
bundle | async_bundle với bất kỳ sự kết hợp nào của tensor xếp hạng thuộc loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc 16- phao bit hoặc phao 32 bit hoặc kiểu float 64-bit hoặc bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1-bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc 2/4/8/16/32/64-bit không dấu số nguyên hoặc loại phức với các phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc 2/ 4/8/16/32-bit đồng nhất được lượng tử hóa trên mỗi trục số nguyên có dấu hoặc 2/4/8/16/32-bit đồng nhất được lượng tử hóa trên mỗi trục giá trị số nguyên không dấu hoặc giá trị mã thông báo |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | biến thể của tenxơ xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc Phao 2 bit hoặc 64- bit float hoặc bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1 bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số phức loại có phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc 2/4/8 /16/32-bit đồng nhất được lượng tử hóa trên mỗi trục có dấu số nguyên hoặc 2/4/8/16/32-bit đồng nhất được lượng tử hóa trên mỗi trục có giá trị số nguyên không dấu hoặc mã thông báo hoặc bộ dữ liệu lồng nhau với bất kỳ sự kết hợp nào của tensor xếp hạng thuộc loại f4E2M1FN hoặc loại f6E2M3FN hoặc f6E3M2FN loại hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc float 32-bit hoặc float 64-bit hoặc loại bfloat16 hoặc pred (AKA boolean hoặc 1 -bit số nguyên) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc loại phức tạp với phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc các giá trị số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc tenxơ được lượng tử hóa đồng nhất 2/4/8/16/32-bit được lượng tử hóa đồng nhất trên mỗi trục số nguyên có dấu hoặc thống nhất 2/4/8/16/32-bit được lượng tử hóa trên mỗi trục giá trị số nguyên không dấu hoặc giá trị mã thông báo |
mhlo.async_start
(mhlo::AsyncStartOp)
Hoạt động AsyncStart
Hoạt động này là riêng tư đối với trình biên dịch XLA, vì vậy nó chưa có thông số kỹ thuật.
Một cách không chính thức, hoạt động này khởi động một tính toán không đồng bộ.
Điều này được sử dụng khi có các hàm chứa cả thời gian chờ không đồng bộ (chẳng hạn như DMA) và tính toán trên luồng. Ví dụ: một hàm có thể bao gồm một phép tính, một DMA, một phép tính khác, DMA thứ hai và một phép tính cuối cùng. Điều này sẽ được biểu diễn dưới dạng async_start, theo sau là async_update và async_done. Async_start sẽ thực hiện tính toán đầu tiên trên luồng và sau đó khởi động DMA. async_update sẽ đợi DMA hoàn thành nếu nó chưa hoàn thành, sau đó thực hiện phép tính thứ hai trong hàm và bắt đầu DMA thứ hai. Cuối cùng, async_done sẽ đợi trên DMA cuối cùng này, sau đó chạy phép tính cuối cùng cần chạy trên luồng và trả về kết quả của phép tính cuối cùng đó.
operands
được chuyển trực tiếp đến tính toán called_computation
là hàm sẽ được chạy không đồng bộ execution_thread
là tên của luồng mà nó sẽ được chạy trong đó. Chủ đề chính được gọi là "chính". Tất cả các chủ đề đều có tên.
Điều này trả về tất cả trạng thái cần thiết giữa các hoạt động không đồng bộ. Sau khi gán bộ đệm, các giá trị trả về biểu thị không gian cần thiết để giữ đầu vào, kết quả và bất kỳ bảng ghi nhớ nào cần thiết hoặc được chỉnh sửa bởi async op.
Thuộc tính:
Thuộc tính | Loại MLIR | Sự miêu tả |
---|---|---|
called_computation | ::mlir::FlatSymbolRefAttr | thuộc tính tham chiếu biểu tượng phẳng |
execution_thread | ::mlir::StringAttr | thuộc tính chuỗi |
Toán hạng:
toán hạng | Sự miêu tả |
---|---|
inputs | biến thể của tenxơ xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc Phao 2 bit hoặc 64- bit float hoặc bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1 bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số phức loại có phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc 2/4/8 /16/32-bit đồng nhất được lượng tử hóa trên mỗi trục có dấu số nguyên hoặc 2/4/8/16/32-bit đồng nhất được lượng tử hóa trên mỗi trục có giá trị số nguyên không dấu hoặc mã thông báo hoặc bộ dữ liệu lồng nhau với bất kỳ sự kết hợp nào của tensor xếp hạng thuộc loại f4E2M1FN hoặc loại f6E2M3FN hoặc f6E3M2FN loại hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc float 32-bit hoặc float 64-bit hoặc loại bfloat16 hoặc pred (AKA boolean hoặc 1 -bit số nguyên) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc loại phức tạp với phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc các giá trị số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc tenxơ được lượng tử hóa đồng nhất 2/4/8/16/32-bit được lượng tử hóa đồng nhất trên mỗi trục số nguyên có dấu hoặc thống nhất 2/4/8/16/32-bit được lượng tử hóa trên mỗi trục giá trị số nguyên không dấu hoặc giá trị mã thông báo |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | async_bundle với bất kỳ sự kết hợp nào của tensor xếp hạng thuộc loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc 16- phao bit hoặc phao 32 bit hoặc kiểu float 64-bit hoặc bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1-bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc 2/4/8/16/32/64-bit không dấu số nguyên hoặc loại phức với các phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc 2/ 4/8/16/32-bit đồng nhất được lượng tử hóa trên mỗi trục số nguyên có dấu hoặc 2/4/8/16/32-bit đồng nhất được lượng tử hóa trên mỗi trục giá trị số nguyên không dấu hoặc giá trị mã thông báo |
mhlo.async_update
(mhlo::AsyncUpdateOp)
Hoạt động AsyncUpdate
Hoạt động này là riêng tư đối với trình biên dịch XLA, vì vậy nó chưa có thông số kỹ thuật.
Một cách không chính thức, hoạt động này chặn tính toán không đồng bộ cho đến khi có rào cản đồng bộ hóa. Điều này trả về bundle
sau khi hoạt động trên nó.
Xem tài liệu về AsyncStart để biết thêm thông tin.
Giao diện: InferTypeOpInterface
Toán hạng:
Toán hạng | Sự miêu tả |
---|---|
bundle | async_bundle với bất kỳ sự kết hợp nào của tensor xếp hạng thuộc loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc 16- phao bit hoặc phao 32 bit hoặc kiểu float 64-bit hoặc bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1-bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc 2/4/8/16/32/64-bit không dấu số nguyên hoặc loại phức với các phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc 2/ 4/8/16/32-bit đồng nhất được lượng tử hóa trên mỗi trục số nguyên có dấu hoặc 2/4/8/16/32-bit đồng nhất được lượng tử hóa trên mỗi trục giá trị số nguyên không dấu hoặc giá trị mã thông báo |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | async_bundle với bất kỳ sự kết hợp nào của tensor xếp hạng thuộc loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc 16- phao bit hoặc phao 32 bit hoặc kiểu float 64-bit hoặc bfloat16 hoặc pred (AKA boolean hoặc số nguyên 1-bit) hoặc số nguyên không dấu 2/4/8/16/32/64-bit hoặc 2/4/8/16/32/64-bit không dấu số nguyên hoặc loại phức với các phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc 2/ 4/8/16/32-bit đồng nhất được lượng tử hóa trên mỗi trục số nguyên có dấu hoặc 2/4/8/16/32-bit đồng nhất được lượng tử hóa trên mỗi trục giá trị số nguyên không dấu hoặc giá trị mã thông báo |
mhlo.atan2
(mhlo::Atan2Op)
Hoạt động Atan2
Cú pháp:
operation ::= `mhlo.atan2` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Thực hiện thao tác atan2 theo phần tử trên tensor lhs
và rhs
và tạo ra tensor result
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#atan2
Ví dụ:
%result = mhlo.atan2 %lhs, %rhs : tensor<3xf32>
Đặc điểm: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Các giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Toán hạng:
toán hạng | Sự miêu tả |
---|---|
lhs | tensor xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc float 32-bit hoặc phao 64-bit hoặc loại bfloat16 hoặc loại phức tạp với các phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc các giá trị số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit |
rhs | tensor xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc float 32-bit hoặc phao 64-bit hoặc loại bfloat16 hoặc loại phức tạp với các phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc các giá trị số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | tensor xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc float 32-bit hoặc phao 64-bit hoặc loại bfloat16 hoặc loại phức tạp với các phần tử float 32-bit hoặc float 64-bit hoặc số nguyên có dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit hoặc các giá trị số nguyên không dấu được lượng tử hóa đồng nhất 2/4/8/16/32-bit |
mhlo.batch_norm_grad
(mhlo::BatchNormGradOp)
Hoạt động BatchNormGrad
Tính toán độ dốc của một số đầu vào của BatchNormTrainingOp truyền ngược từ grad_output
và tạo ra các tensor grad_operand
, grad_scale
và grad_offset
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_grad
Ví dụ:
%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>)
Đặc điểm: AlwaysSpeculatableImplTrait
, InferTensorType
Các giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Thuộc tính:
Thuộc tính | Loại MLIR | Sự miêu tả |
---|---|---|
epsilon | ::mlir::FloatAttr | Thuộc tính float 32 bit |
feature_index | ::mlir::IntegerAttr | Thuộc tính số nguyên không dấu 64 bit có giá trị không âm |
Toán hạng:
toán hạng | Sự miêu tả |
---|---|
operand | tensor xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc float 32-bit hoặc phao 64-bit hoặc giá trị loại bfloat16 |
scale | Tenor 1D thuộc loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc phao bit hoặc phao 64 bit hoặc giá trị loại bfloat16 |
mean | Tenor 1D thuộc loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc phao bit hoặc phao 64 bit hoặc giá trị loại bfloat16 |
variance | Tenor 1D thuộc loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc phao bit hoặc phao 64 bit hoặc giá trị loại bfloat16 |
grad_output | tensor xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc float 32-bit hoặc phao 64-bit hoặc giá trị loại bfloat16 |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
grad_operand | tensor xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc float 32-bit hoặc phao 64-bit hoặc giá trị loại bfloat16 |
grad_scale | Tenor 1D thuộc loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc phao bit hoặc phao 64 bit hoặc giá trị loại bfloat16 |
grad_offset | Tenor 1D thuộc loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc phao bit hoặc phao 64 bit hoặc giá trị loại bfloat16 |
mhlo.batch_norm_inference
(mhlo::BatchNormInferenceOp)
Hoạt động BatchNormInference
Chuẩn hóa tenxơ operand
trên tất cả các kích thước ngoại trừ thứ nguyên feature_index
và tạo ra tenxơ result
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_inference
Ví dụ:
%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>
Đặc điểm: AlwaysSpeculatableImplTrait
, InferTensorType
Các giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Thuộc tính:
Thuộc tính | Loại MLIR | Sự miêu tả |
---|---|---|
epsilon | ::mlir::FloatAttr | Thuộc tính float 32 bit |
feature_index | ::mlir::IntegerAttr | Thuộc tính số nguyên không dấu 64 bit có giá trị không âm |
Toán hạng:
toán hạng | Sự miêu tả |
---|---|
operand | tensor xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc float 32-bit hoặc phao 64-bit hoặc giá trị loại bfloat16 |
scale | Tenor 1D thuộc loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc phao bit hoặc phao 64 bit hoặc giá trị loại bfloat16 |
offset | Tenor 1D thuộc loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc phao bit hoặc phao 64 bit hoặc giá trị loại bfloat16 |
mean | Tenor 1D thuộc loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc phao bit hoặc phao 64 bit hoặc giá trị loại bfloat16 |
variance | Tenor 1D thuộc loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc phao bit hoặc phao 64 bit hoặc giá trị loại bfloat16 |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | tensor xếp hạng loại f4E2M1FN hoặc loại f6E2M3FN hoặc loại f6E3M2FN hoặc loại f8E3M4 hoặc loại f8E4M3 hoặc loại f8E4M3FN hoặc loại f8E4M3FNUZ hoặc loại f8E4M3B11FNUZ hoặc loại f8E5M2 hoặc loại f8E5M2FNUZ hoặc loại f8E8M0FNU hoặc float 16-bit hoặc float 32-bit hoặc phao 64 bit hoặc giá trị loại bfloat16 |
mhlo.batch_norm_training
(mhlo::BatchNormTrainingOp)
Hoạt động đào tạo BatchNorm
Tính toán giá trị trung bình và phương sai giữa các kích thước lô và không gian, đồng thời chuẩn hóa tenxơ toán operand
cho từng tính năng trong thứ nguyên feature_index
và tạo ra các tenxơ output
, batch_mean
và batch_var
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_training
Ví dụ:
%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>)
Đặc điểm: AlwaysSpeculatableImplTrait
, InferTensorType
Các giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Thuộc tính:
Thuộc tính | Loại MLIR | Sự miêu tả |
---|---|---|
epsilon | ::mlir::FloatAttr | Thuộc tính float 32 bit |
feature_index | ::mlir::IntegerAttr | Thuộc tính số nguyên không dấu 64 bit có giá trị không âm |
Toán hạng:
toán hạng | Sự miêu tả |
---|---|
operand | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc các giá trị loại bfloat16 |
scale | 1D tenor thuộc loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc f8e4m3 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc các giá trị loại bfloat16 |
offset | 1D tenor thuộc loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc f8e4m3 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc các giá trị loại bfloat16 |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
output | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc các giá trị loại bfloat16 |
batch_mean | 1D tenor thuộc loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc f8e4m3 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc các giá trị loại bfloat16 |
batch_var | 1D tenor thuộc loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc f8e4m3 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc các giá trị loại bfloat16 |
mhlo.bitcast
(MHLO :: Bitcastop)
Hoạt động bitcast
Cú pháp:
operation ::= `mhlo.bitcast` operands attr-dict `:` functional-type(operands, results)
Hoạt động này là riêng tư cho trình biên dịch XLA, vì vậy nó chưa có đặc điểm kỹ thuật.
Về mặt không chính thức, hoạt động này thay đổi hình dạng của đầu vào theo cách sắp xếp vật lý của các yếu tố không thay đổi.
Hoạt động này cần thông tin bố cục để có ý nghĩa về "sự sắp xếp vật lý của các yếu tố" và hỗ trợ bố cục trong MHLO hiện đang được tiến hành.
Ví dụ:
%0 = mhlo.bitcast %arg0 : (tensor<3x4xf32>) -> tensor<3x4x1xf32>
Đặc điểm: AlwaysSpeculatableImplTrait
Giao diện: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Hàng hóa:
Thoại | Sự miêu tả |
---|---|
operand | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
mhlo.bitcast_convert
(mhlo :: bitcastconvertop)
BitcastConvert hoạt động
Cú pháp:
operation ::= `mhlo.bitcast_convert` operands attr-dict `:` functional-type(operands, results)
Thực hiện hoạt động bitcast trên tenxơ operand
và tạo ra một tenxơ result
trong đó các bit của toàn bộ tenxơ operand
được giải thích lại bằng cách sử dụng loại tenxơ result
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#bitcast_convert
Ví dụ:
%result = mhlo.bitcast_convert %operand : (tensor<2xf32>) -> tensor<2x4xi8>
Đặc điểm: AlwaysSpeculatableImplTrait
Giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Hàng hóa:
Thoại | Sự miêu tả |
---|---|
operand | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
mhlo.broadcast
(MHLO :: phát sóng)
Hoạt động phát sóng
Hoạt động này đang trên đường thoát khỏi StableHlo, vì vậy nó không được đưa vào đặc điểm kỹ thuật: https://github.com/openxla/stablehlo/issues/3
Một cách không chính thức, thao tác này làm điều tương tự như phát sóng của XLA: https://www.tensorflow.org/xla/operation_semantics#broadcast
Ví dụ:
%result = mhlo.broadcast %operand, sizes = [1, 2] : (tensor<3xi32>) -> tensor<1x2x3xi32>
Đặc điểm: AlwaysSpeculatableImplTrait
kiểm InferTensorType
SameOperandsAndResultElementType
Giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Thuộc tính:
Thuộc tính | Loại MLIR | Sự miêu tả |
---|---|---|
broadcast_sizes | :: MLIR :: DenseIntelementsattr | Thuộc tính nguyên tố số nguyên không có dấu hiệu 64 bit |
Hàng hóa:
Thoại | Sự miêu tả |
---|---|
operand | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
mhlo.broadcast_in_dim
(mhlo :: phát sóng)
Phát sóng hoạt động
Mở rộng kích thước và/hoặc thứ hạng của một tenxơ đầu vào bằng cách sao chép dữ liệu trong tenxơ operand
và tạo ra một tenxơ result
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#broadcast_in_dim
Ví dụ:
%result = mhlo.broadcast_in_dim %operand, dims = [2, 1] : (tensor<1x3xi32>) -> tensor<2x3x2xi32>
Đặc điểm: HLO_CompatibleOperandsAndResultElementType
AlwaysSpeculatableImplTrait
Giao diện: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Thuộc tính:
Thuộc tính | Loại MLIR | Sự miêu tả |
---|---|---|
broadcast_dimensions | :: MLIR :: DenseIntelementsattr | Thuộc tính nguyên tố số nguyên không có dấu hiệu 64 bit |
Hàng hóa:
Thoại | Sự miêu tả |
---|---|
operand | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | Tenor có hình tĩnh của loại F4E2M1FN hoặc loại F6E2M3FN hoặc loại F6E3M2FN hoặc loại F8E3M4 hoặc loại F8E4M3 hoặc loại F8E4M3 nó nổi hoặc phao 32 bit hoặc 64 bit float hoặc bfloat16 loại hoặc pre (còn gọi là boolean hoặc số nguyên 1 bit) hoặc 2/4/8/16/32/64-bit vô nghĩa với các phần tử nổi 32 bit hoặc 64 bit hoặc 2/4 Số nguyên được định lượng đồng nhất 16/32-bit trên mỗi trục được ký kết hoặc 2/4 |
mhlo.case
(MHLO :: CASEOP)
Hoạt động trường hợp
Tạo đầu ra từ việc thực thi chính xác một function
từ branches
tùy thuộc vào giá trị của index
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#case
Ví dụ:
%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>)
Đặc điểm: RecursiveMemoryEffects
, SingleBlockImplicitTerminator<ReturnOp>
, SingleBlock
Giao diện: InferTypeOpInterface
Hàng hóa:
Thoại | Sự miêu tả |
---|---|
index | tenxor của các giá trị số nguyên vô nghĩa 32 bit |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | variadic của tenxơ xếp hạng loại F4E2M1FN hoặc loại F6E2M3FN hoặc loại F6E3M2FN hoặc loại F8E3M4 hoặc loại F8E4M3 hoặc loại F8E4M3 Phao nổi 16 bit hoặc phao 32 bit hoặc 64- BIT FLOAT hoặc BFLOAT16 Loại hoặc PRES (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer vô nghĩa hoặc 2/4/8/16/32/64 Loại với các phần tử nổi 32 bit hoặc 64 bit hoặc 2/4 /4/8/16/32-bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4/8/16/32-bit đồng nhất được định lượng trên mỗi trục Các giá trị số nguyên không dấu hoặc mã thông báo |
mhlo.cbrt
(MHLO :: cbrtop)
Hoạt động CBRT
Cú pháp:
operation ::= `mhlo.cbrt` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Thực hiện hoạt động rễ hình khối yếu tố trên tenxơ operand
và tạo ra một tenxơ result
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cbrt
Ví dụ:
%result = mhlo.cbrt %operand : tensor<4xf32>
Đặc điểm: AlwaysSpeculatableImplTrait
CompatibleOperandsAndResultType
thể SameOperandsAndResultShape
soát Elementwise
Giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Hàng hóa:
Thoại | Sự miêu tả |
---|---|
operand | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc loại phức với phao 32 bit hoặc các phần tử phao 64 bit hoặc 2/4/8/16/32-bit được định lượng đồng nhất được ký kết |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc loại phức với phao 32 bit hoặc các phần tử phao 64 bit hoặc 2/4/8/16/32-bit được định lượng đồng nhất được ký kết |
mhlo.ceil
(MHLO :: LEOILOP)
Hoạt động trần
Cú pháp:
operation ::= `mhlo.ceil` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Thực hiện trần phần tử khôn ngoan của tenxơ toán operand
và tạo ra một tenxơ result
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#ceil
Ví dụ:
%result = mhlo.ceil %operand : tensor<5xf32>
Đặc điểm: AlwaysSpeculatableImplTrait
CompatibleOperandsAndResultType
thể SameOperandsAndResultShape
soát Elementwise
Giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Hàng hóa:
Thoại | Sự miêu tả |
---|---|
operand | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc 2/4/8/16/32-bit được số nguyên được định lượng được ký kết hoặc 2/4/8/16/32-bit đồng nhất |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc 2/4/8/16/32-bit được số nguyên được định lượng được ký kết hoặc 2/4/8/16/32-bit đồng nhất |
mhlo.cholesky
(MHLO :: Choleskyop)
Hoạt động cholesky
Tính toán sự phân hủy cholesky của một loạt ma trận.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cholesky
Ví dụ:
%result = mhlo.cholesky %a, lower = true : tensor<3x3xf32>
Đặc điểm: AlwaysSpeculatableImplTrait
kiểm InferTensorType
SameOperandsAndResultElementType
Giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Thuộc tính:
Thuộc tính | Loại MLIR | Sự miêu tả |
---|---|---|
lower | :: MLIR :: Boolattr | Thuộc tính BOOL |
Hàng hóa:
Thoại | Sự miêu tả |
---|---|
a | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc loại phức tạp với giá trị phao 32 bit hoặc 64 bit |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc loại phức tạp với giá trị phao 32 bit hoặc 64 bit |
mhlo.clamp
(mhlo :: kẹp)
Kẹp hoạt động
Cú pháp:
operation ::= `mhlo.clamp` $min `,` $operand `,` $max attr-dict
`:` custom<SameOperandsAndResultType>(type($min), type($operand), type($max), type($result))
Kẹp mọi yếu tố của tenxơ toán operand
giữa giá trị tối thiểu và tối đa và tạo ra một tenxơ result
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#clamp
Ví dụ:
%result = mhlo.clamp %min, %operand, %max : tensor<3xi32>
Đặc điểm: AlwaysSpeculatableImplTrait
InferTensorType
HLO_BroadcastingElementwise
SameOperandsAndResultElementType
Giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Hàng hóa:
Thoại | Sự miêu tả |
---|---|
min | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
operand | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
max | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
mhlo.collective_broadcast
(MHLO :: CollectiveBroadcastop)
Hoạt động tập thể
Trong mỗi nhóm quy trình trong lưới quy trình, hãy gửi giá trị của tenxơ toán operand
từ quy trình nguồn đến các quy trình đích và tạo ra một tenxơ result
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#collective_broadcast
Ví dụ:
%result = "mhlo.collective_broadcast"(%operand) {
replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
channel_handle = #mhlo.channel_handle<handle = 0, type = 0>
} : (tensor<1x2xi64>) -> tensor<1x2xi64>
Đặc điểm: CompatibleOperandsAndResultType
Giao diện: InferShapedTypeOpInterface
, InferTypeOpInterface
Thuộc tính:
Thuộc tính | Loại MLIR | Sự miêu tả |
---|---|---|
replica_groups | :: MLIR :: DenseIntelementsattr | Thuộc tính nguyên tố số nguyên không có dấu hiệu 64 bit |
channel_handle | :: MLIR :: MHLO :: ChannelHandleAttr | Hai số nguyên 64 bit 'và' loại ' |
Hàng hóa:
Thoại | Sự miêu tả |
---|---|
operand | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
mhlo.collective_permute
(MHLO :: CollectivePermuteop)
Hoạt động tập thể
Trong mỗi nhóm quy trình trong lưới quy trình, gửi giá trị của tenxơ toán operand
từ quy trình nguồn đến quy trình đích và tạo ra một tenxơ result
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#collective_permute
Ví dụ:
%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>
Đặc điểm: AlwaysSpeculatableImplTrait
CompatibleOperandsAndResultType
Giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Thuộc tính:
Thuộc tính | Loại MLIR | Sự miêu tả |
---|---|---|
source_target_pairs | :: MLIR :: DenseIntelementsattr | Thuộc tính nguyên tố số nguyên không có dấu hiệu 64 bit |
channel_handle | :: MLIR :: MHLO :: ChannelHandleAttr | Hai số nguyên 64 bit 'và' loại ' |
Hàng hóa:
Thoại | Sự miêu tả |
---|---|
operand | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
mhlo.compare
(mhlo :: so sánh)
So sánh hoạt động
Cú pháp:
operation ::= `mhlo.compare` $comparison_direction `,` $lhs `,` $rhs (`,` $compare_type^)?
attr-dict `:` functional-type(operands, results)
Thực hiện so sánh phần tử của lhs
và rhs
Tensors theo comparison_direction
và compare_type
, và tạo ra một tenxơ result
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#compare
Ví dụ:
%result = mhlo.compare LT, %lhs, %rhs, FLOAT : (tensor<2xf32>, tensor<2xf32>) -> tensor<2xi1>
Đặc điểm: AlwaysSpeculatableImplTrait
Elementwise
SameOperandsElementType
InferTensorType
SameOperandsAndResultShape
Giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Thuộc tính:
Thuộc tính | Loại MLIR | Sự miêu tả |
---|---|---|
comparison_direction | :: MLIR :: MHLO :: So sánh | Mà hoạt động so sánh để thực hiện. |
compare_type | :: mlir :: mhlo :: so sánhtypeattr | Loại so sánh nào để sử dụng. |
Hàng hóa:
Thoại | Sự miêu tả |
---|---|
lhs | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
rhs | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | Các giá trị tenor được xếp hạng của PRES (còn gọi là số nguyên boolean hoặc 1 bit) |
mhlo.complex
(MHLO :: ComplexOp)
Hoạt động phức tạp
Cú pháp:
operation ::= `mhlo.complex` operands attr-dict
`:` custom<ComplexOpType>(type($lhs), type($rhs), type($result))
Thực hiện chuyển đổi phần tử khôn ngoan thành một giá trị phức tạp từ một cặp giá trị thực và tưởng tượng, lhs
và rhs
, và tạo ra một tenxơ result
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#complex
Ví dụ:
%result = mhlo.complex %lhs, %rhs : tensor<2xcomplex<f32>>
Đặc điểm: AlwaysSpeculatableImplTrait
, Elementwise
, SameOperandsAndResultShape
SameOperandsElementType
Giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Hàng hóa:
Thoại | Sự miêu tả |
---|---|
lhs | Xếp hạng tenxor của giá trị phao 32 bit hoặc giá trị phao 64 bit |
rhs | Xếp hạng tenxor có giá trị phao 32 bit hoặc 64 bit |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | Tensor xếp hạng thuộc loại phức tạp với giá trị phao 32 bit hoặc các giá trị phần tử nổi 64 bit |
mhlo.composite
(mhlo :: compositeop)
Hoạt động tổng hợp
Cú pháp:
operation ::= `mhlo.composite` $name $inputs attr-dict `:` functional-type(operands, results)
Đóng gói một hoạt động được tạo thành (bao gồm) các hoạt động ổn định khác, thực hiện inputs
và composite_attributes
và tạo ra results
. Các ngữ nghĩa của OP được thực hiện bởi thuộc tính decomposition
. OP composite
có thể được thay thế bằng sự phân hủy của nó mà không thay đổi ngữ nghĩa chương trình. Trong trường hợp việc phân hủy nội tuyến không cung cấp cùng một ngữ nghĩa op, thích sử dụng custom_call
.
Trường version
(mặc định là 0
) được sử dụng để biểu thị khi ngữ nghĩa của tổng hợp thay đổi.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#composite
Ví dụ:
%results = mhlo.composite "my.op" %arg0, %arg1 {
decomposition = @my_op,
composite_attributes = { my_attribute = "my_value" },
version = 1 : i32
} : (tensor<f32>, tensor<f32>) -> tensor<f32>
Giao diện: SymbolUserOpInterface
Thuộc tính:
Thuộc tính | Loại MLIR | Sự miêu tả |
---|---|---|
name | :: MLIR :: StringAttr | thuộc tính chuỗi |
composite_attributes | :: MLIR :: Từ điển | Từ điển của các giá trị thuộc tính được đặt tên |
decomposition | :: MLIR :: Flatsymbolrefattr | thuộc tính tham chiếu biểu tượng phẳng |
version | :: MLIR :: Integerattr | Thuộc tính số nguyên vô nghĩa 32 bit |
Hàng hóa:
Thoại | Sự miêu tả |
---|---|
inputs | variadic của tenxơ xếp hạng loại F4E2M1FN hoặc loại F6E2M3FN hoặc loại F6E3M2FN hoặc loại F8E3M4 hoặc loại F8E4M3 hoặc loại F8E4M3 Phao nổi 16 bit hoặc phao 32 bit hoặc 64- BIT FLOAT hoặc BFLOAT16 Loại hoặc PRES (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer vô nghĩa hoặc 2/4/8/16/32/64 Loại với các phần tử nổi 32 bit hoặc 64 bit hoặc 2/4 /16/32-bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4/4 Loại hoặc loại F8E3M4 hoặc loại F8E4M3 hoặc loại F8E4M3FN hoặc loại F8E4M3FNUZ hoặc loại F8E4M3B11FNUZ hoặc loại F8E5M2 -bit Integer) hoặc 2/4/8/16/32/64-bit Integer vô nghĩa hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với phao nổi 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/16/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng nhất được định lượng số nguyên không dấu hoặc được xếp hạng số nguyên của 2/4/6 trên mỗi trục được ký kết hoặc 2/4/8/16/32-bit đồng nhất được định lượng trên mỗi trục giá trị số nguyên không dấu hoặc giá trị mã thông báo |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | variadic của tenxơ xếp hạng loại F4E2M1FN hoặc loại F6E2M3FN hoặc loại F6E3M2FN hoặc loại F8E3M4 hoặc loại F8E4M3 hoặc loại F8E4M3 Phao nổi 16 bit hoặc phao 32 bit hoặc 64- BIT FLOAT hoặc BFLOAT16 Loại hoặc PRES (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer vô nghĩa hoặc 2/4/8/16/32/64 Loại với các phần tử nổi 32 bit hoặc 64 bit hoặc 2/4 /16/32-bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4/4 Loại hoặc loại F8E3M4 hoặc loại F8E4M3 hoặc loại F8E4M3FN hoặc loại F8E4M3FNUZ hoặc loại F8E4M3B11FNUZ hoặc loại F8E5M2 -bit Integer) hoặc 2/4/8/16/32/64-bit Integer vô nghĩa hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với phao nổi 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/16/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng nhất được định lượng số nguyên không dấu hoặc được xếp hạng số nguyên của 2/4/6 trên mỗi trục được ký kết hoặc 2/4/8/16/32-bit đồng nhất được định lượng trên mỗi trục giá trị số nguyên không dấu hoặc giá trị mã thông báo |
mhlo.concatenate
(mhlo :: concatenateop)
Hoạt động liên kết
Concatenates một số lượng các tenxơ trong inputs
dọc theo kích thước dimension
theo cùng thứ tự với các đối số đã cho và tạo ra một tenxơ result
.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#concatenate
Ví dụ:
%result = mhlo.concatenate %input0, %input1, dim = 0 : (tensor<3x2xi64>, tensor<1x2xi64>) -> tensor<4x2xi64>
Đặc điểm: AlwaysSpeculatableImplTrait
SameOperandsAndResultElementType
Giao diện: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Thuộc tính:
Thuộc tính | Loại MLIR | Sự miêu tả |
---|---|---|
dimension | :: MLIR :: Integerattr | Thuộc tính số nguyên vô nghĩa 64 bit có giá trị không âm tính |
Hàng hóa:
Thoại | Sự miêu tả |
---|---|
val | variadic của tenxơ xếp hạng loại F4E2M1FN hoặc loại F6E2M3FN hoặc loại F6E3M2FN hoặc loại F8E3M4 hoặc loại F8E4M3 hoặc loại F8E4M3 Phao nổi 16 bit hoặc phao 32 bit hoặc 64- BIT FLOAT hoặc BFLOAT16 Loại hoặc PRES (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer vô nghĩa hoặc 2/4/8/16/32/64 Loại với các phần tử nổi 32 bit hoặc 64 bit hoặc 2/4 /16/32-bit đồng nhất được lượng tử hóa trên mỗi trục được ký kết hoặc 2/4 |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | tenxor được xếp hạng của loại f4e2m1fn hoặc loại f6e2m3fn hoặc loại f6e3m2fn hoặc loại f8e3m4 hoặc phao nổi 32 bit hoặc nổi 64 bit hoặc loại BFLOAT16 hoặc PRD (còn gọi là số nguyên Boolean hoặc 1 bit) hoặc 2/4/8/16/32/64-bit Integer hoặc 2/4/8/16/32/64-bit không dấu hoặc loại phức tạp với loại Phao 32 bit hoặc các phần tử nổi 64 bit hoặc 2/4/8/12/32-bit đồng nhất được định lượng số nguyên được ký kết hoặc 2/4/8/16/32-bit đồng đều số nguyên không dấu hoặc 2/4/8/16 /32 bit đồng nhất được định lượng trên mỗi trục được ký kết hoặc 2/4 |
mhlo.constant
(mhlo :: hằng số)
Hoạt động liên tục
Tạo ra một tenxơ output
từ một value
không đổi.
Xem: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#constant
Ví dụ:
%output = mhlo.constant dense<[[0.0, 1.0], [2.0, 3.0]]> : tensor<2x2xf32>
Đặc điểm: AlwaysSpeculatableImplTrait
, ConstantLike
Giao diện: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Hiệu ứng: MemoryEffects::Effect{}
Thuộc tính:
Thuộc tính | Loại MLIR | Sự miêu tả |
---|---|---|
value | :: MLIR :: Elementsattr | Thuộc tính vectơ/tenxơ không đổi |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
output | statically shaped tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.convert
(mhlo::ConvertOp)
Convert operation
Cú pháp:
operation ::= `mhlo.convert` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs an element-wise conversion from one element type to another on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#convert
Ví dụ:
%result = mhlo.convert %operand : (tensor<3xi32>) -> tensor<3xcomplex<f32>>
Traits: AlwaysSpeculatableImplTrait
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.convolution
(mhlo::ConvolutionOp)
Convolution operation
Cú pháp:
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)
Computes dot products between windows of lhs
and slices of rhs
and produces result
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#convolution
Ví dụ:
%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>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
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 whose value is positive |
batch_group_count | ::mlir::IntegerAttr | 64-bit signless integer attribute whose value is positive |
precision_config | ::mlir::ArrayAttr | Precision Config attribute |
Operands:
Operand | Sự miêu tả |
---|---|
lhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.copy
(mhlo::CopyOp)
Copy operation
Cú pháp:
operation ::= `mhlo.copy` operands attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
This operation is private to the XLA compiler, so it is does not yet have a specification.
Informally, this operation a copy of operand
. Depending on the metadata attached to the operation, it can behave quite differently from a no-op.
Ví dụ:
%0 = mhlo.copy %arg0 : tensor<f32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
cross_program_prefetch_index | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token or nested tuple with any combination of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token or nested tuple with any combination of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token values |
mhlo.cosine
(mhlo::CosineOp)
Cosine operation
Cú pháp:
operation ::= `mhlo.cosine` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise cosine operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cosine
Ví dụ:
%result = mhlo.cosine %operand : tensor<2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.count_leading_zeros
(mhlo::ClzOp)
Clz operation
Cú pháp:
operation ::= `mhlo.count_leading_zeros` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise count of the number of leading zero bits in the operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#count_leading_zeros
Ví dụ:
%result = mhlo.count_leading_zeros %operand : tensor<2x2xi8>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
mhlo.create_token
(mhlo::CreateTokenOp)
CreateToken operation
Cú pháp:
operation ::= `mhlo.create_token` attr-dict `:` type(results)
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 AfterAllOp with 0 inputs: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#after_all
Ví dụ:
%output = mhlo.create_token : !mhlo.token
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Kết quả:
Kết quả | Sự miêu tả |
---|---|
output | mã thông báo |
mhlo.cross-replica-sum
(mhlo::CrossReplicaSumOp)
CrossReplicaSum 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 AllReduceOp with channel_id = 0
, use_global_device_ids = false
and computation
implementing addition: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_reduce
Ví dụ:
%result = "mhlo.cross-replica-sum"(%operand) {
replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>
} : (tensor<4xf32>) -> tensor<4xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
replica_groups | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.custom_call
(mhlo::CustomCallOp)
CustomCall operation
Cú pháp:
operation ::= `mhlo.custom_call` custom<CustomCallTarget>($call_target_name) `(` $inputs `)`
attr-dict `:` functional-type(operands, results)
Encapsulates an implementation-defined operation call_target_name
that takes inputs
and called_computations
and produces results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#custom_call
Ví dụ:
%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
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
call_target_name | ::mlir::StringAttr | string attribute |
has_side_effect | ::mlir::BoolAttr | bool attribute |
backend_config | ::mlir::Attribute | string attribute or dictionary of named attribute values |
api_version | ::mlir::mhlo::CustomCallApiVersionAttr | Custom call API version |
called_computations | ::mlir::ArrayAttr | flat symbol ref array attribute |
custom_call_schedule | ::mlir::mhlo::CustomCallScheduleAttr | Specifies the desired schedule for the custom-call. |
operand_layouts | ::mlir::ArrayAttr | Array of layout (1D tensor of index type) attributes |
result_layouts | ::mlir::ArrayAttr | Array of layout (1D tensor of index type) attributes |
output_operand_aliases | ::mlir::ArrayAttr | Aliasing attribute for outputs and operands of CustomCall |
Operands:
Operand | Sự miêu tả |
---|---|
inputs | variadic of tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token or nested tuple with any combination of tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | variadic of tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token or nested tuple with any combination of tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token values |
mhlo.divide
(mhlo::DivOp)
Div operation
Cú pháp:
operation ::= `mhlo.divide` $lhs `,` $rhs attr-dict
`:` custom<SameOperandsAndResultType>(type($lhs), type($rhs), type($result))
Performs element-wise division of dividend lhs
and divisor rhs
tensors and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#divide
Ví dụ:
%result = mhlo.divide %lhs, %rhs : tensor<4xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
lhs | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.domain
(mhlo::DomainOp)
Domain operation
This operation is private to the XLA compiler, so it is does not yet have a specification.
Informally, these operations are used to group instructions with the same DomainMetadata property. ShardingMetadata is the main use case today to group instructions on the same device. Domain instructions provide two major benefits:
- Prevent unintentionally optimizing instructions across domains.
- Automatically assign the metadata of the instructions created in the domain. Without domain instructions, each HLO optimization pass would have to check and propagate the metadata, which would be easy to miss and also adds complexity to the compiler. Since domain instructions connect two different domains, each domain instruction is associated with two DomainMetadata -- one on the operand side and one on the user side of the domain.
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
kind | ::mlir::mhlo::DomainKindAttr | Kind of domain metatdata attached to an HLO domain. |
entry_metadata | ::mlir::StringAttr | string attribute |
exit_metadata | ::mlir::StringAttr | string attribute |
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
mhlo.dot
(mhlo::DotOp)
Dot operation
This operation is on its way out of StableHLO, so it is not included in the specification: https://github.com/openxla/stablehlo/issues/3
Informally, this operation does the same thing as XLA's Dot: https://www.tensorflow.org/xla/operation_semantics#dot
Ví dụ:
%0 = mhlo.dot %arg0, %arg1 : (tensor<1x2xi32>, tensor<2x1xi32>) -> tensor<1x1xi32>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
precision_config | ::mlir::ArrayAttr | Precision Config attribute |
Operands:
Operand | Sự miêu tả |
---|---|
lhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dot_general
(mhlo::DotGeneralOp)
DotGeneral operation
Computes dot products between slices of lhs
and slices of rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dot_general
Ví dụ:
%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{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
dot_dimension_numbers | ::mlir::mhlo::DotDimensionNumbersAttr | Attribute that models the dimension information for dot. |
precision_config | ::mlir::ArrayAttr | Precision Config attribute |
algorithm | ::mlir::mhlo::DotAlgorithmAttr | Attribute that models the algorithm constraints to use for computing dot. |
Operands:
Operand | Sự miêu tả |
---|---|
lhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dynamic_broadcast_in_dim
(mhlo::DynamicBroadcastInDimOp)
DynamicBroadcastInDim operation
This operation is functionally identical to broadcast_in_dim op, but the result shape is specified dynamically via output_dimensions
.
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.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_broadcast_in_dim
Ví dụ:
%operand = mhlo.constant dense<[[1, 2, 3]]> : tensor<1x3xi64>
%output_dimensions = mhlo.constant dense<[2, 3, 2]> : tensor<3xi64>
%result = "mhlo.dynamic_broadcast_in_dim"(%operand, %output_dimensions) {
broadcast_dimensions = array<i64: 2, 1>,
known_expanding_dimensions = array<i64: 0>,
known_nonexpanding_dimensions = array<i64: 1>
} : (tensor<1x3xi64>, tensor<3xi64>) -> tensor<2x3x2xi64>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
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 | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
output_dimensions | 1D tensor of index or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dynamic_conv
(mhlo::DynamicConvOp)
DynamicConv operation
This operation is a work in progress, so it is not yet included in the specification: https://github.com/openxla/stablehlo/issues/8
Informally, this operation does the same thing as ConvolutionOp except that padding
is specified dynamically via d_padding
: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#convolution
Ví dụ:
%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{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
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 whose value is positive |
batch_group_count | ::mlir::IntegerAttr | 64-bit signless integer attribute whose value is positive |
precision_config | ::mlir::ArrayAttr | Precision Config attribute |
Operands:
Operand | Sự miêu tả |
---|---|
lhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
d_padding | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dynamic_gather
(mhlo::DynamicGatherOp)
DynamicGather operation
This operation is a work in progress, so it is not yet included in the specification: https://github.com/openxla/stablehlo/issues/8
Informally, this operation does the same thing as GatherOp except that slice_sizes
are specified dynamically: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#gather
Ví dụ:
%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{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
dimension_numbers | ::mlir::mhlo::GatherDimensionNumbersAttr | Attribute that models the dimension information for gather |
indices_are_sorted | ::mlir::BoolAttr | bool attribute |
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
start_indices | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
slice_sizes | statically shaped 1-dimensional integer tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dynamic_iota
(mhlo::DynamicIotaOp)
DynamicIota operation
This operation is functionally identical to iota op, but the result shape is specified dynamically via output_shape
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_iota
Ví dụ:
%0 = mhlo.dynamic_iota %arg0, dim = 0 : (tensor<1xindex>) -> tensor<4xi32>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
iota_dimension | ::mlir::IntegerAttr | 64-bit signless integer attribute whose value is non-negative |
Operands:
Operand | Sự miêu tả |
---|---|
output_shape | 1D tensor of index or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dynamic_pad
(mhlo::DynamicPadOp)
DynamicPad operation
Cú pháp:
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 | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
padding_value | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
edge_padding_low | 1D tensor of index or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
edge_padding_high | 1D tensor of index or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
interior_padding | 1D tensor of index or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dynamic_reshape
(mhlo::DynamicReshapeOp)
DynamicReshape operation
Cú pháp:
operation ::= `mhlo.dynamic_reshape` operands attr-dict `:` functional-type(operands, results)
This operation is functionally identical to reshape op, but the result shape is specified dynamically via output_shape
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_reshape
Ví dụ:
%output_shape = mhlo.constant dense<[3, 2]> : tensor<2xi64>
%result = mhlo.dynamic_reshape %operand, %output_shape : (tensor<2x3xi64>, tensor<2xi64>) -> tensor<3x2xi64>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
output_shape | 1D tensor of index or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dynamic_slice
(mhlo::DynamicSliceOp)
DynamicSlice operation
Extracts a slice from the operand
using dynamically-computed starting indices and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_slice
Ví dụ:
%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{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
slice_sizes | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
start_indices | variadic of 0D tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.dynamic_update_slice
(mhlo::DynamicUpdateSliceOp)
DynamicUpdateSlice operation
Cú pháp:
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
Ví dụ:
%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 | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
update | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
start_indices | variadic of 0D tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.einsum
(mhlo::EinsumOp)
Einsum operation
This operation is on its way out of StableHLO, so it is not included in the specification: https://github.com/openxla/stablehlo/issues/3
Informally, this operation does the same thing as TF's einsum: https://www.tensorflow.org/api_docs/python/tf/einsum
Ví dụ:
%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{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
einsum_config | ::mlir::StringAttr | string attribute |
Operands:
Operand | Sự miêu tả |
---|---|
lhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.erf
(mhlo::ErfOp)
Erf operation
Cú pháp:
operation ::= `mhlo.erf` $operand attr-dict
`:` custom<SameOperandsAndResultType>(type($operand), type($result))
Performs element-wise erf operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#erf
Ví dụ:
%result = mhlo.erf %operand : tensor<2x2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
mhlo.exponential
(mhlo::ExpOp)
Exp operation
Cú pháp:
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
Ví dụ:
%result = mhlo.exponential %operand : tensor<2x2xf64>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.exponential_minus_one
(mhlo::Expm1Op)
Expm1 operation
Cú pháp:
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
Ví dụ:
%result = mhlo.exponential_minus_one %operand : tensor<2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/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
Ví dụ:
%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{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
fft_type | ::mlir::mhlo::FftTypeAttr | XLA fast fourier transform type. |
fft_length | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.floor
(mhlo::FloorOp)
Floor operation
Cú pháp:
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
Ví dụ:
%result = mhlo.floor %operand : tensor<2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer 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.
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
fusion_kind | ::mlir::mhlo::FusionKindAttr | fusion kind |
output_operand_aliases | ::mlir::ArrayAttr | Aliasing attribute for outputs and operands of Fusion |
Operands:
Operand | Sự miêu tả |
---|---|
inputs | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
results | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or nested tuple with any combination of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token values |
mhlo.gather
(mhlo::GatherOp)
Gather operation
Gathers slices from operand
tensor from offsets specified in start_indices
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#gather
Ví dụ:
%result = "mhlo.gather"(%operand, %start_indices) {
dimension_numbers = #stablehlo.gather<
offset_dims = [3, 4],
collapsed_slice_dims = [1],
operand_batching_dims = [0],
start_indices_batching_dims = [1],
start_index_map = [2, 1],
index_vector_dim = 3>,
slice_sizes = dense<[0, 2, 2]> : tensor<3xi64>,
indices_are_sorted = false
} : (tensor<2x3x4x2xi64>, tensor<2x2x3x2xi64>) -> tensor<2x2x3x2x2xi64>
Traits: AlwaysSpeculatableImplTrait
, InferTensorType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
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 | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
start_indices | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.get_dimension_size
(mhlo::GetDimensionSizeOp)
GetDimensionSize operation
Produces the size of the given dimension
of the operand
.
See https://github.com/openxla/stablehlo/blob/main/docs/spec.md#get_dimension_size
Ví dụ:
%result = mhlo.get_dimension_size %operand, dim = 1 : (tensor<2x3xf32>) -> tensor<i32>
Traits: AlwaysSpeculatableImplTrait
, InferTensorType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
dimension | ::mlir::IntegerAttr | 64-bit signless integer attribute whose value is non-negative |
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | tensor of 32-bit signless integer values |
mhlo.get_tuple_element
(mhlo::GetTupleElementOp)
GetTupleElement operation
Cú pháp:
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
Ví dụ:
%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{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
index | ::mlir::IntegerAttr | 32-bit signless integer attribute whose value is non-negative |
Operands:
Operand | Sự miêu tả |
---|---|
operand | nested tuple with any combination of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token or nested tuple with any combination of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token values |
mhlo.if
(mhlo::IfOp)
If operation
Produces the output from executing exactly one branch from true_branch
or false_branch
depending on the value of pred
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#if
Example: %result = "mhlo.if"(%pred) ({ "mhlo.return"(%result_true_branch) : (tensor
Traits: RecursiveMemoryEffects
, SingleBlockImplicitTerminator<ReturnOp>
, SingleBlock
Interfaces: InferTypeOpInterface
Operands:
Operand | Sự miêu tả |
---|---|
pred | ranked tensor of pred (AKA boolean or 1-bit integer) values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
mhlo.imag
(mhlo::ImagOp)
Imag operation
Cú pháp:
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
Ví dụ:
%result = mhlo.imag %operand : (tensor<2xcomplex<f32>>) -> tensor<2xf32>
Traits: AlwaysSpeculatableImplTrait
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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
Ví dụ:
%results:2 = "mhlo.infeed"(%token) {
infeed_config = ""
} : (!mhlo.token) -> (tensor<3x3x3xi32>, !mhlo.token)
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
infeed_config | ::mlir::StringAttr | string attribute |
layout | ::mlir::ArrayAttr | array attribute |
Operands:
Operand | Sự miêu tả |
---|---|
token | mã thông báo |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | variadic of statically shaped tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or statically shaped tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
mhlo.iota
(mhlo::IotaOp)
Iota operation
Fills an output
tensor with values in increasing order starting from zero along the iota_dimension
dimension.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#iota
Ví dụ:
%output = mhlo.iota dim = 0 : tensor<4x5xi32>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
iota_dimension | ::mlir::IntegerAttr | 64-bit signless integer attribute whose value is non-negative |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
output | statically shaped tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 giá trị |
mhlo.is_finite
(mhlo::IsFiniteOp)
IsFinite operation
Cú pháp:
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
Ví dụ:
%y = mhlo.is_finite %x : (tensor<7xf32>) -> tensor<7xi1>
Traits: AlwaysSpeculatableImplTrait
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
x | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
y | ranked tensor of pred (AKA boolean or 1-bit integer) values |
mhlo.log
(mhlo::LogOp)
Log operation
Cú pháp:
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
Ví dụ:
%result = mhlo.log %operand : tensor<2x2xf64>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.log_plus_one
(mhlo::Log1pOp)
Log1p operation
Cú pháp:
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
Ví dụ:
%result = mhlo.log_plus_one %operand : tensor<6xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.logistic
(mhlo::LogisticOp)
Logistic operation
Cú pháp:
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
Ví dụ:
%result = mhlo.logistic %operand : tensor<2x2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/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
Ví dụ:
%result = "mhlo.map"(%input0, %input1) ({
^bb0(%arg0: tensor<i32>, %arg1: tensor<i32>):
%0 = mhlo.multiply %arg0, %arg1 : tensor<i32>
mhlo.return %0 : tensor<i32>
}) {
dimensions = dense<[0, 1]> : tensor<2xi64>
} : (tensor<2x2xi32>, tensor<2x2xi32>) -> tensor<2x2xi32>
Traits: InferTensorType
, RecursiveMemoryEffects
, SameOperandsAndResultShape
, SingleBlockImplicitTerminator<ReturnOp>
, SingleBlock
Interfaces: InferShapedTypeOpInterface
, InferTypeOpInterface
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
dimensions | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operands:
Operand | Sự miêu tả |
---|---|
inputs | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.maximum
(mhlo::MaxOp)
Max operation
Cú pháp:
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
Ví dụ:
%result = mhlo.maximum %lhs, %rhs : tensor<4xf32>
Traits: AlwaysSpeculatableImplTrait
, Commutative
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
lhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.minimum
(mhlo::MinOp)
Min operation
Cú pháp:
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
Ví dụ:
%result = mhlo.minimum %lhs, %rhs : tensor<4xf32>
Traits: AlwaysSpeculatableImplTrait
, Commutative
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
lhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.minimum_broadcast_shapes
(mhlo::MinimumBroadcastShapesOp)
Minimizes the rank of two or more shapes to be broadcasted
Cú pháp:
operation ::= `mhlo.minimum_broadcast_shapes` $shapes attr-dict `:` type($shapes) `->` type($results)
Given two or more 1D tensors representing shapes, returns one 1D tensor for each operand, where operand i
corresponds to output i
.
The returned tensors have the property that they specify a shape which is a reshape of the corresponding input shape, and the broadcasted output shape (using shape::BroadcastOp) of the returned shapes is a reshape of the broadcasted output shape of the input shapes. Among all possibilities with this property, the one is chosen which minimizes the rank of each returned shape.
The general idea of this op is that it can be used for ops which have a broadcasting semantic to operate on shapes with a possibly smaller rank while preserving equivalence of the computed values. After computing the result of the op using reshaped operands, the result can be reshaped to the result that would have been originally computed.
Here is an example with two input shapes:
mhlo.minimum_broadcast_shapes [1, 2, 3, 1, 2, 1],
[1, 1, 1, 2, 3] -> [6, 2, 1], [2, 3]
The broadcasted output shape of the operands is [1, 2, 3, 1, 2, 3], the broadcasted output shape of the outputs is [6, 2, 3]. These two shapes are reshapes of each other, and also each output is a reshape of the corresponding input.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
shapes | variadic of 1D tensor of index values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
results | variadic of 1D tensor of index values |
mhlo.multiply
(mhlo::MulOp)
Mul operation
Cú pháp:
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
Ví dụ:
%result = mhlo.multiply %lhs, %rhs : tensor<2xi32>
Traits: AlwaysSpeculatableImplTrait
, Commutative
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
lhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.negate
(mhlo::NegOp)
Neg operation
Cú pháp:
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
Ví dụ:
%result = mhlo.negate %operand : tensor<2x3xi32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.not
(mhlo::NotOp)
Not operation
Cú pháp:
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
Ví dụ:
%result = mhlo.not %operand : tensor<5x3x1xi1>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
mhlo.optimization_barrier
(mhlo::OptimizationBarrierOp)
OptimizationBarrier operation
Cú pháp:
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
Ví dụ:
%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 | Sự miêu tả |
---|---|
operand | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
mhlo.or
(mhlo::OrOp)
Or operation
Cú pháp:
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
Ví dụ:
%result = mhlo.or %lhs, %rhs : tensor<2xi1>
Traits: AlwaysSpeculatableImplTrait
, Commutative
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
lhs | ranked tensor of pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
rhs | ranked tensor of pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.outfeed
(mhlo::OutfeedOp)
Outfeed operation
Writes inputs
to the outfeed and produces a result
token.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#outfeed
Ví dụ:
%result = "mhlo.outfeed"(%input0, %token) {
outfeed_config = ""
} : (tensor<3x3x3xi32>, !mhlo.token) -> !mhlo.token
Interfaces: InferTypeOpInterface
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
outfeed_config | ::mlir::StringAttr | string attribute |
Operands:
Operand | Sự miêu tả |
---|---|
inputs | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
token | mã thông báo |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | mã thông báo |
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
Ví dụ:
%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{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
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 | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
padding_value | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.partition_id
(mhlo::PartitionIdOp)
PartitionId operation
Cú pháp:
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
Ví dụ:
%result = mhlo.partition_id : tensor<ui32>
Interfaces: InferTypeOpInterface
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of 32-bit unsigned integer values |
mhlo.popcnt
(mhlo::PopulationCountOp)
PopulationCount operation
Cú pháp:
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
Ví dụ:
%result = mhlo.popcnt %operand : tensor<4xi8>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
mhlo.power
(mhlo::PowOp)
Pow operation
Cú pháp:
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
Ví dụ:
%result = mhlo.power %lhs, %rhs : tensor<6xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
lhs | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.real
(mhlo::RealOp)
Real operation
Cú pháp:
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
Ví dụ:
%result = mhlo.real %operand : (tensor<2xcomplex<f32>>) -> tensor<2xf32>
Traits: AlwaysSpeculatableImplTrait
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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
Cú pháp:
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
Ví dụ:
%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 | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
start_indices | 1D tensor of index or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
limit_indices | 1D tensor of index or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
strides | 1D tensor of index or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.recv
(mhlo::RecvOp)
Recv operation
Receives data from a channel with channel_id
and produces results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#recv
Ví dụ:
%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)
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
channel_handle | ::mlir::mhlo::ChannelHandleAttr | two 64-bit integers 'handle' and 'type' |
is_host_transfer | ::mlir::BoolAttr | bool attribute |
Operands:
Operand | Sự miêu tả |
---|---|
token | mã thông báo |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | variadic of statically shaped tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or statically shaped tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
mhlo.reduce
(mhlo::ReduceOp)
Reduce operation
Applies a reduction function body
to inputs
and init_values
along the dimensions
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce
Ví dụ:
%result = "mhlo.reduce"(%input, %init_value) ({
^bb0(%arg0: tensor<i32>, %arg1: tensor<i32>):
%0 = "mhlo.add"(%arg0, %arg1) : (tensor<i32>, tensor<i32>) -> tensor<i32>
"mhlo.return"(%0) : (tensor<i32>) -> ()
}) {
dimensions = dense<1> : tensor<1xi64>
} : (tensor<1x6xi32>, tensor<i32>) -> tensor<1xi32>
Traits: InferTensorType
, RecursiveMemoryEffects
, SameVariadicOperandSize
, SingleBlockImplicitTerminator<ReturnOp>
, SingleBlock
Interfaces: InferShapedTypeOpInterface
, InferTypeOpInterface
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
dimensions | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operands:
Operand | Sự miêu tả |
---|---|
inputs | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
init_values | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.reduce_precision
(mhlo::ReducePrecisionOp)
ReducePrecision operation
Cú pháp:
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
Ví dụ:
%output = mhlo.reduce_precision %operand, format = e5m2 : tensor<6xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
exponent_bits | ::mlir::IntegerAttr | 32-bit signless integer attribute whose value is positive |
mantissa_bits | ::mlir::IntegerAttr | 32-bit signless integer attribute whose value is non-negative |
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
output | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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
Ví dụ:
%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>
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
scatter_dimension | ::mlir::IntegerAttr | 64-bit signless integer attribute whose value is non-negative |
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 | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.reduce_window
(mhlo::ReduceWindowOp)
ReduceWindow operation
Applies a reduction function body
to windows of inputs
and init_values
and produces results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce_window
Ví dụ:
%result = "mhlo.reduce_window"(%input, %init_value) ({
^bb0(%arg0: tensor<i32>, %arg1: tensor<i32>):
%0 = mhlo.add %arg0, %arg1 : tensor<i32>
mhlo.return %0 : tensor<i32>
}) {
window_dimensions = dense<[2, 1]> : tensor<2xi64>,
window_strides = dense<[4, 1]> : tensor<2xi64>,
base_dilations = dense<[2, 1]> : tensor<2xi64>,
window_dilations = dense<[3, 1]> : tensor<2xi64>,
padding = dense<[[2, 1], [0, 0]]> : tensor<2x2xi64>
} : (tensor<3x2xi32>, tensor<i32>) -> tensor<2x2xi32>
Traits: InferTensorType
, RecursiveMemoryEffects
, SameVariadicOperandSize
, SingleBlockImplicitTerminator<ReturnOp>
, SingleBlock
Interfaces: InferShapedTypeOpInterface
, InferTypeOpInterface
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
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 | Sự miêu tả |
---|---|
inputs | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
init_values | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.remainder
(mhlo::RemOp)
Rem operation
Cú pháp:
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
Ví dụ:
%result = mhlo.remainder %lhs, %rhs : tensor<4xi64>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
lhs | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.replica_id
(mhlo::ReplicaIdOp)
ReplicaId operation
Cú pháp:
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
Ví dụ:
%result = mhlo.replica_id : tensor<ui32>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of 32-bit unsigned integer values |
mhlo.reshape
(mhlo::ReshapeOp)
Reshape operation
Cú pháp:
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
Ví dụ:
%result = mhlo.reshape %operand : (tensor<2xf32>) -> tensor<1x2xf32>
Traits: AlwaysSpeculatableImplTrait
, HLO_CompatibleOperandsAndResultElementType
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | statically shaped tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.return
(mhlo::ReturnOp)
_This operation is a work in progress, so it is not yet included in the specification: https://github.com/openxla/stablehlo/issues/425
Informally, this operation serves as a terminator for regions defined by
the StableHLO ops. Non-StableHLO ops, e.g. `func.func`, have their own
terminators, e.g. `func.return`.
Example:
```mlir
%result = "mhlo.reduce"(%input, %init_value) ({
^bb0(%arg0: tensor<i32>, %arg1: tensor<i32>):
%0 = "mhlo.add"(%arg0, %arg1) : (tensor<i32>, tensor<i32>) -> tensor<i32>
"mhlo.return"(%0) : (tensor<i32>) -> ()
}) {
dimensions = dense<1> : tensor<1xi64>
} : (tensor<1x6xi32>, tensor<i32>) -> tensor<1xi32>
```_
Syntax:
```
operation ::= mhlo.return
$results attr-dict ( :
type($results)^)?
Traits: `AlwaysSpeculatableImplTrait`, `Terminator`
Interfaces: `ConditionallySpeculatable`, `NoMemoryEffect (MemoryEffectOpInterface)`
Effects: `MemoryEffects::Effect{}`
#### Operands:
| Operand | Description |
| :-----: | ----------- |
| `results` | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token or nested tuple with any combination of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token values
### `mhlo.reverse` (mhlo::ReverseOp)
_Reverse operation_
Reverses the order of elements in the `operand` along the specified
`dimensions` and produces a `result` tensor.
See:
<a href="https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reverse">https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reverse</a>
Example:
```mlir
%result = mhlo.reverse %operand, dims = [1] : tensor<3x2xi32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
dimensions | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.rng
(mhlo::RngOp)
Rng operation
Generates random numbers using the rng_distribution
algorithm and produces a result
tensor of a given shape shape
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rng
Ví dụ:
%result = mhlo.rng %a, %b, %shape, distribution = NORMAL : (tensor<i32>, tensor<i32>, tensor<2xi64>) -> tensor<3x3xi32>
Traits: InferTensorType
Interfaces: InferShapedTypeOpInterface
, InferTypeOpInterface
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
rng_distribution | ::mlir::mhlo::RngDistributionAttr | XLA PRNG distribution to be used. |
Operands:
Operand | Sự miêu tả |
---|---|
a | 0D tensor of pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
shape | 1D tensor of index or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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
Ví dụ:
%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{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
rng_algorithm | ::mlir::mhlo::RngAlgorithmAttr | XLA PRNG algorithm to be used. |
Operands:
Operand | Sự miêu tả |
---|---|
initial_state | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
output_state | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
output | statically shaped tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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
Cú pháp:
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
Ví dụ:
%result = mhlo.round_nearest_afz %operand : tensor<5xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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
Cú pháp:
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
Ví dụ:
%result = mhlo.round_nearest_even %operand : tensor<5xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
mhlo.rsqrt
(mhlo::RsqrtOp)
Rsqrt operation
Cú pháp:
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
Ví dụ:
%result = mhlo.rsqrt %operand : tensor<2x2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/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
Ví dụ:
%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 = [3, 4],
inserted_window_dims = [1],
input_batching_dims = [0],
scatter_indices_batching_dims = [1],
scatter_dims_to_operand_dims = [2, 1],
index_vector_dim = 3>,
indices_are_sorted = false,
unique_indices = false
} : (tensor<2x3x4x2xi64>, tensor<2x2x3x2xi64>, tensor<2x2x3x2x2xi64>) -> tensor<2x3x4x2xi64>
Traits: RecursiveMemoryEffects
, SameVariadicOperandSize
Interfaces: InferTypeOpInterface
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
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 | Sự miêu tả |
---|---|
inputs | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
scatter_indices | ranked tensor of integer or index values |
updates | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.select
(mhlo::SelectOp)
Select operation
Cú pháp:
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
Ví dụ:
%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 | Sự miêu tả |
---|---|
pred | ranked tensor of pred (AKA boolean or 1-bit integer) values |
on_true | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
on_false | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.select_and_scatter
(mhlo::SelectAndScatterOp)
SelectAndScatter operation
Scatters the values from the source
tensor using scatter
based on the outcome of reduce_window
of the input
tensor using select
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#select_and_scatter
Ví dụ:
%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
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
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 | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
source | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
init_value | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.send
(mhlo::SendOp)
Send operation
Sends inputs
to a channel channel_id
and produces a result
token.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#send
Ví dụ:
%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
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
channel_handle | ::mlir::mhlo::ChannelHandleAttr | two 64-bit integers 'handle' and 'type' |
is_host_transfer | ::mlir::BoolAttr | bool attribute |
Operands:
Operand | Sự miêu tả |
---|---|
inputs | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
token | mã thông báo |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | mã thông báo |
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
Ví dụ:
%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{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
dimension | ::mlir::IntegerAttr | 64-bit signless integer attribute whose value is non-negative |
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
size | tensor of 32-bit signless integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.shift_left
(mhlo::ShiftLeftOp)
ShiftLeft operation
Cú pháp:
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
Ví dụ:
%result = mhlo.shift_left %lhs, %rhs : tensor<6xi8>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
lhs | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
rhs | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
mhlo.shift_right_arithmetic
(mhlo::ShiftRightArithmeticOp)
ShiftRightArithmetic operation
Cú pháp:
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
Ví dụ:
%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 | Sự miêu tả |
---|---|
lhs | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
rhs | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
mhlo.shift_right_logical
(mhlo::ShiftRightLogicalOp)
ShiftRightLogical operation
Cú pháp:
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
Ví dụ:
%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 | Sự miêu tả |
---|---|
lhs | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
rhs | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
mhlo.sign
(mhlo::SignOp)
Sign operation
Cú pháp:
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
Ví dụ:
%result = mhlo.sign %operand : tensor<7xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of 2/4/8/16/32/64-bit signless integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of 2/4/8/16/32/64-bit signless integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.sine
(mhlo::SineOp)
Sine operation
Cú pháp:
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
Ví dụ:
%result = mhlo.sine %operand : tensor<2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/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
Ví dụ:
%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{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
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 | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.sort
(mhlo::SortOp)
Sort operation
Sorts a variadic number of tensors in inputs
together, according to a custom comparator
, along the given dimension
and produces a variadic number of tensors as results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sort
Ví dụ:
%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
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
dimension | ::mlir::IntegerAttr | 64-bit signless integer attribute |
is_stable | ::mlir::BoolAttr | bool attribute |
Operands:
Operand | Sự miêu tả |
---|---|
inputs | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.sparse_dot
(mhlo::SparseDotOp)
Sparse dot operation
Similar to dot_general
operation, with one or both of the operands being sparse. An additional argument provides sparsity meta information. Disclaimer: this op is experimental / a work in progress.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
lhs_sparsity | ::mlir::mhlo::SparsityDescriptorAttr | Describes structured (N:M) sparsity configuration |
rhs_sparsity | ::mlir::mhlo::SparsityDescriptorAttr | Describes structured (N:M) sparsity configuration |
dot_dimension_numbers | ::mlir::mhlo::DotDimensionNumbersAttr | Attribute that models the dimension information for dot. |
precision_config | ::mlir::ArrayAttr | Precision Config attribute |
Operands:
Operand | Sự miêu tả |
---|---|
lhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
meta | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.sqrt
(mhlo::SqrtOp)
Sqrt operation
Cú pháp:
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
Ví dụ:
%result = mhlo.sqrt %operand : tensor<2x2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.stochastic_convert
(mhlo::StochasticConvertOp)
StochasticConvert operation
This operation is a work in progress, so it is not yet included in the specification: https://github.com/openxla/stablehlo/issues/295
Informally, this operation performs element-wise conversion of values from a bigger type to a smaller one with stochastic rounding using the random number passed in.
Traits: AlwaysSpeculatableImplTrait
, Elementwise
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
random | ranked tensor of 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.subtract
(mhlo::SubtractOp)
Subtract operation
Cú pháp:
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
Ví dụ:
%result = mhlo.subtract %lhs, %rhs : tensor<2xi32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
lhs | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
rhs | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.tan
(mhlo::TanOp)
Tan operation
Cú pháp:
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.
Ví dụ:
%0 = mhlo.tan %arg0 : tensor<2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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
Cú pháp:
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
Ví dụ:
%result = mhlo.tanh %operand : tensor<2xf32>
Traits: AlwaysSpeculatableImplTrait
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values |
mhlo.topk
(mhlo::TopKOp)
TopK operation
Cú pháp:
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
Ví dụ:
%values, %indices = mhlo.topk(%operand, k=5, largest=true)
: tensor<100xf32> -> (tensor<5xf32>, tensor<5xi32>)
Traits: InferTensorType
, RecursiveMemoryEffects
Interfaces: InferShapedTypeOpInterface
, InferTypeOpInterface
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
k | ::mlir::IntegerAttr | 64-bit signless integer attribute |
largest | ::mlir::BoolAttr | bool attribute |
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
values | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
indices | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.torch_index_select
(mhlo::TorchIndexSelectOp)
TorchIndexSelect operation
This operation is on its way out of StableHLO, so it is not included in the specification: https://github.com/openxla/stablehlo/issues/3
Informally, this operation does the same thing as PyTorch's index_select, augmented with support for batch dimensions: https://pytorch.org/docs/stable/generated/torch.index_select.html
The batch_dims
attribute specifies the number of major batch dimensions (0 or more) that act like a multidimensional loop over both the operand and the index.
Ví dụ:
%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{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
dim | ::mlir::IntegerAttr | 64-bit signless integer attribute |
batch_dims | ::mlir::IntegerAttr | 64-bit signless integer attribute |
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
index | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.trace
(mhlo::TraceOp)
Trace operation
Cú pháp:
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.
Ví dụ:
mhlo.trace %arg0, "In test code." : tensor<5x1x5xi32>
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
tag | ::mlir::StringAttr | string attribute |
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.transpose
(mhlo::TransposeOp)
Transpose operation
Permutes the dimensions of operand
tensor using permutation
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#transpose
Ví dụ:
%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{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
permutation | ::mlir::DenseIntElementsAttr | 64-bit signless integer elements attribute |
Operands:
Operand | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.triangular_solve
(mhlo::TriangularSolveOp)
TriangularSolve operation
Solves batches of systems of linear equations with lower or upper triangular coefficient matrices.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#triangular_solve
Ví dụ:
%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{}
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
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 | Sự miêu tả |
---|---|
a | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or complex type with 32-bit float or 64-bit float elements values |
b | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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 |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU 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
Cú pháp:
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
Ví dụ:
%result = mhlo.tuple %val0, %val1 : tuple<tensor<2xf32>, tuple<tensor<i32>>>
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
val | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token or nested tuple with any combination of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | nested tuple with any combination of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token values |
mhlo.uniform_dequantize
(mhlo::UniformDequantizeOp)
UniformDequantize operation
Cú pháp:
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
Ví dụ:
%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 | Sự miêu tả |
---|---|
operand | ranked tensor of 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type values |
mhlo.uniform_quantize
(mhlo::UniformQuantizeOp)
UniformQuantize operation
Cú pháp:
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
Ví dụ:
%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 | Sự miêu tả |
---|---|
operand | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
mhlo.while
(mhlo::WhileOp)
While operation
Produces the output from executing body
function 0 or more times while the cond
function outputs true
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#while
Ví dụ:
%results0, %results1 = "mhlo.while"(%operand0, %operand1) ({
^bb0(%arg0: tensor<i32>, %arg1: tensor<i32>):
%0 = "mhlo.compare"(%arg0, %arg1) {
comparison_direction = #stablehlo<comparison_direction LT>
} : (tensor<i32>, tensor<i32>) -> tensor<i1>
"mhlo.return"(%0) : (tensor<i1>) -> ()
}, {
^bb0(%arg0: tensor<i32>, %arg1: tensor<i32>):
%0 = "mhlo.add"(%arg0, %constant0) : (tensor<i32>, tensor<i32>) -> tensor<i32>
"mhlo.return"(%0, %arg1) : (tensor<i32>, tensor<i32>) -> ()
}) : (tensor<i32>, tensor<i32>) -> (tensor<i32>, tensor<i32>)
Traits: RecursiveMemoryEffects
, SingleBlockImplicitTerminator<ReturnOp>
, SingleBlock
Interfaces: InferTypeOpInterface
, OpAsmOpInterface
Operands:
Operand | Sự miêu tả |
---|---|
operand | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | variadic of ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer values or ranked tensor of 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values or token |
mhlo.xla.rng_get_and_update_state
(mhlo::XlaRngGetAndUpdateStateOp)
XlaRngGetAndUpdateState operation
Cú pháp:
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
Attributes:
Thuộc tính | MLIR Type | Sự miêu tả |
---|---|---|
delta | ::mlir::IntegerAttr | 64-bit signless integer attribute |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
"vô danh" | statically shaped tensor of 64-bit unsigned integer values |
mhlo.xor
(mhlo::XorOp)
Xor operation
Cú pháp:
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
Ví dụ:
%result = mhlo.xor %lhs, %rhs : tensor<2xi32>
Traits: AlwaysSpeculatableImplTrait
, Commutative
, CompatibleOperandsAndResultType
, Elementwise
, SameOperandsAndResultShape
Interfaces: ConditionallySpeculatable
, InferShapedTypeOpInterface
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand | Sự miêu tả |
---|---|
lhs | ranked tensor of pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
rhs | ranked tensor of pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer values |
Kết quả:
Kết quả | Sự miêu tả |
---|---|
result | ranked tensor of f4E2M1FN type or f6E2M3FN type or f6E3M2FN type or f8E3M4 type or f8E4M3 type or f8E4M3FN type or f8E4M3FNUZ type or f8E4M3B11FNUZ type or f8E5M2 type or f8E5M2FNUZ type or f8E8M0FNU type or 16-bit float or 32-bit float or 64-bit float or bfloat16 type or pred (AKA boolean or 1-bit integer) or 2/4/8/16/32/64-bit signless integer or 2/4/8/16/32/64-bit unsigned integer or complex type with 32-bit float or 64-bit float elements or 2/4/8/16/32-bit uniform quantized signed integer or 2/4/8/16/32-bit uniform quantized unsigned integer or 2/4/8/16/32-bit uniform quantized per axis signed integer or 2/4/8/16/32-bit uniform quantized per axis unsigned integer values |
Thuộc tính
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 ...
}
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
argTupleIndices | ::llvm::ArrayRef<int64_t> | Kích thước |
resultIndex | int64_t | |
resultTupleIndices | ::llvm::ArrayRef<int64_t> | Kích thước |
isMustAlias | bool |
ChannelHandleAttr
two 64-bit integers 'handle' and 'type'
Cú pháp:
#mhlo.channel_handle<
int64_t, # handle
int64_t # type
>
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
xử lý | int64_t | |
kiểu | int64_t |
ComparisonDirectionAttr
Which comparison operation to perform.
Cú pháp:
#mhlo.comparison_direction<
::mlir::mhlo::ComparisonDirection # value
>
Enum cases:
- EQ (
EQ
) - NE (
NE
) - GE (
GE
) - GT (
GT
) - LE (
LE
) - LT (
LT
)
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
giá trị | ::mlir::mhlo::ComparisonDirection | an enum of type ComparisonDirection |
ComparisonTypeAttr
Which comparison type to use.
Cú pháp:
#mhlo.comparison_type<
::mlir::mhlo::ComparisonType # value
>
Enum cases:
- NOTYPE (
NOTYPE
) - FLOAT (
FLOAT
) - TOTALORDER (
TOTALORDER
) - SIGNED (
SIGNED
) - UNSIGNED (
UNSIGNED
)
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
giá trị | ::mlir::mhlo::ComparisonType | an enum of type ComparisonType |
ConvDimensionNumbersAttr
Structure of dimension information for conv op
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
inputBatchDimension | int64_t | |
inputFeatureDimension | int64_t | |
inputSpatialDimensions | ::llvm::ArrayRef<int64_t> | Kích thước |
kernelInputFeatureDimension | int64_t | |
kernelOutputFeatureDimension | int64_t | |
kernelSpatialDimensions | ::llvm::ArrayRef<int64_t> | Kích thước |
outputBatchDimension | int64_t | |
outputFeatureDimension | int64_t | |
outputSpatialDimensions | ::llvm::ArrayRef<int64_t> | Kích thước |
CrossProgramPrefetchAttr
Argument that is prefetched from another program
Cú pháp:
#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.
Ví dụ,
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.
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
tham số | int64_t | |
chỉ số | ::llvm::ArrayRef<int64_t> | Kích thước |
bù lại | std::optional<int64_t> |
CustomCallScheduleAttr
Specifies the desired schedule for the custom-call.
Cú pháp:
#mhlo.custom_call_schedule<
::mlir::mhlo::CustomCallSchedule # value
>
Enum cases:
- NONE (
NONE
) - LATEST (
LATEST
) - EARLIEST (
EARLIEST
)
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
giá trị | ::mlir::mhlo::CustomCallSchedule | an enum of type CustomCallSchedule |
DequantizeModeAttr
Dequantization mode. Only MIN_COMBINED is supported.
Cú pháp:
#mhlo.dequantize_mode<
::mlir::mhlo::DequantizeMode # value
>
Enum cases:
- MIN_COMBINED (
MIN_COMBINED
)
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
giá trị | ::mlir::mhlo::DequantizeMode | an enum of type DequantizeMode |
DomainKindAttr
Kind of domain metatdata attached to an HLO domain.
Cú pháp:
#mhlo.kind<
::mlir::mhlo::DomainKind # value
>
Enum cases:
- sharding (
sharding
)
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
giá trị | ::mlir::mhlo::DomainKind | an enum of type DomainKind |
DotAlgorithmAttr
Attribute that models the algorithm constraints to use for computing dot.
Cú pháp:
#mhlo.dot_algorithm<
Type, # lhsPrecisionType
Type, # rhsPrecisionType
Type, # accumulationType
int64_t, # lhsComponentCount
int64_t, # rhsComponentCount
int64_t, # numPrimitiveOperations
bool # allowImpreciseAccumulation
>
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
lhsPrecisionType | Type | |
rhsPrecisionType | Type | |
accumulationType | Type | |
lhsComponentCount | int64_t | |
rhsComponentCount | int64_t | |
numPrimitiveOperations | int64_t | |
allowImpreciseAccumulation | bool |
DotDimensionNumbersAttr
Attribute that models the dimension information for dot.
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
lhsBatchingDimensions | ::llvm::ArrayRef<int64_t> | Kích thước |
rhsBatchingDimensions | ::llvm::ArrayRef<int64_t> | Kích thước |
lhsContractingDimensions | ::llvm::ArrayRef<int64_t> | Kích thước |
rhsContractingDimensions | ::llvm::ArrayRef<int64_t> | Kích thước |
FftTypeAttr
XLA fast fourier transform type.
Cú pháp:
#mhlo.fft_type<
::mlir::mhlo::FftType # value
>
Enum cases:
- FFT (
FFT
) - IFFT (
IFFT
) - RFFT (
RFFT
) - IRFFT (
IRFFT
)
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
giá trị | ::mlir::mhlo::FftType | an enum of type FftType |
FusionKindAttr
fusion kind
Cú pháp:
#mhlo.fusion_kind<
::mlir::mhlo::FusionKind # value
>
Enum cases:
- kLoop (
kLoop
) - kInput (
kInput
) - kOutput (
kOutput
) - kCustom (
kCustom
)
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
giá trị | ::mlir::mhlo::FusionKind | an enum of type FusionKind |
GatherDimensionNumbersAttr
Attribute that models the dimension information for gather
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
offsetDims | ::llvm::ArrayRef<int64_t> | Kích thước |
collapsedSliceDims | ::llvm::ArrayRef<int64_t> | Kích thước |
operandBatchingDims | ::llvm::ArrayRef<int64_t> | Kích thước |
startIndicesBatchingDims | ::llvm::ArrayRef<int64_t> | Kích thước |
startIndexMap | ::llvm::ArrayRef<int64_t> | Kích thước |
indexVectorDim | int64_t |
OutputOperandAliasAttr
Attribute that models the alias relationship of output and operand of a CustomCall op
Cú pháp:
#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>.
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
outputTupleIndices | ::llvm::ArrayRef<int64_t> | Kích thước |
operandIndex | int64_t | |
operandTupleIndices | ::llvm::ArrayRef<int64_t> | Kích thước |
PrecisionAttr
XLA precision for an operand. Has backend specific meaning.
Cú pháp:
#mhlo.precision<
::mlir::mhlo::Precision # value
>
Enum cases:
- DEFAULT (
DEFAULT
) - HIGH (
HIGH
) - HIGHEST (
HIGHEST
) - PACKED_NIBBLE (
PACKED_NIBBLE
)
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
giá trị | ::mlir::mhlo::Precision | an enum of type Precision |
RngAlgorithmAttr
XLA PRNG algorithm to be used.
Cú pháp:
#mhlo.rng_algorithm<
::mlir::mhlo::RngAlgorithm # value
>
Enum cases:
- DEFAULT (
DEFAULT
) - THREE_FRY (
THREE_FRY
) - PHILOX (
PHILOX
)
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
giá trị | ::mlir::mhlo::RngAlgorithm | an enum of type RngAlgorithm |
RngDistributionAttr
XLA PRNG distribution to be used.
Cú pháp:
#mhlo.rng_distribution<
::mlir::mhlo::RngDistribution # value
>
Enum cases:
- UNIFORM (
UNIFORM
) - NORMAL (
NORMAL
)
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
giá trị | ::mlir::mhlo::RngDistribution | an enum of type RngDistribution |
ScatterDimensionNumbersAttr
Attribute that models the dimension information for scatter
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
updateWindowDims | ::llvm::ArrayRef<int64_t> | Kích thước |
insertedWindowDims | ::llvm::ArrayRef<int64_t> | Kích thước |
inputBatchingDims | ::llvm::ArrayRef<int64_t> | Kích thước |
scatterIndicesBatchingDims | ::llvm::ArrayRef<int64_t> | Kích thước |
scatterDimsToOperandDims | ::llvm::ArrayRef<int64_t> | Kích thước |
indexVectorDim | int64_t |
SparsityDescriptorAttr
Describes structured (N:M) sparsity configuration
Cú pháp:
#mhlo.sparsity<
int64_t, # dimension
int64_t, # n
int64_t # m
>
This attribute is defined for a sparse dot operation with a structured sparse input tensor. With (N=2,M=4), every 4 consecutive logical elements have exactly 2 non-zero physical elements in the input tensor.
$dimension defines the index of the contracting dimension that is sparse (it has to be the most minor dimension). The additional metadata operand in the sparse dot operation defines which logical elements are zeroed out.
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
kích thước | int64_t | |
N | int64_t | |
tôi | int64_t |
TransposeAttr
Transpose options
Cú pháp:
#mhlo.transpose<
::mlir::mhlo::Transpose # value
>
Enum cases:
- TRANSPOSE_INVALID (
TRANSPOSE_INVALID
) - NO_TRANSPOSE (
NO_TRANSPOSE
) - TRANSPOSE (
TRANSPOSE
) - ADJOINT (
ADJOINT
)
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
giá trị | ::mlir::mhlo::Transpose | an enum of type Transpose |
TypeExtensionsAttr
Attribute that extends tensor type with MHLO type properties.
Cú pháp:
#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
.
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
giới hạn | ::llvm::ArrayRef<int64_t> |
Các loại
AsyncBundleType
Opaque collection of other types
Cú pháp:
!mhlo.async_bundle<
::llvm::ArrayRef<Type> # types
>
Thông số:
tham số | C++ type | Sự miêu tả |
---|---|---|
các loại | ::llvm::ArrayRef<Type> |
Enums
ComparisonDirection
Which comparison operation to perform.
Cases:
Biểu tượng | Giá trị | Sợi dây |
---|---|---|
EQ | 0 | EQ |
ĐB | 1 | ĐB |
GE | 2 | GE |
GT | 3 | GT |
LÊ | 4 | LÊ |
LT | 5 | LT |
ComparisonType
Which comparison type to use.
Cases:
Biểu tượng | Giá trị | Sợi dây |
---|---|---|
NOTYPE | 0 | NOTYPE |
TRÔI NỔI | 1 | TRÔI NỔI |
TOTALORDER | 2 | TOTALORDER |
SIGNED | 3 | SIGNED |
UNSIGNED | 4 | UNSIGNED |
CustomCallApiVersion
Custom call API version
Cases:
Biểu tượng | Giá trị | Sợi dây |
---|---|---|
API_VERSION_UNSPECIFIED | 0 | API_VERSION_UNSPECIFIED |
API_VERSION_ORIGINAL | 1 | API_VERSION_ORIGINAL |
API_VERSION_STATUS_RETURNING | 2 | API_VERSION_STATUS_RETURNING |
API_VERSION_STATUS_RETURNING_UNIFIED | 3 | API_VERSION_STATUS_RETURNING_UNIFIED |
API_VERSION_TYPED_FFI | 4 | API_VERSION_TYPED_FFI |
CustomCallSchedule
Specifies the desired schedule for the custom-call.
Cases:
Biểu tượng | Giá trị | Sợi dây |
---|---|---|
KHÔNG CÓ | 0 | KHÔNG CÓ |
MỚI NHẤT | 1 | MỚI NHẤT |
EARLIEST | 2 | EARLIEST |
DequantizeMode
Dequantization mode. Only MIN_COMBINED is supported.
Cases:
Biểu tượng | Giá trị | Sợi dây |
---|---|---|
MIN_COMBINED | 0 | MIN_COMBINED |
DomainKind
Kind of domain metatdata attached to an HLO domain.
Cases:
Biểu tượng | Giá trị | Sợi dây |
---|---|---|
sharding | 0 | sharding |
FftType
XLA fast fourier transform type.
Cases:
Biểu tượng | Giá trị | Sợi dây |
---|---|---|
FFT | 0 | FFT |
IFFT | 1 | IFFT |
RFFT | 2 | RFFT |
IRFFT | 3 | IRFFT |
FusionKind
fusion kind
Cases:
Biểu tượng | Giá trị | Sợi dây |
---|---|---|
kLoop | 0 | kLoop |
kInput | 1 | kInput |
kOutput | 2 | kOutput |
kCustom | 3 | kCustom |
Độ chính xác
XLA precision for an operand. Has backend specific meaning.
Cases:
Biểu tượng | Giá trị | Sợi dây |
---|---|---|
MẶC ĐỊNH | 0 | MẶC ĐỊNH |
CAO | 1 | CAO |
HIGHEST | 2 | HIGHEST |
PACKED_NIBBLE | 3 | PACKED_NIBBLE |
RngAlgorithm
XLA PRNG algorithm to be used.
Cases:
Biểu tượng | Giá trị | Sợi dây |
---|---|---|
MẶC ĐỊNH | 0 | MẶC ĐỊNH |
THREE_FRY | 1 | THREE_FRY |
PHILOX | 2 | PHILOX |
RngDistribution
XLA PRNG distribution to be used.
Cases:
Biểu tượng | Giá trị | Sợi dây |
---|---|---|
ĐỒNG PHỤC | 1 | ĐỒNG PHỤC |
BÌNH THƯỜNG | 2 | BÌNH THƯỜNG |
Transpose
Transpose options
Cases:
Biểu tượng | Giá trị | Sợi dây |
---|---|---|
TRANSPOSE_INVALID | 0 | TRANSPOSE_INVALID |
NO_TRANSPOSE | 1 | NO_TRANSPOSE |
TRANSPOSE | 2 | TRANSPOSE |
ADJOINT | 3 | ADJOINT |