StableHLO のステータス

MHLO から StableHLO をブートストラップする場合、プリティ プリント、検証、形状推論など、多くの実装を MHLO が引き継いでいます。そのおかげで、オペレーション セットはすでに広範囲にわたって網羅されていますが、既存の実装の完全性を確認し、存在しない新しい実装を提供するにはまだやることがたくさんあります。

このライブ ドキュメントは、デベロッパーとユーザーが opset のさまざまな要素(仕様、検証、型推論、プリティ プリント、インタープリタなど)の進捗状況を追跡するためのものです。

活用方法

対応する行に記載されている StableHLO 演算の進捗状況は、対応する列に記載されている特定のアスペクトにおける、次のいずれかのトラッキング ラベルを使用してトラッキングされます。

  • 汎用ラベル
    • yes: 包括的な実装を行います。
    • なし: 実装はありませんが、今後その取り組みはロードマップの一部です。 ODS にはすでになんらかの検証が実装されているため、検証ツールで「no」というラベルは表示できません。
  • 検証ツールと型推論のカスタムラベル
    • yes: 実装があり、StableHLO セマンティクスと同期しています。
    • yes*: 実装があり、XLA セマンティクスと同期しています。XLA セマンティクスはドキュメント化されていないことが多いため、ここでは hlo_verifier.ccshape_inference.cc でリファレンスを使用しています。
    • 再検討: 実装がありますが、「はい」または「はい*」に該当しません。まだ監査を行っていないか、問題が見つかって見つかったためです。
    • infeasible: 実行不可能なため、実装はありません。たとえば、演算の結果の型はオペランドや属性から推測できないためです。

ステータス

StableHLO オペレーション 仕様 検証 型推論 プリティ プリント インタープリタ
abs あり はい はい はい あり
add あり はい はい はい あり
after_all あり はい はい はい あり
all_gather あり もう一度見る × × あり
all_reduce あり もう一度見る あり × あり
all_to_all あり もう一度見る あり × あり
and あり はい はい はい あり
atan2 あり はい はい はい あり
batch_norm_grad あり もう一度見る あり × もう一度見る
batch_norm_inference あり もう一度見る あり × もう一度見る
batch_norm_training あり もう一度見る あり × もう一度見る
bitcast_convert あり あり 不可能 あり あり
ブロードキャスト × ○* ○* あり もう一度見る
broadcast_in_dim あり あり 不可能 あり あり
ケース あり もう一度見る あり × あり
cbrt あり はい はい はい あり
ceil あり はい はい はい あり
コレスキー あり はい はい あり もう一度見る
クランプ あり もう一度見る あり はい あり
collective_permute あり もう一度見る あり × あり
compare あり はい はい はい あり
複雑 あり はい はい はい あり
compute_reshape_shape × もう一度見る × あり ×
concatenate あり はい はい はい あり
定数 あり はい はい はい あり
コンバージョン あり あり 不可能 あり あり
畳み込み あり あり 不可能 もう一度見る ×
コサイン あり はい はい はい あり
count_leading_zeros あり はい はい はい あり
create_token × ○* ○* あり もう一度見る
Cross-replica-sum × もう一度見る ○* × もう一度見る
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 あり はい はい はい あり
FFT あり もう一度見る あり あり ×
floor あり はい はい はい あり
収集 あり はい あり × あり
get_dimension_size あり はい はい はい あり
get_tuple_element あり はい はい はい あり
if あり もう一度見る あり × あり
画像 あり はい はい はい あり
インフィード あり あり 不可能 × あり
イオタ あり あり 不可能 あり あり
is_finite あり はい はい はい あり
log あり はい はい はい あり
log_plus_one あり はい はい はい あり
ロジスティック あり はい はい はい あり
地図 あり もう一度見る あり × あり
最大 あり はい はい はい あり
最小 あり はい はい はい あり
掛ける あり はい はい はい あり
negate あり はい はい はい あり
いない あり はい はい はい あり
optimization_barrier あり はい はい はい あり
or あり はい はい はい あり
アウトフィード あり はい あり × あり
パッド あり はい はい はい あり
partition_id あり はい はい はい あり
ポップコンテンツ あり はい はい はい あり
電力 あり はい はい はい あり
real あり はい はい はい あり
real_dynamic_slice × もう一度見る × あり ×
受信 あり あり 不可能 × あり
reduce あり もう一度見る あり もう一度見る あり
reduce_precision あり はい はい はい あり
reduce_scatter あり もう一度見る × × あり
reduce_window あり もう一度見る あり × あり
残り あり はい はい はい あり
replica_id あり はい はい はい あり
reshape あり あり 不可能 あり あり
return × もう一度見る 不可能 あり あり
reverse あり はい はい はい あり
RNG あり はい はい あり もう一度見る
rng_bit_generator あり もう一度見る 不可能 あり もう一度見る
round_nearest_afz あり はい はい はい あり
round_nearest_even あり はい はい はい あり
rsqrt あり はい はい はい あり
scatter あり もう一度見る あり × あり
select あり はい はい はい あり
select_and_scatter あり もう一度見る あり × あり
送信 あり はい あり × あり
set_dimension_size × ○* ○* あり ×
shift_left あり はい はい はい あり
shift_right_arithmetic あり はい はい はい あり
shift_right_logical あり はい はい はい あり
揃えます。 あり はい はい はい あり
サイン あり はい はい はい あり
スライス あり はい あり × あり
sort あり はい あり × あり
sqrt あり はい はい はい あり
subtract あり はい はい はい あり
tanh あり はい はい はい あり
torch_index_select × もう一度見る × × もう一度見る
trace × もう一度見る × あり もう一度見る
転置 あり はい はい はい あり
triangular_solve あり もう一度見る あり × もう一度見る
tuple あり はい はい はい あり
unary_einsum × もう一度見る × あり もう一度見る
uniform_dequantize あり はい はい あり ×
uniform_quantize あり もう一度見る 不可能 あり ×
しばらく あり もう一度見る あり もう一度見る あり
XOR あり はい はい はい あり