באתחול של 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_gather
all_to_all
case
collective_permute
compare
concatenate
constant
dynamic_slice
dynamic_update_slice
gather
get_tuple_element
if
infeed
is_finite
map
optimization_barrier
outfeed
pad
recv
reduce
reduce_scatter
reduce_window
reverse
scatter
select_and_scatter
send
slice
sort
transpose
tuple
uniform_dequantized
while