MHLO থেকে StableHLO তৈরি করার সময়, আমরা প্রিটিপ্রিন্টিং, ভেরিফিকেশন এবং শেপ ইনফারেন্স সহ MHLO-এর অনেক কিছুর ইমপ্লিমেন্টেশন উত্তরাধিকারসূত্রে পেয়েছি। এর ফলে, আমাদের কাছে ইতিমধ্যেই অপসেটের একটি উল্লেখযোগ্য কভারেজ রয়েছে, কিন্তু বিদ্যমান ইমপ্লিমেন্টেশনগুলোর সম্পূর্ণতা পর্যালোচনা করা এবং যেখানে কোনো ইমপ্লিমেন্টেশন নেই সেখানে নতুন ইমপ্লিমেন্টেশন সরবরাহ করার জন্য এখনও অনেক কাজ বাকি আছে।
এই লাইভ ডকুমেন্টটি ডেভেলপার এবং ব্যবহারকারীদের জন্য অপসেটের বিভিন্ন দিক—যেমন স্পেসিফিকেশন, ভেরিফিকেশন, টাইপ ইনফারেন্স, প্রিটি প্রিন্টিং, ইন্টারপ্রেটার ইত্যাদির অগ্রগতি ট্র্যাক করার উদ্দেশ্যে তৈরি।
কীভাবে এটি ব্যবহার করবেন
সংশ্লিষ্ট সারিতে উল্লিখিত একটি StableHLO অপ-এর, সংশ্লিষ্ট কলামে উল্লিখিত একটি নির্দিষ্ট অ্যাস্পেক্টের উপর অগ্রগতি, নিম্নলিখিত ট্র্যাকিং লেবেলগুলির মধ্যে একটি ব্যবহার করে ট্র্যাক করা হয়।
- সাধারণ লেবেল
- হ্যাঁ , এর একটি ব্যাপক বাস্তবায়ন রয়েছে।
- না : এর কোনো বাস্তবায়ন নেই, তবে এটি নিয়ে কাজ করা রোডম্যাপের একটি অংশ। উল্লেখ্য যে, ভেরিফায়ারকে কখনোই "না" হিসেবে চিহ্নিত করা যাবে না, কারণ ওডিএস ইতিমধ্যেই কিছু যাচাইকরণ বাস্তবায়ন করে।
- ভেরিফায়ার এবং টাইপ ইনফারেন্সের জন্য কাস্টমাইজড লেবেল
- হ্যাঁ : এর একটি বাস্তবায়ন আছে, এবং এটি StableHLO-এর শব্দার্থের সাথে সামঞ্জস্যপূর্ণ।
- হ্যাঁ* : এর একটি বাস্তবায়ন আছে, এবং এটি XLA সিম্যান্টিক্সের সাথে সামঞ্জস্যপূর্ণ। যেহেতু XLA সিম্যান্টিক্স প্রায়শই অপর্যাপ্তভাবে নথিভুক্ত থাকে, তাই আমরা রেফারেন্স হিসেবে hlo_verifier.cc এবং shape_inference.cc ব্যবহার করছি।
- পুনরায় পর্যালোচনা : একটি বাস্তবায়ন আছে, কিন্তু এটি 'হ্যাঁ' বা 'হ্যাঁ*'-এর আওতায় পড়ে না - কারণ হয় আমরা এখনও এটি নিরীক্ষা করিনি, অথবা নিরীক্ষা করে কিছু সমস্যা পেয়েছি।
- অসম্ভব : এর কোনো বাস্তবায়ন নেই, কারণ এটি অসম্ভব। উদাহরণস্বরূপ, কোনো অপারেশনের ফলাফলের ধরন তার অপারেন্ড এবং অ্যাট্রিবিউট থেকে অনুমান করা যায় না।
অবস্থা
| StableHLO Op | স্পেসিফিকেশন | যাচাইকরণ | টাইপ ইনফারেন্স | সুন্দর প্রিন্টিং | দোভাষী |
|---|---|---|---|---|---|
| পেট | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| যোগ করুন | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| যাইহোক | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| সকলে একত্রিত | হ্যাঁ | পুনরায় পরিদর্শন করুন | না | না | হ্যাঁ |
| সব_হ্রাস | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | না | হ্যাঁ |
| সকলের কাছে_সকলের কাছে | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | না | হ্যাঁ |
| এবং | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| atan2 | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| ব্যাচ_নর্ম_গ্রেড | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | না | পুনরায় পরিদর্শন করুন |
| ব্যাচ_নর্ম_ইনফারেন্স | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | না | পুনরায় পরিদর্শন করুন |
| ব্যাচ_নর্ম_প্রশিক্ষণ | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | না | পুনরায় পরিদর্শন করুন |
| বিটকাস্ট_রূপান্তর | হ্যাঁ | হ্যাঁ | অসম্ভব | হ্যাঁ | হ্যাঁ |
| সম্প্রচার | না | হ্যাঁ* | হ্যাঁ* | হ্যাঁ | পুনরায় পরিদর্শন করুন |
| ব্রডকাস্ট_ইন_ডিম | হ্যাঁ | হ্যাঁ | অসম্ভব | হ্যাঁ | হ্যাঁ |
| মামলা | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | না | হ্যাঁ |
| সিবিআরটি | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| ছাদ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| কোলেস্কি | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | পুনরায় পরিদর্শন করুন |
| ক্ল্যাম্প | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| সম্মিলিত_সম্প্রচার | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | না | হ্যাঁ |
| সম্মিলিত_পরিবর্তন | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | না | হ্যাঁ |
| তুলনা করুন | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| জটিল | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| যৌগিক | হ্যাঁ | হ্যাঁ | অসম্ভব | হ্যাঁ | হ্যাঁ |
| সংযুক্ত করুন | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| ধ্রুবক | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| রূপান্তর করুন | হ্যাঁ | হ্যাঁ | অসম্ভব | হ্যাঁ | হ্যাঁ |
| কনভোলিউশন | হ্যাঁ | হ্যাঁ | অসম্ভব | পুনরায় পরিদর্শন করুন | হ্যাঁ |
| কোসাইন | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| শুরুতে শূন্যের সংখ্যা | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| টোকেন তৈরি করুন | না | হ্যাঁ* | হ্যাঁ* | হ্যাঁ | পুনরায় পরিদর্শন করুন |
| ক্রস-রেপ্লিকা-সাম | না | পুনরায় পরিদর্শন করুন | হ্যাঁ* | না | পুনরায় পরিদর্শন করুন |
| কাস্টম_কল | হ্যাঁ | হ্যাঁ | অসম্ভব | হ্যাঁ | হ্যাঁ |
| ভাগ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| বিন্দু | না | পুনরায় পরিদর্শন করুন | অসম্ভব | হ্যাঁ | পুনরায় পরিদর্শন করুন |
| ডট_জেনারেল | হ্যাঁ | পুনরায় পরিদর্শন করুন | অসম্ভব | না | হ্যাঁ |
| ডাইনামিক_ব্রডকাস্ট_ইন_ডিম | হ্যাঁ | হ্যাঁ | অসম্ভব | হ্যাঁ | পুনরায় পরিদর্শন করুন |
| ডাইনামিক_কনভ | হ্যাঁ | হ্যাঁ | অসম্ভব | পুনরায় পরিদর্শন করুন | পুনরায় পরিদর্শন করুন |
| ডাইনামিক_গ্যাদার | হ্যাঁ | হ্যাঁ | অসম্ভব | না | পুনরায় পরিদর্শন করুন |
| ডাইনামিক_আইওটা | হ্যাঁ | হ্যাঁ | অসম্ভব | হ্যাঁ | পুনরায় পরিদর্শন করুন |
| ডাইনামিক_প্যাড | হ্যাঁ | হ্যাঁ | অসম্ভব | হ্যাঁ | পুনরায় পরিদর্শন করুন |
| গতিশীল_পুনর্গঠন | হ্যাঁ | হ্যাঁ | অসম্ভব | হ্যাঁ | পুনরায় পরিদর্শন করুন |
| ডাইনামিক_স্লাইস | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| ডাইনামিক_আপডেট_স্লাইস | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| আইনসাম | না | পুনরায় পরিদর্শন করুন | না | হ্যাঁ | পুনরায় পরিদর্শন করুন |
| সূচকীয় | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| সূচকীয়_মাইনাস_এক | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| fft | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| মেঝে | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| সংগ্রহ করুন | হ্যাঁ | হ্যাঁ | হ্যাঁ | না | হ্যাঁ |
| get_dimension_size | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| get_tuple_element | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| যদি | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | না | হ্যাঁ |
| ছবি | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| ইনফিড | হ্যাঁ | হ্যাঁ | অসম্ভব | না | হ্যাঁ |
| আয়োটা | হ্যাঁ | হ্যাঁ | অসম্ভব | হ্যাঁ | হ্যাঁ |
| সসীম | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| লগ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| লগ_প্লাস_ওয়ান | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| লজিস্টিক | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| মানচিত্র | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | না | হ্যাঁ |
| সর্বোচ্চ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| সর্বনিম্ন | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| গুণ করুন | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| অস্বীকার করা | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| না | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| অপ্টিমাইজেশন_বাধা | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| অথবা | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| আউটফিড | হ্যাঁ | হ্যাঁ | হ্যাঁ | না | হ্যাঁ |
| প্যাড | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| পার্টিশন_আইডি | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| পপসিএনটি | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| ক্ষমতা | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| আসল | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| বাস্তব_গতিশীল_স্লাইস | না | পুনরায় পরিদর্শন করুন | না | হ্যাঁ | না |
| প্রাপ্ত | হ্যাঁ | হ্যাঁ | অসম্ভব | না | হ্যাঁ |
| হ্রাস করুন | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ |
| রিডিউস_প্রিসিশন | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| reduce_scatter | হ্যাঁ | পুনরায় পরিদর্শন করুন | না | না | হ্যাঁ |
| রিডিউস_উইন্ডো | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | না | হ্যাঁ |
| বাকি | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| রেপ্লিকা_আইডি | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| নতুন আকার দেওয়া | হ্যাঁ | হ্যাঁ | অসম্ভব | হ্যাঁ | হ্যাঁ |
| ফেরত | না | পুনরায় পরিদর্শন করুন | অসম্ভব | হ্যাঁ | হ্যাঁ |
| বিপরীত | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| আরএনজি | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | পুনরায় পরিদর্শন করুন |
| rng_bit_generator | হ্যাঁ | পুনরায় পরিদর্শন করুন | অসম্ভব | হ্যাঁ | পুনরায় পরিদর্শন করুন |
| round_nearest_afz | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| নিকটতম জোড় সংখ্যা | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| rsqrt | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| বিক্ষিপ্ত | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | না | হ্যাঁ |
| নির্বাচন করুন | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| সিলেক্ট_অ্যান্ড_স্ক্যাটার | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | না | হ্যাঁ |
| পাঠান | হ্যাঁ | হ্যাঁ | হ্যাঁ | না | হ্যাঁ |
| মাত্রা_আকার নির্ধারণ করুন | না | হ্যাঁ* | হ্যাঁ* | হ্যাঁ | না |
| shift_left | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| shift_right_arithmetic | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| shift_right_logical | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| চিহ্ন | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| সাইন | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| টুকরো | হ্যাঁ | হ্যাঁ | হ্যাঁ | না | হ্যাঁ |
| সাজানো | হ্যাঁ | হ্যাঁ | হ্যাঁ | না | হ্যাঁ |
| বর্গমূল | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| বিয়োগ করুন | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| ট্যান | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| তানহ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| টর্চ_সূচক_নির্বাচন | না | পুনরায় পরিদর্শন করুন | না | না | পুনরায় পরিদর্শন করুন |
| স্থানান্তরিত করুন | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| ত্রিভুজাকার_সমাধান | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | না | হ্যাঁ |
| টাপল | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| একমুখী_আইনসাম | না | পুনরায় পরিদর্শন করুন | না | হ্যাঁ | পুনরায় পরিদর্শন করুন |
| ইউনিফর্ম_ডিকোয়ান্টাইজ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
| ইউনিফর্ম_কোয়ান্টাইজ | হ্যাঁ | পুনরায় পরিদর্শন করুন | অসম্ভব | হ্যাঁ | হ্যাঁ |
| যখন | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ | পুনরায় পরিদর্শন করুন | হ্যাঁ |
| এক্সওআর | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ | হ্যাঁ |
কোয়ান্টাইজড অপারেশনের জন্য টাইপ অনুমান
উপরের টেবিলের 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 ।