Saat mem-bootstrap StableHLO dari MHLO, kami telah mewarisi implementasi MHLO dari banyak hal, termasuk prettyprinting, verifikasi, dan inferensi bentuk. Berkat itu, kami telah memiliki cakupan opset yang signifikan, tetapi masih banyak yang harus dilakukan untuk meninjau kelengkapan implementasi yang ada dan memberikan implementasi baru jika belum ada.
Dokumen live ini ditujukan bagi developer dan pengguna untuk melacak progres pada berbagai aspek opset - spesifikasi, verifikasi, inferensi jenis, pretty pencetakan, penafsir, dll.
Cara menggunakannya
Progres operasi StableHLO, seperti yang disebutkan di baris terkait, pada aspek tertentu, seperti yang disebutkan dalam kolom terkait, dilacak menggunakan salah satu label pelacakan berikut.
- Label umum
- yes: ada implementasi yang komprehensif.
- tidak: tidak ada implementasinya, tetapi mengerjakannya adalah bagian dari roadmap. Perhatikan bahwa Pemverifikasi tidak akan pernah dapat diberi label "tidak" karena ODS sudah menerapkan beberapa verifikasi.
- Label yang disesuaikan untuk Pemverifikasi dan Inferensi Jenis
- yes: ada implementasi, dan disinkronkan dengan semantik SttableHLO.
- yes*: terdapat implementasi, dan disinkronkan dengan semantik XLA. Karena semantik XLA sering kali kurang didokumentasikan, kami menggunakan hlo_verifier.cc dan shape_inference.cc sebagai referensi.
- revisit: ada implementasi, tetapi tidak termasuk "yes" atau "yes*" - baik karena kita belum mengauditnya, atau karena kita telah menemukan masalah.
- ineligibility: tidak ada implementasi karena tidak memungkinkan. Misalnya, karena jenis hasil suatu operasi tidak dapat disimpulkan dari operand dan atributnya.
Status
Operasi StabilHLO | Spesifikasi | Verifikasi | Inferensi Jenis | Percetakan Keren | Interpreter |
---|---|---|---|---|---|
abs | ya | ya | ya | ya | ya |
add | ya | ya | ya | ya | ya |
after_all | ya | ya | ya | ya | ya |
all_gather | ya | lihat kembali | tidak | tidak ada | ya |
all_reduce | ya | lihat kembali | ya | tidak | ya |
all_to_all | ya | lihat kembali | ya | tidak | ya |
dan | ya | ya | ya | ya | ya |
atan2 | ya | ya | ya | ya | ya |
batch_norm_grad | ya | lihat kembali | ya | tidak | lihat kembali |
batch_norm_inference | ya | lihat kembali | ya | tidak | lihat kembali |
batch_norm_training | ya | lihat kembali | ya | tidak | lihat kembali |
bitcast_convert | ya | ya | tidak layak | ya | ya |
siaran | tidak | ya* | ya* | ya | lihat kembali |
broadcast_in_dim | ya | ya | tidak layak | ya | ya |
casing | ya | lihat kembali | ya | tidak | ya |
Cbrt | ya | ya | ya | ya | ya |
ceil | ya | ya | ya | ya | ya |
Cholesky | ya | ya | ya | ya | lihat kembali |
klem | ya | lihat kembali | ya | ya | ya |
collective_permute | ya | lihat kembali | ya | tidak | ya |
compare | ya | ya | ya | ya | ya |
kompleks | ya | ya | ya | ya | ya |
compute_reshape_shape | tidak | lihat kembali | tidak | ya | tidak |
concatenate | ya | ya | ya | ya | ya |
konstanta | ya | ya | ya | ya | ya |
melakukan konversi | ya | ya | tidak layak | ya | ya |
konvolusi | ya | ya | tidak layak | lihat kembali | tidak |
cosinus | ya | ya | ya | ya | ya |
count_leading_zeros | ya | ya | ya | ya | ya |
create_token | tidak | ya* | ya* | ya | lihat kembali |
penjumlahan replikasi silang | tidak | lihat kembali | ya* | tidak | lihat kembali |
cstr_reshapable | tidak | lihat kembali | tidak | ya | tidak |
custom_call | ya | ya | tidak layak | ya | ya |
bagi | ya | ya | ya | ya | ya |
titik | tidak | lihat kembali | tidak layak | ya | lihat kembali |
dot_general | ya | lihat kembali | tidak layak | tidak | ya |
dynamic_broadcast_in_dim | tidak | lihat kembali | tidak layak | tidak | tidak |
dynamic_conv | tidak | lihat kembali | tidak | tidak | tidak |
dynamic_gather | tidak | lihat kembali | lihat kembali | tidak | tidak |
dynamic_iota | tidak | lihat kembali | tidak layak | ya | tidak |
dynamic_pad | tidak | lihat kembali | tidak | ya | tidak |
dynamic_reshape | tidak | lihat kembali | tidak layak | ya | tidak |
dynamic_slice | ya | ya | ya | ya | ya |
dynamic_update_slice | ya | ya | ya | ya | ya |
einsum | tidak | lihat kembali | tidak | ya | lihat kembali |
berpangkat | ya | ya | ya | ya | ya |
exponential_minus_one | ya | ya | ya | ya | ya |
fft [ift] | ya | lihat kembali | ya | ya | tidak |
floor | ya | ya | ya | ya | ya |
mengumpulkan | ya | ya | ya | tidak | ya |
get_dimension_size | ya | ya | ya | ya | ya |
get_tuple_element | ya | ya | ya | ya | ya |
if | ya | lihat kembali | ya | tidak | ya |
gambar | ya | ya | ya | ya | ya |
dalam feed | ya | ya | tidak layak | tidak | ya |
Iota | ya | ya | tidak layak | ya | ya |
is_finite | ya | ya | ya | ya | ya |
log | ya | ya | ya | ya | ya |
log_plus_one | ya | ya | ya | ya | ya |
logistik | ya | ya | ya | ya | ya |
map | ya | lihat kembali | ya | tidak | ya |
maksimum | ya | ya | ya | ya | ya |
minimum | ya | ya | ya | ya | ya |
kalikan | ya | ya | ya | ya | ya |
negasi | ya | ya | ya | ya | ya |
bukan | ya | ya | ya | ya | ya |
optimization_barrier | ya | ya | ya | ya | ya |
atau | ya | ya | ya | ya | ya |
outfeed | ya | ya | ya | tidak | ya |
bantalan | ya | ya | ya | ya | ya |
partition_id | ya | ya | ya | ya | ya |
popcnt | ya | ya | ya | ya | ya |
daya | ya | ya | ya | ya | ya |
real | ya | ya | ya | ya | ya |
real_dynamic_slice | tidak | lihat kembali | tidak | ya | tidak |
diambil | ya | ya | tidak layak | tidak | ya |
reduce | ya | lihat kembali | ya | lihat kembali | ya |
reduce_precision | ya | ya | ya | ya | ya |
reduce_scatter | ya | lihat kembali | tidak | tidak ada | ya |
reduce_window | ya | lihat kembali | ya | tidak | ya |
sisa | ya | ya | ya | ya | ya |
replica_id | ya | ya | ya | ya | ya |
bentuk ulang | ya | ya | tidak layak | ya | ya |
return | tidak | lihat kembali | tidak layak | ya | ya |
reverse | ya | ya | ya | ya | ya |
RNG | ya | ya | ya | ya | lihat kembali |
rng_bit_generator | ya | lihat kembali | tidak layak | ya | lihat kembali |
round_nearest_afz | ya | ya | ya | ya | ya |
round_nearest_even | ya | ya | ya | ya | ya |
{i>rsqrt<i} | ya | ya | ya | ya | ya |
scatter | ya | lihat kembali | ya | tidak | ya |
pilih | ya | ya | ya | ya | ya |
select_and_scatter | ya | lihat kembali | ya | tidak | ya |
kirim | ya | ya | ya | tidak | ya |
set_dimension_size | tidak | ya* | ya* | ya | tidak |
shift_left | ya | ya | ya | ya | ya |
shift_right_arithmetic | ya | ya | ya | ya | ya |
shift_right_logical | ya | ya | ya | ya | ya |
tanda | ya | ya | ya | ya | ya |
sinus | ya | ya | ya | ya | ya |
slice | ya | ya | ya | tidak | ya |
sort | ya | ya | ya | tidak | ya |
sqrt | ya | ya | ya | ya | ya |
kurangi | ya | ya | ya | ya | ya |
Tanh | ya | ya | ya | ya | ya |
torch_index_select | tidak | lihat kembali | tidak | tidak | lihat kembali |
trace | tidak | lihat kembali | tidak | ya | lihat kembali |
{i>transpose<i} | ya | ya | ya | ya | ya |
triangular_solve | ya | lihat kembali | ya | tidak | lihat kembali |
tuple | ya | ya | ya | ya | ya |
unary_einsum | tidak | lihat kembali | tidak | ya | lihat kembali |
uniform_dequantize | ya | ya | ya | ya | tidak |
uniform_quantize | ya | lihat kembali | tidak layak | ya | tidak |
saat | ya | lihat kembali | ya | lihat kembali | ya |
Xor | ya | ya | ya | ya | ya |