Durante il bootstrap di StableHLO da MHLO, abbiamo ereditato l'implementazione di MHLO di molte cose, tra cui la stampa del grazia, la verifica e l'inferenza della forma. Grazie a ciò, abbiamo già una copertura significativa dell'opset, ma c'è ancora molto da fare per esaminare la completezza delle implementazioni esistenti e fornire nuove implementazioni dove non ne esistono.
Questo documento in tempo reale è destinato a sviluppatori e utenti per tenere traccia dei progressi relativi a vari aspetti dell'opset: specifica, verifica, inferenza del tipo, stampa, interprete e così via.
Modalità d'uso
L'avanzamento di un'operazione StableHLO, come indicato nella riga corrispondente, su un determinato aspetto, come indicato nella colonna corrispondente, viene monitorato utilizzando una delle seguenti etichette di monitoraggio.
- Etichette generiche
- yes: l'implementazione è completa.
- no: non è prevista alcuna implementazione, ma lavorarci fa parte della tabella di marcia. Tieni presente che Verifier non può mai essere etichettata come "no" perché l'ODS implementa già alcune verifiche.
- Etichette personalizzate per verificatore e inferenza dei tipi
- yes: esiste un'implementazione ed è sincronizzata con la semantica StableHLO.
- yes*: esiste un'implementazione ed è sincronizzata con la semantica dell'XLA. Poiché la semantica XLA è spesso sottodocumentata, usiamo hlo_verifier.cc e shape_inference.cc come riferimento.
- revisit: esiste un'implementazione, ma non rientra tra "sì" o "sì*", perché non l'abbiamo ancora verificata o perché sono stati rilevati problemi.
- infeasible (non fattibile): non c'è alcuna implementazione perché è impossibile. Ad esempio, poiché il tipo di risultato di un'operazione non può essere dedotto dai suoi operandi e attributi.
Stato
Op StableHLO | Specifiche | Verifica | Tipo di inferenza | Graziosa stampa | Interprete |
---|---|---|---|---|---|
abs | sì | sì | sì | sì | sì |
add | sì | sì | sì | sì | sì |
after_all | sì | sì | sì | sì | sì |
all_gather | sì | rivedere | no | no | sì |
all_reduce | sì | rivedere | sì | no | sì |
all_to_all | sì | rivedere | sì | no | sì |
e | sì | sì | sì | sì | sì |
atan2 | sì | sì | sì | sì | sì |
batch_norm_grad | sì | rivedere | sì | no | rivedere |
batch_norm_inference | sì | rivedere | sì | no | rivedere |
batch_norm_training | sì | rivedere | sì | no | rivedere |
bitcast_convert | sì | sì | impossibile | sì | sì |
annuncio | no | sì* | sì* | sì | rivedere |
broadcast_in_dim | sì | sì | impossibile | sì | sì |
richiesta | sì | rivedere | sì | no | sì |
CBRT | sì | sì | sì | sì | sì |
ceil | sì | sì | sì | sì | sì |
Cholesky | sì | sì | sì | sì | rivedere |
clampare | sì | rivedere | sì | sì | sì |
collective_permute | sì | rivedere | sì | no | sì |
compare | sì | sì | sì | sì | sì |
complesso | sì | sì | sì | sì | sì |
compute_reshape_shape | no | rivedere | no | sì | no |
concatenate | sì | sì | sì | sì | sì |
costante | sì | sì | sì | sì | sì |
effettuare una conversione | sì | sì | impossibile | sì | sì |
convoluzione | sì | sì | impossibile | rivedere | no |
coseno | sì | sì | sì | sì | sì |
count_leading_zeros | sì | sì | sì | sì | sì |
create_token | no | sì* | sì* | sì | rivedere |
somma di replica incrociata | no | rivedere | sì* | no | rivedere |
cstr_reshapable | no | rivedere | no | sì | no |
custom_call | sì | sì | impossibile | sì | sì |
divisione | sì | sì | sì | sì | sì |
punto | no | rivedere | impossibile | sì | rivedere |
dot_general | sì | rivedere | impossibile | no | sì |
dynamic_broadcast_in_dim | no | rivedere | impossibile | no | no |
dynamic_conv | no | rivedere | no | no | no |
dynamic_gather | no | rivedere | rivedere | no | no |
dynamic_iota | no | rivedere | impossibile | sì | no |
dynamic_pad | no | rivedere | no | sì | no |
dynamic_reshape | no | rivedere | impossibile | sì | no |
dynamic_slice | sì | sì | sì | sì | sì |
dynamic_update_slice | sì | sì | sì | sì | sì |
einsum | no | rivedere | no | sì | rivedere |
esponenziale | sì | sì | sì | sì | sì |
exponential_minus_one | sì | sì | sì | sì | sì |
fft | sì | rivedere | sì | sì | no |
floor | sì | sì | sì | sì | sì |
raccogliere | sì | sì | sì | no | sì |
get_dimension_size | sì | sì | sì | sì | sì |
get_tuple_element | sì | sì | sì | sì | sì |
if | sì | rivedere | sì | no | sì |
immaginazione | sì | sì | sì | sì | sì |
annuncio in-feed | sì | sì | impossibile | no | sì |
iota | sì | sì | impossibile | sì | sì |
is_finite | sì | sì | sì | sì | sì |
log | sì | sì | sì | sì | sì |
log_plus_one | sì | sì | sì | sì | sì |
logistica | sì | sì | sì | sì | sì |
mappa | sì | rivedere | sì | no | sì |
massima | sì | sì | sì | sì | sì |
minima | sì | sì | sì | sì | sì |
moltiplicazione | sì | sì | sì | sì | sì |
negare | sì | sì | sì | sì | sì |
non | sì | sì | sì | sì | sì |
optimization_barrier | sì | sì | sì | sì | sì |
o | sì | sì | sì | sì | sì |
outfeed | sì | sì | sì | no | sì |
cuscinetto | sì | sì | sì | sì | sì |
partition_id | sì | sì | sì | sì | sì |
popcnt | sì | sì | sì | sì | sì |
potenza | sì | sì | sì | sì | sì |
reale | sì | sì | sì | sì | sì |
real_dynamic_slice | no | rivedere | no | sì | no |
recv | sì | sì | impossibile | no | sì |
reduce | sì | rivedere | sì | rivedere | sì |
reduce_precision | sì | sì | sì | sì | sì |
reduce_scatter | sì | rivedere | no | no | sì |
reduce_window | sì | rivedere | sì | no | sì |
resto | sì | sì | sì | sì | sì |
replica_id | sì | sì | sì | sì | sì |
rimodellare | sì | sì | impossibile | sì | sì |
return | no | rivedere | impossibile | sì | sì |
inverti | sì | sì | sì | sì | sì |
rng | sì | sì | sì | sì | rivedere |
rng_bit_generator | sì | rivedere | impossibile | sì | rivedere |
round_nearest_afz | sì | sì | sì | sì | sì |
round_nearest_even | sì | sì | sì | sì | sì |
rsqrt | sì | sì | sì | sì | sì |
scatter | sì | rivedere | sì | no | sì |
seleziona | sì | sì | sì | sì | sì |
select_and_scatter | sì | rivedere | sì | no | sì |
Invia | sì | sì | sì | no | sì |
set_dimension_size | no | sì* | sì* | sì | no |
shift_left | sì | sì | sì | sì | sì |
shift_right_arithmetic | sì | sì | sì | sì | sì |
shift_right_logical | sì | sì | sì | sì | sì |
firmare | sì | sì | sì | sì | sì |
seno | sì | sì | sì | sì | sì |
sezione | sì | sì | sì | no | sì |
ordinare | sì | sì | sì | no | sì |
sqrt | sì | sì | sì | sì | sì |
subtract | sì | sì | sì | sì | sì |
Tanh | sì | sì | sì | sì | sì |
torch_index_select | no | rivedere | no | no | rivedere |
trace | no | rivedere | no | sì | rivedere |
trasponi | sì | sì | sì | sì | sì |
triangular_solve | sì | rivedere | sì | no | rivedere |
tuple | sì | sì | sì | sì | sì |
unary_einsum | no | rivedere | no | sì | rivedere |
uniform_dequantize | sì | sì | sì | sì | no |
uniform_quantize | sì | rivedere | impossibile | sì | no |
mentre | sì | rivedere | sì | rivedere | sì |
Xor | sì | sì | sì | sì | sì |