从 MHLO 引导 StableHLO 时,我们继承了 MHLO 的许多功能实现,包括美观打印、验证和形状推断。因此,我们已经有了大量的优化机会,但审查现有实现的完整性,以及提供不存在的新实现仍任重而道远。
此实时文档旨在帮助开发者和用户跟踪运算各个方面(规范、验证、类型推断、美观输出、解释器等)的进度。
使用方法
如相应行中提到的,SableHLO 操作在特定方面(如相应列中所述)的进度通过以下某个跟踪标签进行跟踪。
- 通用标签
- 是:已全面实施。
- no:无需实施,但实施这项工作是路线图的一部分。 请注意,验证商永远无法标记为“否”,因为 ODS 已实现某些验证。
- 验证程序和类型推断的自定义标签
- yes:存在实现,并且与 StableHLO 语义同步。
- yes*:有实现,并且与 XLA 语义同步。由于 XLA 语义经常缺乏文档记录,因此我们使用 hlo_verifier.cc 和 shape_inference.cc 作为参考。
- 回顾:存在某个实现,但它不属于“是”或“是*”的范畴,因为我们尚未对其进行审核,或者我们发现并发现了问题。
- infeasible(不可行):没有实现,因为这是不可行的。 例如,因为无法通过其运算数和属性推断出操作的结果类型。
状态
StableHLO 操作 | 规范 | 验证 | 类型推断 | 美观打印 | 口译 |
---|---|---|---|---|---|
abs | 是 | 是 | 是 | 是 | 是 |
add | 是 | 是 | 是 | 是 | 是 |
after_all | 是 | 是 | 是 | 是 | 是 |
all_gather | 是 | 回顾 | 否 | 否 | 是 |
all_reduce | 是 | 回顾 | 是 | 否 | 是 |
all_to_all | 是 | 回顾 | 是 | 否 | 是 |
和 | 是 | 是 | 是 | 是 | 是 |
atan2 | 是 | 是 | 是 | 是 | 是 |
batch_norm_grad | 是 | 回顾 | 是 | 否 | 回顾 |
batch_norm_inference | 是 | 回顾 | 是 | 否 | 回顾 |
batch_norm_training | 是 | 回顾 | 是 | 否 | 回顾 |
bitcast_convert | 是 | 是 | 不可行 | 是 | 是 |
广播 | 否 | 是* | 是* | 是 | 回顾 |
broadcast_in_dim | 是 | 是 | 不可行 | 是 | 是 |
场景 | 是 | 回顾 | 是 | 否 | 是 |
cbrt | 是 | 是 | 是 | 是 | 是 |
ceil | 是 | 是 | 是 | 是 | 是 |
Cholesky | 是 | 是 | 是 | 是 | 回顾 |
限制取值范围 | 是 | 回顾 | 是 | 是 | 是 |
collective_permute | 是 | 回顾 | 是 | 否 | 是 |
compare | 是 | 是 | 是 | 是 | 是 |
复杂 | 是 | 是 | 是 | 是 | 是 |
compute_reshape_shape | 否 | 回顾 | 否 | 是 | 否 |
concatenate | 是 | 是 | 是 | 是 | 是 |
常量 | 是 | 是 | 是 | 是 | 是 |
转化 | 是 | 是 | 不可行 | 是 | 是 |
卷积 | 是 | 是 | 不可行 | 回顾 | 否 |
余弦 | 是 | 是 | 是 | 是 | 是 |
count_leading_zeros | 是 | 是 | 是 | 是 | 是 |
create_token | 否 | 是* | 是* | 是 | 回顾 |
交叉副本总和 | 否 | 回顾 | 是* | 否 | 回顾 |
cstr_reshapable | 否 | 回顾 | 否 | 是 | 否 |
custom_call | 是 | 是 | 不可行 | 是 | 是 |
除号 | 是 | 是 | 是 | 是 | 是 |
点 | 否 | 回顾 | 不可行 | 是 | 回顾 |
dot_general | 是 | 回顾 | 不可行 | 否 | 是 |
dynamic_broadcast_in_dim | 否 | 回顾 | 不可行 | 否 | 否 |
dynamic_conv | 否 | 回顾 | 否 | 不 | 否 |
dynamic_gather | 否 | 回顾 | 回顾 | 否 | 否 |
dynamic_iota | 否 | 回顾 | 不可行 | 是 | 否 |
dynamic_pad | 否 | 回顾 | 否 | 是 | 否 |
dynamic_reshape | 否 | 回顾 | 不可行 | 是 | 否 |
dynamic_slice | 是 | 是 | 是 | 是 | 是 |
dynamic_update_slice | 是 | 是 | 是 | 是 | 是 |
einsum | 否 | 回顾 | 否 | 是 | 回顾 |
指数函数 | 是 | 是 | 是 | 是 | 是 |
exponential_minus_one | 是 | 是 | 是 | 是 | 是 |
FF | 是 | 回顾 | 是 | 是 | 否 |
floor | 是 | 是 | 是 | 是 | 是 |
收集 | 是 | 是 | 是 | 否 | 是 |
get_dimension_size | 是 | 是 | 是 | 是 | 是 |
get_tuple_element | 是 | 是 | 是 | 是 | 是 |
if | 是 | 回顾 | 是 | 否 | 是 |
Imag | 是 | 是 | 是 | 是 | 是 |
信息流 | 是 | 是 | 不可行 | 否 | 是 |
Iota | 是 | 是 | 不可行 | 是 | 是 |
is_finite | 是 | 是 | 是 | 是 | 是 |
日志 | 是 | 是 | 是 | 是 | 是 |
log_plus_one | 是 | 是 | 是 | 是 | 是 |
逻辑 | 是 | 是 | 是 | 是 | 是 |
map | 是 | 回顾 | 是 | 否 | 是 |
最大值 | 是 | 是 | 是 | 是 | 是 |
最小值 | 是 | 是 | 是 | 是 | 是 |
乘号 | 是 | 是 | 是 | 是 | 是 |
negate | 是 | 是 | 是 | 是 | 是 |
非 | 是 | 是 | 是 | 是 | 是 |
optimization_barrier | 是 | 是 | 是 | 是 | 是 |
或 | 是 | 是 | 是 | 是 | 是 |
外播 | 是 | 是 | 是 | 否 | 是 |
垫 | 是 | 是 | 是 | 是 | 是 |
partition_id | 是 | 是 | 是 | 是 | 是 |
爆破 | 是 | 是 | 是 | 是 | 是 |
幂数 | 是 | 是 | 是 | 是 | 是 |
real | 是 | 是 | 是 | 是 | 是 |
real_dynamic_slice | 否 | 回顾 | 否 | 是 | 否 |
接收 | 是 | 是 | 不可行 | 否 | 是 |
reduce | 是 | 回顾 | 是 | 回顾 | 是 |
reduce_precision | 是 | 是 | 是 | 是 | 是 |
reduce_scatter | 是 | 回顾 | 否 | 否 | 是 |
reduce_window | 是 | 回顾 | 是 | 否 | 是 |
余数 | 是 | 是 | 是 | 是 | 是 |
replica_id | 是 | 是 | 是 | 是 | 是 |
调整形状 | 是 | 是 | 不可行 | 是 | 是 |
return | 否 | 回顾 | 不可行 | 是 | 是 |
reverse | 是 | 是 | 是 | 是 | 是 |
广播 | 是 | 是 | 是 | 是 | 回顾 |
rng_bit_generator | 是 | 回顾 | 不可行 | 是 | 回顾 |
round_nearest_afz | 是 | 是 | 是 | 是 | 是 |
round_nearest_even | 是 | 是 | 是 | 是 | 是 |
rsqrt | 是 | 是 | 是 | 是 | 是 |
scatter | 是 | 回顾 | 是 | 否 | 是 |
选择 | 是 | 是 | 是 | 是 | 是 |
select_and_scatter | 是 | 回顾 | 是 | 否 | 是 |
send | 是 | 是 | 是 | 否 | 是 |
set_dimension_size | 否 | 是* | 是* | 是 | 否 |
shift_left | 是 | 是 | 是 | 是 | 是 |
shift_right_arithmetic | 是 | 是 | 是 | 是 | 是 |
shift_right_logical | 是 | 是 | 是 | 是 | 是 |
签名 | 是 | 是 | 是 | 是 | 是 |
正弦 | 是 | 是 | 是 | 是 | 是 |
slice | 是 | 是 | 是 | 否 | 是 |
sort | 是 | 是 | 是 | 否 | 是 |
sqrt | 是 | 是 | 是 | 是 | 是 |
subtract | 是 | 是 | 是 | 是 | 是 |
双色 | 是 | 是 | 是 | 是 | 是 |
torch_index_select | 否 | 回顾 | 否 | 否 | 回顾 |
trace | 否 | 回顾 | 否 | 是 | 回顾 |
转置 | 是 | 是 | 是 | 是 | 是 |
triangular_solve | 是 | 回顾 | 是 | 否 | 回顾 |
tuple | 是 | 是 | 是 | 是 | 是 |
unary_einsum | 否 | 回顾 | 否 | 是 | 回顾 |
uniform_dequantize | 是 | 是 | 是 | 是 | 否 |
uniform_quantize | 是 | 回顾 | 不可行 | 是 | 否 |
而 | 是 | 回顾 | 是 | 回顾 | 是 |
异或 | 是 | 是 | 是 | 是 | 是 |