-mpmd-delay-inferred-fragments

অনুমানকৃত টুকরোগুলো যত দেরিতে সম্ভব কার্যকর করতে বিলম্বিত করে।

অনুমানকৃত টুকরোগুলিকে যত দেরিতে সম্ভব কার্যকর করার জন্য সরানো হয়, অর্থাৎ, তাদের প্রথম গ্রাহকের ঠিক আগে।

-mpmd-delay-transfers-from-cpu

CPU থেকে স্থানান্তর যত দেরিতে সম্ভব কার্যকর করতে বিলম্ব করে।

সিপিইউ-টু-ডিভাইস ট্রান্সফার অপশনগুলিকে তাদের প্রথম গ্রাহকের ঠিক আগে স্থানান্তর করে। এর অর্থ হল স্থানান্তরিত বাফারগুলির জন্য মেমরি বরাদ্দ স্থগিত করা, যা এইচবিএম ব্যবহারের জন্য উপকারী হতে পারে।

-mpmd-lower-to-fragment-calls

MPMD টুকরাগুলিকে টুকরো কল এবং ফাংশনে নামিয়ে দেয়।

সমস্ত টুকরোকে টুকরো কল দিয়ে প্রতিস্থাপন করে।

এই পাসটি প্রতিটি গ্রুপের টুকরোগুলির জন্য একটি ফাংশন তৈরি করে যাদের বডি এবং মেশ আকৃতি একই রকম, গ্রুপের প্রথম সম্মুখীন হওয়া টুকরোটির নাম প্রতীকের নাম হিসাবে থাকে এবং এটি প্রতীক টেবিলে যোগ করে।

প্রতিটি ফাংশনের বডি সংশ্লিষ্ট গ্রুপের প্রথম সম্মুখীন হওয়া ফ্র্যাগমেন্টের বডি থেকে বের করা হয় এবং মেশ আকৃতিটি টপোলজি থেকে সেই ফ্র্যাগমেন্টের মেশ নামের মাধ্যমে নেওয়া হয়। যদি ফ্র্যাগমেন্টটিতে ইনপুট-আউটপুট অ্যালিয়াসিং সম্পর্কে আর্গুমেন্ট অ্যাট্রিবিউট থাকে, তাহলে সেগুলি লোয়ার ফাংশনের আর্গুমেন্ট অ্যাট্রিবিউটের সাথে সংযুক্ত করা হবে।

যেহেতু ফাংশনগুলির অবশ্যই অনন্য নাম থাকতে হবে, এই পাসটি একই মূল নামের প্রথম ফাংশন ছাড়া সকলের নামের সাথে একটি সূচক যুক্ত করে, অর্থাৎ, i > 0 এর জন্য "some_name" নাম সহ ith ফাংশনটির নাম "some_name_i" হবে।

বিকল্পগুলি

-group-across-meshes : Whether to do more aggressive fragment grouping, across meshes. This may not be desirable for heterogeneous systems.
-verbose-logging     : Whether to enable verbose logging

-mpmd-mark-aliasing-and-donation

প্রতিটি খণ্ডকে উপনাম বা অনুদানের তথ্য দিয়ে চিহ্নিত করে।

যখন তাদের যেকোনো ইনপুটকে আউটপুটের সাথে এলিয়াস করা যায় বা দান করা যায়, তখন ফ্র্যাগমেন্ট অপ্স-এ একটি arg_attrs অ্যাট্রিবিউট সেট করে। প্রতিটি ইনপুট যা এলিয়াস করা যায় তার একটি tf.aliasing_output অ্যাট্রিবিউট থাকবে। অন্যথায়, একটি jax.buffer_donor = true অ্যাট্রিবিউট। উদাহরণস্বরূপ, {arg_attrs =\[{tf.aliasing_output = 0 : i32}, {jax.buffer_donor = true}, {}\]} দেখায় যে প্রথম ইনপুটটি আউটপুট 0 দিয়ে এলিয়াস করা যেতে পারে, দ্বিতীয় ইনপুটটি দান করা যেতে পারে যাতে XLA একটি এলিয়াস করা আউটপুট খুঁজে পায়, এবং তৃতীয় ইনপুটটি এলিয়াস করা বা দান করা যায় না।

