حالة StableHLO

عند بدء تشغيل 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_allmap,all_gathercasecollective_permutecompareconcatenateconstantdynamic_slicedynamic_update_slicegatherget_tuple_elementifinfeedis_finiteoptimization_barrieroutfeedpadrecvreducereduce_scatterreduce_windowreversescatterselect_and_scattersendslicesorttransposetupleuniform_dequantizedwhile