סטטוס StableHLO

באתחול של StableHLO מ-MHLO, עברנו בירושה ל-MHLO שההטמעה מתבצעת מבחינת הרבה דברים, כולל הדפסה יפה (preprinting), אימות והֶקֵּשׁ מהצורה. לכן כבר יש לנו כיסוי משמעותי של היוזמה, אבל עדיין יש הרבה מה לעשות כדי לבדוק את ההטמעות הקיימות ולוודא שהן מלאות, ואיפה הן לא קיימות.

המסמך בזמן אמת מיועד למפתחים ולמשתמשים, כדי לעקוב אחר ההתקדמות בהיבטים שונים של התפעול – מפרט, אימות, הסקת סוג, הדפסה יפה, מתורגמן וכו'.

איך להשתמש בעמודה

המערכת עוקבת אחרי ההתקדמות של פעולה ב-StableHLO, כפי שצוין בשורה המתאימה, בהיבט מסוים, כמו שצוין בעמודה המתאימה, באמצעות אחת מתוויות המעקב הבאות.

  • תוויות גנריות
    • yes: יש הטמעה מקיפה.
    • no: אין הטמעה של האפליקציה, אבל התהליך הזה הוא חלק ממפת הדרכים. שימו לב שלעולם אי אפשר לתייג את מאמת החשבונות כ "לא" כי ה-ODS כבר מיישם אימות מסוים.
  • תוויות מותאמות אישית לאימות ולמסקנות לגבי סוג
    • yes: יש הטמעה והיא מסונכרנת עם הסמנטיקה של StableHLO.
    • yes*: יש הטמעה והיא מסונכרנת עם הסמנטיקה של XLA. לעיתים קרובות, הסמנטיקה של XLA לא מתועדת כראוי, ולכן נשתמש ב-hlo_verifier.cc וב-shape_inference.cc בתור קובץ העזר.
    • revisit: יש הטמעה, אבל היא לא מסווגת בתור "כן" או "כן*" – כי לא נבדקה עדיין או כי מצאנו ומצאנו בעיות.
    • בלתי אפשרי: אין הטמעה כי היא בלתי מעשית. לדוגמה, מכיוון שלא ניתן להסיק את סוג התוצאה של פעולה מהאופרנדים ומהמאפיינים שלו.

סטטוס

