-mpmd-pipeline-scheduler
একটি প্রদত্ত পাইপলাইন সময়সূচী প্রাপ্ত করার জন্য টুকরাগুলিকে পুনরায় সাজায়৷
একটি পাইপলাইন সময়সূচী অনুযায়ী টুকরা পুনরায় সাজায়। সময়সূচী অ্যালগরিদম ফাংশনের আগে ঘটে এমন একটি ঘটনার উপর নির্ভর করে যেটি f1 এবং f2 আর্গুমেন্ট হিসাবে দুটি অংশ নেয় এবং f2 এর আগে f1 নির্ধারণ করা আবশ্যক কিনা তা পরীক্ষা করে। এই ফাংশনটির প্রয়োজন যে:
-
f1এবংf2একই জালের জন্য বরাদ্দ করা হয়েছে, -
f1এবংf2উভয়ই শিডিউলিং ইউনিট (যেমন, কল_কাউন্টার সংজ্ঞায়িত ব্যবহারকারীর সংজ্ঞায়িত টুকরা), এবং -
f1f2উপর নির্ভর করে না এবংf2f1উপর নির্ভর করে না। এবং এটি অনেক অত্যাধুনিক পাইপলাইন সময়সূচী প্রকাশ করার জন্য যথেষ্ট হওয়া উচিত।
প্রতিটি ফ্র্যাগমেন্ট f1 জন্য যা f2 এর আগে নির্ধারিত হতে হবে, শিডিউলার পাস f1 থেকে f2 পর্যন্ত একটি নিয়ন্ত্রণ-নির্ভরতা তৈরি করে। তারপর, এটি মডিউলে একটি টপোলজিকাল সাজানোর জন্য প্রয়োগ করে গ্যারান্টি দেয় যে সমস্ত নির্ভরতা সম্মানিত হয় (এবং প্রোগ্রামটি একটি বৈধ এসএসএ ফর্মে)। অবশেষে, পাসটি গ্রাফ থেকে প্রবর্তিত যেকোনো নিয়ন্ত্রণ-নির্ভরতাকে সরিয়ে দেয়।
অপশন
-must-happen-before : A comparator that determines whether a fragment must be scheduled before another. Can be parsed from a built-in `PipelineSchedule` as follows: `builtin:<schedule-as-string>`.
-remove-control-dependencies : Whether to remove control dependencies at the end of the pass.
-mpmd-remat-fragment
টুকরোগুলোকে রিমেটেরিয়ালাইজ করে।
জোড়া টুকরা (ফরোয়ার্ড+ব্যাকওয়ার্ড) খুঁজে পায় যেগুলিকে রিমেটেরিয়ালাইজ করতে হবে এবং প্রতিটি ফরোয়ার্ড ফ্র্যাগমেন্টকে তার পশ্চাৎগামী ব্যবহারকারীর আগে ক্লোন করে, ক্লোন করা প্রতিরূপগুলির সাথে ফরোয়ার্ড ফ্র্যাগমেন্ট দ্বারা উত্পাদিত মানগুলির সমস্ত পশ্চাদগামী ব্যবহার প্রতিস্থাপন করে৷ এটি পাইপলাইনের সমান্তরালে অ্যাক্টিভেশন রিমেটেরিয়ালাইজেশনের জন্য ব্যবহার করা যেতে পারে।
যখন merge_remat_fragments সত্য হয়, তখন আমরা রিম্যাট ফ্র্যাগমেন্টগুলিকে তাদের ভোক্তা খণ্ডে মার্জ করি।
অপশন
-merge-remat-fragments : Whether to merge the remat fragments into their consumer fragments.
-mpmd-rule-based-schedule
ব্যবহারকারী-সংজ্ঞায়িত নিয়মের উপর ভিত্তি করে খণ্ডগুলোকে পুনরায় সাজায়।
নিয়মের একটি তালিকার উপর ভিত্তি করে নিয়ন্ত্রণ নির্ভরতা যোগ করে খণ্ডগুলোকে পুনরায় সাজায়। প্রতিটি নিয়ম কার্যকর করার পছন্দসই ক্রমে খণ্ডগুলির একটি ক্রম নির্দিষ্ট করে এবং সেই ক্রমটি কার্যকর করতে নিয়ন্ত্রণ নির্ভরতা যুক্ত করা হয়। উদাহরণস্বরূপ, খণ্ড [A, B, C] সহ একটি নিয়মের জন্য A->B এবং B->C এর জন্য নিয়ন্ত্রণ নির্ভরতা যোগ করা হয়। পাস ব্যর্থ হয় যদি নিয়ম একটি চক্র নির্ভরতা তৈরি করে। যদি একটি নিয়মের মধ্যে একটি জোড়া খণ্ডের মধ্যে একটি নির্দিষ্ট খণ্ড পাওয়া না যায়, তাহলে সেই জোড়া নির্ধারিত হয় না।
অপশন
-rules : A list of fragment schedule rules. Each rule is a list of `FragmentInfo`s that specifies the order in which the fragments should be executed.
-remove-control-dependencies : Whether to remove control dependencies at the end of the pass.