StableHLO 状态

从 MHLO 引导 StableHLO 时,我们继承了 MHLO 的许多功能实现,包括美观打印、验证和形状推断。因此,我们已经有了大量的优化机会,但审查现有实现的完整性,以及提供不存在的新实现仍任重而道远。

此实时文档旨在帮助开发者和用户跟踪运算各个方面(规范、验证、类型推断、美观输出、解释器等)的进度。

使用方法

如相应行中提到的,SableHLO 操作在特定方面(如相应列中所述)的进度通过以下某个跟踪标签进行跟踪。

  • 通用标签
    • :已全面实施。
    • no:无需实施,但实施这项工作是路线图的一部分。 请注意,验证商永远无法标记为“否”,因为 ODS 已实现某些验证。
  • 验证程序和类型推断的自定义标签
    • yes:存在实现,并且与 StableHLO 语义同步。
    • yes*:有实现,并且与 XLA 语义同步。由于 XLA 语义经常缺乏文档记录,因此我们使用 hlo_verifier.ccshape_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 回顾 不可行
回顾 回顾
异或