-mpmd-mark-fragment-reserved-memory

প্রতিটি খণ্ডকে সংকলনের জন্য কতটুকু মেমোরি সংরক্ষণ করতে হবে তা দিয়ে চিহ্নিত করুন।

প্রতিটি ফ্র্যাগমেন্টে একটি xla_tpu_user_reserved_hbm_bytes অ্যাট্রিবিউট বরাদ্দ করে যা XLA কে বলবে যে প্রতিটি ফ্র্যাগমেন্ট কম্পাইল করার সময় কত বাইট রাখতে হবে। একটি মেশে লাইভ টেনসর ট্র্যাক করে, XLA এক্সিকিউশনের সময় প্রকৃত ন্যূনতম মেমোরি ব্যবহার সম্পর্কে জানতে পারবে এবং আমরা এক্সিকিউটেবলে অপ্টিমাইজেশন প্রয়োগ করা থেকে এটিকে আটকাতে পারি যা ডিভাইসের ধারণক্ষমতার বাইরে মেমোরি ব্যবহার বাড়িয়ে দেবে। দ্রষ্টব্য: এই পাস ধরে নেয় যে ফ্র্যাগমেন্টগুলি প্রোগ্রাম ক্রমানুসারে এক্সিকিউট করা হয়েছে।

-mpmd-mark-input-output-with-layouts

func args/results থেকে fragment args/results-এ লেআউট প্রচার করে।

প্রোগ্রাম ইনপুট থেকে প্রোগ্রাম ইনপুটের গ্রাহক অংশগুলিতে mhlo.layout_mode বৈশিষ্ট্যগুলি প্রচার করে এবং প্রোগ্রাম আউটপুট থেকে আউটপুট প্রযোজক অংশগুলিতে mhlo.layout_mode বৈশিষ্ট্যগুলি প্রচার করে। যদি একটি প্রোগ্রাম আর্গুমেন্ট ফেরত দেওয়া হয় তবে mhlo.layout_mode প্রোগ্রাম ফলাফলগুলিতে/থেকে প্রচারিত হয়। ট্রান্সফার অপের সাথে সংযুক্ত ইনপুট, আউটপুট এবং ফ্র্যাগমেন্ট আর্গুমেন্ট/ফলাফল সর্বদা DEFAULT লেআউট দিয়ে ওভাররাইট করা হয়, কারণ ট্রান্সফার শুধুমাত্র ডিফল্ট লেআউট সমর্থন করে।

যদি একটি প্রোগ্রাম আর্গুমেন্ট AUTO লেআউটে সেট করা থাকে এবং একাধিক টুকরোতে ব্যবহৃত হয়, তাহলে আমরা টুকরো জুড়ে সামঞ্জস্যপূর্ণ লেআউট সেট আপ করার জন্য এটিকে DEFAULT লেআউট হিসেবে সেট করি।

যদি প্রোগ্রামের আউটপুট, এবং এটি একটি ফ্র্যাগমেন্ট রেজাল্টও হয়, তাহলে AUTO লেআউটে সেট করা থাকে এবং অন্যান্য ফ্র্যাগমেন্টে ইনপুট হিসেবে ব্যবহার করা হয়, তাহলে আমরা ফ্র্যাগমেন্ট জুড়ে সামঞ্জস্যপূর্ণ লেআউট সেটআপ করার জন্য এটিকে DEFAULT লেআউট হিসেবেও সেট করি।

-mpmd-mark-offloaded-input-output

অফলোড করা ইনপুট এবং আউটপুট মান চিহ্নিত করে যাতে কম্পাইলার জানতে পারে যে সেগুলি হোস্ট মেমরিতে আছে।

হোস্ট মেমোরিতে কোন মানগুলি থাকে তা সনাক্ত করার জন্য ফ্র্যাগমেন্ট আর্গ এবং ফলাফলগুলিকে অ্যাট্রিবিউট দিয়ে চিহ্নিত করে, যাতে এই তথ্যটি XLA দ্বারা ব্যবহার করা যায়। এন্ট্রিপয়েন্ট ফাংশন আর্গ এবং ফলাফলগুলিকেও চিহ্নিত করে যাতে পাথওয়েজ এই তথ্যটি ব্যবহার করতে পারে।