StableHLO स्थिति

MHLO से StableHLO को बूटस्ट्रैप करते समय, हमने कई चीज़ों को MHLO से लागू किया है. इनमें प्रिटीप्रिंटिंग, पुष्टि, और आकार अनुमान शामिल हैं. इसकी वजह से, हमारे पास पहले से ही इस ओ सेट का काफ़ी कवरेज है. हालांकि, लागू करने के मौजूदा तरीकों की समीक्षा करने और उन्हें लागू करने के लिए, अभी बहुत कुछ करना बाकी है.

यह लाइव दस्तावेज़ डेवलपर और उपयोगकर्ताओं के लिए है, ताकि वे ऑप्टसेट के अलग-अलग पहलुओं की प्रोग्रेस को ट्रैक कर सकें. जैसे, स्पेसिफ़िकेशन, पुष्टि, टाइप अनुमान, सुंदर प्रिंटिंग, अनुवादक वगैरह.

इसका इस्तेमाल कैसे करें

StableHLO ऑप की प्रोग्रेस को नीचे दिए गए ट्रैकिंग लेबल में से किसी एक का इस्तेमाल करके ट्रैक किया जाता है. यह जानकारी, किसी खास पहलू पर लागू की जाती है, जैसा कि इसके कॉलम में बताया गया है.

  • सामान्य लेबल
    • yes: इसे लागू करने के कई तरीके हैं.
    • no: इसे लागू करने की कोई प्रोसेस नहीं है, लेकिन इस पर काम करना रोडमैप का हिस्सा है. ध्यान रखें कि पुष्टि करने वाले को कभी भी "नहीं" के तौर पर लेबल नहीं किया जा सकता, क्योंकि ओडीएस पहले से ही कुछ पुष्टि लागू करता है.
  • पुष्टि करने वाले और टाइप अनुमान के लिए पसंद के मुताबिक लेबल
    • yes: इसे लागू किया गया है और यह StableHLO के सिमैंटिक के मुताबिक है.
    • yes*: इसे लागू किया गया है और यह एक्सएलए सिमैंटिक के साथ सिंक है. XLA के सिमैंटिक का दस्तावेज़ अक्सर कम होता है, इसलिए हम रेफ़रंस के तौर पर hlo_verifier.cc और shape_inference.cc का इस्तेमाल कर रहे हैं.
    • revisit: इसे लागू करने के लिए एक तरीका मौजूद है, लेकिन यह "yes" या "yes*" में नहीं आता है. इसकी वजह यह है कि या तो हमने अभी तक इसका ऑडिट नहीं किया है या फिर हमें कुछ समस्याएं मिली हैं.
    • नामुमकिन नहीं: इसे लागू नहीं किया जा रहा है, क्योंकि यह संभव नहीं है. उदाहरण के लिए, किसी ऑप के नतीजे के टाइप का अनुमान उसके ऑपरेंड और एट्रिब्यूट से नहीं लगाया जा सकता.

स्थिति

