StableHLO 狀態

透過 MHLO 啟動 StableHLO 時,我們繼承了 MHLO 的許多實作項目,包括美化排版、驗證和形狀推論。有鑑於此,我們已提供大量的運算技術,但還有很多機會來檢查現有的實作內容是否完整,並在不存在的地方提供新的實作內容。

這份即時文件可讓開發人員和使用者追蹤各種操作集的進度,例如規格、驗證、類型推論、美化排版、解譯等。

使用方式

如對應欄中所說,在對應資料列中提到的 StableHLO 運算進度,會使用下列其中一種追蹤標籤進行追蹤。

  • 一般標籤
    • :有完善的導入方法。
    • no:應用程式未提供實作,但我們正努力進行,這屬於發展藍圖的一部分。請注意,驗證器永遠不得加上「no」標籤,因為 ODS 已導入部分驗證程序。
  • 驗證者和類型推論的自訂標籤
    • yes:有一個實作項目,而且會與 StableHLO 語意保持同步。
    • yes*:已有實作,且會與 XLA 語意保持同步。XLA 語意通常是未記載的,因此我們使用 hlo_verifier.ccshape_inference.cc 做為參考。
    • revisit:有實作程序,但並未歸類到「是」或「是*」,原因可能在於我們尚未稽核,或是系統偵測到問題。
    • 不可行:沒有實作,因為不可能。舉例來說,因為系統無法根據運算元和屬性推論運算的結果類型。

狀態

結構定義 規格 驗證 型別推斷 美化印刷 翻譯模式
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 不可行
客服案件 再次瀏覽
哭泣
Cil
Cholesky 再次瀏覽
限制取值範圍 再次瀏覽
collective_broadcast 再次瀏覽
collective_permute 再次瀏覽
compare
複雜
複合 不可行
concatenate
常數
完成轉換 不可行
卷積 不可行 再次瀏覽
餘弦
count_leading_zeros
create_token 是* 是* 再次瀏覽
跨備用資源-總和 再次瀏覽 是* 再次瀏覽
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
夫特 再次瀏覽
floor
收集
get_dimension_size
get_tuple_element
if 再次瀏覽
圖片
動態內廣告 不可行
Iota 不可行
is_finite
紀錄/記錄檔
log_plus_one
物流
地圖 再次瀏覽
最高
最低
相乘
negate
不是
optimization_barrier
Outfeed
墊片
partition_id
Popcnt
功率
real
real_dynamic_slice 再次瀏覽
最佳化建議 不可行
減少 再次瀏覽 再次瀏覽
reduce_precision
reduce_scatter 再次瀏覽
reduce_window 再次瀏覽
餘數
replica_id
Reshape 不可行
return 再次瀏覽 不可行
反向排序
原始 再次瀏覽
rng_bit_generator 再次瀏覽 不可行 再次瀏覽
round_nearest_afz
round_nearest_even
rsqrt
scatter 再次瀏覽
選取
select_and_scatter 再次瀏覽
傳送
set_dimension_size 是* 是*
shift_left
shift_right_arithmetic
shift_right_logical
簽署
正弦
配量
排序
sqrt
subtract
棕褐色
torch_index_select 再次瀏覽 再次瀏覽
轉置
triangular_solve 再次瀏覽 再次瀏覽
tuple
unary_einsum 再次瀏覽 再次瀏覽
uniform_dequantize
uniform_quantize 再次瀏覽 不可行
期間 再次瀏覽 再次瀏覽
Xor

量化運算的型別推論

上表的 Type Inference 欄主要用於非量化作業。在大部分的量化運算中,結果類型的量化參數可能與運算元不同,因此無法推論結果類型。除了「few」與 {1, 2, 3}/ 2, 3}/ 2, 3}/ 2, 3}/ 2, 3}/ 2, 3}/ 2, 2, 3}/7}/7}/7}/7all_gatherall_to_allcasecollective_permutecompareconcatenateconstantdynamic_slicedynamic_update_slicegatherget_tuple_elementifinfeedis_finitemapoptimization_barrieroutfeedpadrecvreducereduce_scatterreduce_windowreversescatterselect_and_scattersendslicesorttransposetupleuniform_dequantizedwhile