عند بدء تشغيل StableHLO من MHLO، يكون قد وصلنا إلى تنفيذ MHLO للعديد من الأشياء، بما في ذلك الطباعة الرائعة والتحقّق واستنتاج الشكل. لهذا السبب، تتوفّر لدينا تغطية كبيرة للمحاولة، ولكن لا يزال هناك الكثير من الإجراءات التي يجب تنفيذها لمراجعة عمليات التنفيذ الحالية للتأكّد من اكتمالها وتوفير عمليات تنفيذ جديدة في حال عدم توفّرها.
هذه الوثيقة المباشرة مخصصة للمطورين والمستخدمين لتتبع التقدم في جوانب مختلفة من عملية التشغيل - المواصفات، والتحقق، واستنتاج النوع، والطباعة الجميلة، والترجمة الفورية، وما إلى ذلك.
كيفية استخدام فئة التدقيق الجديدة
يتم تتبع تقدم عملية StableHLO op، كما هو مذكور في الصف المقابل، من جانب معين، كما هو مذكور في العمود المقابل، باستخدام أحد تصنيفات التتبع التالية.
- التصنيفات العامة
- نعم: هناك عملية تنفيذ شاملة.
- لا: ليست هناك عملية تنفيذ، ولكن العمل على ذلك هو جزء من خارطة الطريق. تجدر الإشارة إلى أنّه لا يمكن مطلقًا تصنيف جهة إثبات الملكية على أنّها "لا" لأنّ أنظمة ODS تنفِّذ بعض عمليات التحقّق من قبل.
- تصنيفات مخصّصة لـ "أداة التحقّق" و"استنتاج النوع"
- yes: تتوفّر عملية تنفيذ وتتزامن مع دلالات StableHLO.
- yes*: تتوفّر عملية تنفيذ وتتم مزامنتها مع دلالات XLA. وبما أنّ دلالات XLA تكون غالبًا غير موثقة، نستخدم hlo_verifier.cc وshape_inference.cc كمرجع.
- revisit: هناك عملية تنفيذ، ولكنّها لا تندرج ضمن "نعم" أو "نعم*"، إما لأنّنا لم ندقّق فيها بعد، أو لأنّنا رصدنا مشاكل وعثر عليها.
- غير ممكن: لا يوجد تنفيذ لأنها غير قابلة للتنفيذ. على سبيل المثال، نظرًا لأنه لا يمكن استنتاج نوع نتيجة عملية op من المعاملات والسمات الخاصة بها.
الحالة
لعبة StableHLO Op | المواصفات | إثبات الملكية | استنتاج النوع | طباعة جميلة | الترجمة الفورية |
---|---|---|---|---|---|
abs | نعم | نعم | نعم | نعم | نعم |
إضافة | نعم | نعم | نعم | نعم | نعم |
after_all | نعم | نعم | نعم | نعم | نعم |
all_gather | نعم | إعادة زيارة | لا | لا | نعم |
all_reduce | نعم | إعادة زيارة | نعم | لا | نعم |
all_to_all | نعم | إعادة زيارة | نعم | لا | نعم |
و | نعم | نعم | نعم | نعم | نعم |
atan2 | نعم | نعم | نعم | نعم | نعم |
batch_norm_grad | نعم | إعادة زيارة | نعم | لا | إعادة زيارة |
batch_norm_inference | نعم | إعادة زيارة | نعم | لا | إعادة زيارة |
batch_norm_training | نعم | إعادة زيارة | نعم | لا | إعادة زيارة |
bitcast_convert | نعم | نعم | غير ممكن | نعم | نعم |
رسالة بث | لا | نعم* | نعم* | نعم | إعادة زيارة |
broadcast_in_dim | نعم | نعم | غير ممكن | نعم | نعم |
حافظة | نعم | إعادة زيارة | نعم | لا | نعم |
نظام كربت | نعم | نعم | نعم | نعم | نعم |
ceil | نعم | نعم | نعم | نعم | نعم |
شلال | نعم | نعم | نعم | نعم | إعادة زيارة |
مشبك | نعم | إعادة زيارة | نعم | نعم | نعم |
collective_broadcast | نعم | إعادة زيارة | نعم | لا | نعم |
collective_permute | نعم | إعادة زيارة | نعم | لا | نعم |
مقارنة | نعم | نعم | نعم | نعم | نعم |
معقد | نعم | نعم | نعم | نعم | نعم |
مُركّب | نعم | نعم | غير ممكن | نعم | نعم |
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 | نعم | إعادة زيارة | نعم | لا | نعم |
تصور | نعم | نعم | نعم | نعم | نعم |
إعلان ضمن الخلاصة | نعم | نعم | غير ممكن | لا | نعم |
أيوتا | نعم | نعم | غير ممكن | نعم | نعم |
is_finite | نعم | نعم | نعم | نعم | نعم |
log | نعم | نعم | نعم | نعم | نعم |
log_plus_one | نعم | نعم | نعم | نعم | نعم |
لوجستية | نعم | نعم | نعم | نعم | نعم |
خريطة | نعم | إعادة زيارة | نعم | لا | نعم |
أعلى قيمة | نعم | نعم | نعم | نعم | نعم |
أقل قيمة | نعم | نعم | نعم | نعم | نعم |
ضرب | نعم | نعم | نعم | نعم | نعم |
نفي | نعم | نعم | نعم | نعم | نعم |
ليس | نعم | نعم | نعم | نعم | نعم |
optimization_barrier | نعم | نعم | نعم | نعم | نعم |
أو | نعم | نعم | نعم | نعم | نعم |
خارج الخلاصة | نعم | نعم | نعم | لا | نعم |
وسادة | نعم | نعم | نعم | نعم | نعم |
partition_id | نعم | نعم | نعم | نعم | نعم |
موسيقى بوبكونت | نعم | نعم | نعم | نعم | نعم |
الطاقة | نعم | نعم | نعم | نعم | نعم |
الريال | نعم | نعم | نعم | نعم | نعم |
real_dynamic_slice | لا | إعادة زيارة | لا | نعم | لا |
Recv | نعم | نعم | غير ممكن | لا | نعم |
reduce | نعم | إعادة زيارة | نعم | إعادة زيارة | نعم |
reduce_precision | نعم | نعم | نعم | نعم | نعم |
reduce_scatter | نعم | إعادة زيارة | لا | لا | نعم |
reduce_window | نعم | إعادة زيارة | نعم | لا | نعم |
الباقي | نعم | نعم | نعم | نعم | نعم |
replica_id | نعم | نعم | نعم | نعم | نعم |
إعادة التشكيل | نعم | نعم | غير ممكن | نعم | نعم |
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 | نعم | نعم | نعم | نعم | نعم |
علامة | نعم | نعم | نعم | نعم | نعم |
جيب الزاوية | نعم | نعم | نعم | نعم | نعم |
slice | نعم | نعم | نعم | لا | نعم |
ترتيب | نعم | نعم | نعم | لا | نعم |
sqrt | نعم | نعم | نعم | نعم | نعم |
الطرح | نعم | نعم | نعم | نعم | نعم |
تانه | نعم | نعم | نعم | نعم | نعم |
torch_index_select | لا | إعادة زيارة | لا | لا | إعادة زيارة |
تبديل الموضع | نعم | نعم | نعم | نعم | نعم |
triangular_solve | نعم | إعادة زيارة | نعم | لا | إعادة زيارة |
tuple | نعم | نعم | نعم | نعم | نعم |
unary_einsum | لا | إعادة زيارة | لا | نعم | إعادة زيارة |
uniform_dequantize | نعم | نعم | نعم | نعم | لا |
uniform_quantize | نعم | إعادة زيارة | غير ممكن | نعم | لا |
بينما | نعم | إعادة زيارة | نعم | إعادة زيارة | نعم |
إكسور | نعم | نعم | نعم | نعم | نعم |
استنتاج نوع العمليات الكمية
يهدف عمود Type Inference
من الجدول أعلاه إلى التركيز
على العمليات غير الكمية. بالنسبة لمعظم العمليات الكمية، ليس
من الممكن استنتاج نوع النتيجة لأن معلمات تحديد الكمي لأنواع النتائج قد تختلف عن معاملات المعاملات. باستثناء
بعض الحالات التي يجب أن تتطابق فيها أنواع المعامل والنتائج بشكل متطابق، أو {1/2}, {1/2}, {1/2}, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
, all_to_all
map
,all_gather
case
collective_permute
compare
concatenate
constant
dynamic_slice
dynamic_update_slice
gather
get_tuple_element
if
infeed
is_finite
optimization_barrier
outfeed
pad
recv
reduce
reduce_scatter
reduce_window
reverse
scatter
select_and_scatter
send
slice
sort
transpose
tuple
uniform_dequantized
while