स्टेबलएचएलओ ओपी खास जानकारी पुष्टि करने का तरीका टाइप अनुमान प्रिटी प्रिंटिंग अनुवादक
abs हां हाँ हाँ हाँ हां
जोड़ें हां हाँ हाँ हाँ हां
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 हां
सीबीआरटी हां हाँ हाँ हाँ हां
सील हां हाँ हाँ हाँ हां
कोलेस्की हां हाँ हाँ हां फिर से जाना
क्लैम्प हां फिर से जाना हां हाँ हां
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 हां हाँ हाँ हाँ हां
एफ़एफ़टी हां फिर से जाना हां हां no
मंज़िल हां हाँ हाँ हाँ हां
इकट्ठा करना हां हाँ हां no हां
get_dimension_size हां हाँ हाँ हाँ हां
get_tuple_element हां हाँ हाँ हाँ हां
if हां फिर से जाना हां no हां
Imag हां हाँ हाँ हाँ हां
इनफ़ीड हां हां संभव नहीं है no हां
आयटा हां हां संभव नहीं है हां हां
is_finite हां हाँ हाँ हाँ हां
log हां हाँ हाँ हाँ हां
log_plus_one हां हाँ हाँ हाँ हां
लॉजिस्टिक हां हाँ हाँ हाँ हां
मैप हां फिर से जाना हां no हां
ज़्यादा से ज़्यादा हां हाँ हाँ हाँ हां
कम से कम हां हाँ हाँ हाँ हां
गुणा हां हाँ हाँ हाँ हां
नेगेटिव हां हाँ हाँ हाँ हां
नहीं हां हाँ हाँ हाँ हां
optimization_barrier हां हाँ हाँ हाँ हां
या हां हाँ हाँ हाँ हां
आउटफ़ीड हां हाँ हां no हां
पैड हां हाँ हाँ हाँ हां
partition_id हां हाँ हाँ हाँ हां
पॉप्संट हां हाँ हाँ हाँ हां
शारीरिक गतिविधि से बनी पावर का डेटा हां हाँ हाँ हाँ हां
रीयल हां हाँ हाँ हाँ हां
real_dynamic_slice no फिर से जाना no हां no
Recv हां हां संभव नहीं है no हां
घटाएं हां फिर से जाना हां फिर से जाना हां
reduce_precision हां हाँ हाँ हाँ हां
reduce_scatter हां फिर से जाना no no हां
reduce_window हां फिर से जाना हां no हां
शेष हां हाँ हाँ हाँ हां
replica_id हां हाँ हाँ हाँ हां
आकार बदलें हां हां संभव नहीं है हां हां
return no फिर से जाना संभव नहीं है हां हां
reverse हां हाँ हाँ हाँ हां
आरएनजी हां हाँ हाँ हां फिर से जाना
rng_bit_generator हां फिर से जाना संभव नहीं है हां फिर से जाना
round_nearest_afz हां हाँ हाँ हाँ हां
round_nearest_even हां हाँ हाँ हाँ हां
आरएसक्यूर्ट हां हाँ हाँ हाँ हां
scatter हां फिर से जाना हां no हां
चुनें हां हाँ हाँ हाँ हां
select_and_scatter हां फिर से जाना हां no हां
भेजें हां हाँ हां no हां
set_dimension_size no हां* हां* हां no
shift_left हां हाँ हाँ हाँ हां
shift_right_arithmetic हां हाँ हाँ हाँ हां
shift_right_logical हां हाँ हाँ हाँ हां
हस्ताक्षर हां हाँ हाँ हाँ हां
ज्या हां हाँ हाँ हाँ हां
स्‍लाइस हां हाँ हां no हां
क्रम से लगाएं हां हाँ हां no हां
sqrt हां हाँ हाँ हाँ हां
घटाएं हां हाँ हाँ हाँ हां
टैन हां हाँ हाँ हाँ हां
torch_index_select no फिर से जाना no no फिर से जाना
ट्रांसपोज़ करें हां हाँ हाँ हाँ हां
triangular_solve हां फिर से जाना हां no फिर से जाना
tuple हां हाँ हाँ हाँ हां
unary_einsum no फिर से जाना no हां फिर से जाना
uniform_dequantize हां हाँ हाँ हां no
uniform_quantize हां फिर से जाना संभव नहीं है हां no
साथ में हां फिर से जाना हां फिर से जाना हां
एक्सओर हां हाँ हाँ हाँ हां

संख्या वाली कार्रवाइयों के लिए टाइप अनुमान

ऊपर दी गई टेबल में मौजूद Type Inference कॉलम का मकसद, संख्या नहीं दिखाने वाली कार्रवाइयों पर फ़ोकस करना है. ज़्यादातर क्वांटाइज़्ड ऑपरेशन के लिए, नतीजा किस तरह का है, इसका अनुमान नहीं लगाया जा सकता, क्योंकि नतीजे के टाइप के क्वांटाइज़ेशन पैरामीटर, ऑपरेंड से जुड़े पैरामीटर से अलग हो सकते हैं. कुछ ऐसे मामलों को छोड़कर जिनमें, ऑपरेंड और नतीजे के टाइप एक जैसे होने चाहिए या ऑप में वे सीमाएं हैं जो नतीजे के टाइप का अनुमान लगाने में मददगार हैं, ऐसे ऑपरेशन नीचे दिए गए हैं: all_gather, all_to_all, case, collective_permute, compare, concatenate, constant, dynamic_slice, dynamic_update_slice, gather, get_tuple_element, if, infeed, {2/, case, case, case, case, case, case, case, case, case, case, case, case, case, case, case, case, case, case, case}is_finitemapoptimization_barrieroutfeedpadrecvreducereduce_scatterreduce_windowreversescatterselect_and_scattersendslicesorttransposetupleuniform_dequantizedwhile