הפעלה של StableHLO מפרט אימות הסקת מסקנות הדפסה יפה תרגום שיחה פעילה
abs כן כן כן כן כן
add כן כן כן כן כן
after_all כן כן כן כן כן
all_gather כן חזרה no no כן
all_reduce כן חזרה כן no כן
all_to_all כן חזרה כן no כן
וגם כן כן כן כן כן
atan2 כן כן כן כן כן
batch_norm_grad כן חזרה כן no חזרה
batch_norm_inference כן חזרה כן no חזרה
batch_norm_training כן חזרה כן no חזרה
bitcast_convert כן כן לא בר ביצוע כן כן
שידור no כן* כן* כן חזרה
broadcast_in_dim כן כן לא בר ביצוע כן כן
כיסוי כן חזרה כן no כן
Cbrt כן כן כן כן כן
סייל כן כן כן כן כן
חורסקי כן כן כן כן חזרה
מהדק כן חזרה כן כן כן
collective_broadcast כן חזרה כן no כן
collective_permute כן חזרה כן no כן
השוואה כן כן כן כן כן
מורכב כן כן כן כן כן
מורכב כן כן לא בר ביצוע כן כן
concatenate כן כן כן כן כן
קבוע כן כן כן כן כן
להשלים המרה כן כן לא בר ביצוע כן כן
קונבולציה כן כן לא בר ביצוע חזרה כן
קוסינוס כן כן כן כן כן
count_leading_zeros כן כן כן כן כן
create_token no כן* כן* כן חזרה
סכום בין עותקים no חזרה כן* no חזרה
custom_call כן כן לא בר ביצוע כן כן
חילוק כן כן כן כן כן
נקודה no חזרה לא בר ביצוע כן חזרה
dot_general כן חזרה לא בר ביצוע no כן
dynamic_broadcast_in_dim כן כן לא בר ביצוע כן חזרה
dynamic_conv כן כן לא בר ביצוע חזרה חזרה
dynamic_gather כן כן לא בר ביצוע no חזרה
dynamic_iota כן כן לא בר ביצוע כן חזרה
dynamic_pad כן כן לא בר ביצוע כן חזרה
dynamic_reshape כן כן לא בר ביצוע כן חזרה
dynamic_slice כן כן כן כן כן
dynamic_update_slice כן כן כן כן כן
einsum no חזרה no כן חזרה
מעריכיות כן כן כן כן כן
exponential_minus_one כן כן כן כן כן
fft כן חזרה כן כן no
פונקציית הרצפה כן כן כן כן כן
לאסוף כן כן כן no כן
get_dimension_size כן כן כן כן כן
get_tuple_element כן כן כן כן כן
if כן חזרה כן no כן
Imag כן כן כן כן כן
בגוף הפיד כן כן לא בר ביצוע no כן
iota כן כן לא בר ביצוע כן כן
is_finite כן כן כן כן כן
log כן כן כן כן כן
log_plus_one כן כן כן כן כן
לוגיסטיקה כן כן כן כן כן
מפה כן חזרה כן no כן
מקסימום כן כן כן כן כן
מינימום כן כן כן כן כן
כפל כן כן כן כן כן
לשלול כן כן כן כן כן
לא כן כן כן כן כן
optimization_barrier כן כן כן כן כן
או כן כן כן כן כן
מודעות וידאו Outstream כן כן כן no כן
לוח כן כן כן כן כן
partition_id כן כן כן כן כן
Popcnt כן כן כן כן כן
כוח כן כן כן כן כן
ריאל כן כן כן כן כן
real_dynamic_slice no חזרה no כן no
הקלטה כן כן לא בר ביצוע no כן
להפחית כן חזרה כן חזרה כן
reduce_precision כן כן כן כן כן
reduce_scatter כן חזרה no no כן
reduce_window כן חזרה כן no כן
שארית כן כן כן כן כן
replica_id כן כן כן כן כן
לעצב מחדש כן כן לא בר ביצוע כן כן
return no חזרה לא בר ביצוע כן כן
הפוך כן כן כן כן כן
Rng כן כן כן כן חזרה
rng_bit_generator כן חזרה לא בר ביצוע כן חזרה
round_nearest_afz כן כן כן כן כן
round_nearest_even כן כן כן כן כן
Rsqrt כן כן כן כן כן
scatter כן חזרה כן no כן
בחירה כן כן כן כן כן
select_and_scatter כן חזרה כן no כן
שליחה כן כן כן no כן
set_dimension_size no כן* כן* כן no
shift_left כן כן כן כן כן
shift_right_arithmetic כן כן כן כן כן
shift_right_logical כן כן כן כן כן
סמל כן כן כן כן כן
סינוס כן כן כן כן כן
פרוסה (slice) כן כן כן no כן
מיון כן כן כן no כן
sqrt כן כן כן כן כן
להפחית כן כן כן כן כן
טאן כן כן כן כן כן
torch_index_select no חזרה no no חזרה
להחליף מיקום כן כן כן כן כן
triangular_solve כן חזרה כן no חזרה
tuple כן כן כן כן כן
unary_einsum no חזרה no כן חזרה
uniform_dequantize כן כן כן כן no
uniform_quantize כן חזרה לא בר ביצוע כן no
בזמן כן חזרה כן חזרה כן
Xor כן כן כן כן כן

הקלדת מסקנות לפעולות כמותיות

העמודה Type Inference מהטבלה שלמעלה מיועדת להתמקד בפעולות שלא מבוססות על כימות. עבור רוב הפעולות הכמותיות, אי אפשר להסיק את סוג התוצאה כי הפרמטרים של הקוונטיזציה של סוגי התוצאות עשויים להיות שונים מאלה של הפעולות. למעט מקרים מסוימים, למעט מקרים שבהם סוגים של אופרנד ותוצאות חייבים להתאים באופן זהה, אוall_gatherall_to_allcasecollective_permutecompareconcatenateconstantdynamic_slicedynamic_update_slicegatherget_tuple_elementifinfeedis_finitemapoptimization_barrieroutfeedpadrecvreducereduce_scatterreduce_windowreversescatterselect_and_scattersendslicesorttransposetupleuniform_dequantizedwhile