মেমোরি প্রোফাইল টুল
আপনার অ্যাক্সিলারেটরের সময়ের সাথে সাথে মেমরির ব্যবহার কল্পনা করার জন্য আপনি মেমরি প্রোফাইল ব্যবহার করতে পারেন। মেমরি প্রোফাইল টুলটি প্রোফাইলিং ব্যবধানের সময় আপনার ডিভাইসের মেমরির ব্যবহার পর্যবেক্ষণ করে। আপনি এই টুলটি ব্যবহার করতে পারেন:
- সর্বোচ্চ মেমরি ব্যবহার এবং ফ্রেমওয়ার্ক অপশনে সংশ্লিষ্ট মেমরি বরাদ্দ চিহ্নিত করে মেমরির সমস্যা (OOM) ডিবাগ করুন।
- মেমরি ফ্র্যাগমেন্টেশন সমস্যাগুলি ডিবাগ করুন।
সমর্থিত প্ল্যাটফর্মগুলি
TPU এবং GPU উভয়ই সমর্থিত।
মেমোরি প্রোফাইল টুল ব্যবহার করা
মেমোরি প্রোফাইলে নিম্নলিখিত উপাদানগুলি রয়েছে:
- পৃষ্ঠার শীর্ষে থাকা হোস্ট আইডি নির্বাচক আপনাকে প্রোফাইলের জন্য বিভিন্ন হোস্টের মধ্যে থেকে বেছে নিতে দেয়।
পৃষ্ঠার শীর্ষে থাকা মেমোরি আইডি নির্বাচক আপনাকে হাই ব্যান্ডউইথ মেমোরি (HBM) এর উপর ফোকাস করতে দেয় যা বিভিন্ন অ্যাক্সিলারেটরের সাথে সংযুক্ত থাকে যা প্রোফাইল করা হোস্টের সাথে সংযুক্ত থাকতে পারে, এমনকি কিছু ক্ষেত্রে হোস্ট মেমোরিতেও।

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

মেমোরি টাইমলাইন গ্রাফটি সময়ের সাথে সাথে মেমোরি ব্যবহারের একটি প্লট (গ্রাফের বাম দিকে Y-অক্ষ দ্বারা প্রতিনিধিত্ব করা হয়েছে) এবং প্রোফাইলিং ব্যবধানে (গ্রাফের ডানদিকে Y-অক্ষ দ্বারা প্রতিনিধিত্ব করা হয়েছে) ফ্র্যাগমেন্টেশনের শতাংশ দেখায়। X-অক্ষের প্রতিটি সময়ে, মোট মেমোরি তিনটি বিভাগে বিভক্ত: স্ট্যাক (লাল রঙে), হিপ (কমলা রঙে), এবং ফ্রি (সবুজ রঙে)। নীচের মত সেই বিন্দুতে মেমোরি বরাদ্দ/ডিলোকেশন ইভেন্ট সম্পর্কে বিশদ দেখতে একটি নির্দিষ্ট টাইমস্ট্যাম্পের উপর কার্সার রাখুন:

মেমোরি ব্রেকডাউন টেবিলটি ফ্রেমওয়ার্ক-লেভেলের অপারেশন সম্পর্কে তথ্য প্রদান করে যা মেমোরি ব্যবহারে সবচেয়ে বেশি অবদান রাখে। কম্পাইলার যদি XProf-এ এই তথ্য সরবরাহ করে তবে আকৃতি, ডেটা টাইপ ইত্যাদির মতো অতিরিক্ত পার-অপারেশন বিবরণও রয়েছে। টেবিলটি প্রোফাইলিং উইন্ডোর মধ্যে সর্বোচ্চ ব্যবহারের বিন্দুতে এই বিবরণগুলি দেখায়, যা মেমোরির বাইরে (OOM) পরিস্থিতি ডিবাগিংয়ে সহায়তা করে।

বরাদ্দ এবং ডিলোকেশন XLA এর রানটাইম অ্যালোকেটর দ্বারা পরিচালিত হয় (এবং প্রোফাইলে যোগ করা হয়), যা সম্পূর্ণ HBM মেমরি স্পেসের মালিক।
মেমোরি প্রোফাইলের সারাংশে ফ্র্যাগমেন্টেশন মেট্রিক এবং মেমোরি টাইমলাইন গ্রাফ (শতাংশ হিসাবে) মেমোরি ফ্র্যাগমেন্টেশন সমস্যাগুলি সনাক্ত করতে সহায়তা করে। একটি উচ্চ ফ্র্যাগমেন্টেশন মান নির্দেশ করে যে যদিও পর্যাপ্ত মোট ফ্রি মেমোরি থাকতে পারে, এটি সংলগ্ন নয়, এবং এইভাবে একটি বৃহৎ বরাদ্দ অনুরোধ ব্যর্থ হতে পারে।
মনে রাখবেন যে মেমোরি প্রোফাইল সাধারণত TPU ওয়ার্কলোডের তুলনায় GPU প্রোফাইলিংয়ের জন্য বেশি আকর্ষণীয় এবং মূল্যবান। TPU এক্সিকিউশন মডেলে সাধারণত মডেল প্রশিক্ষণ বা অনুমানের সময় নয় বরং XLA কম্পাইলার দ্বারা একটি বড় আপফ্রন্ট অ্যালোকেশন জড়িত থাকে। অতএব, আপনি প্রায়শই দেখতে পাবেন যে অ্যালোকেশন চার্টটি একটি সমতল অনুভূমিক রেখার মতো দেখায়; অ্যালোকেশনগুলি সম্ভবত প্রোফাইলের একেবারে শুরুতে ঘটেছে (যদি প্রোফাইলারটি রানের সেই বিন্দুতে সক্রিয় থাকে), যা তাদের দেখা কঠিন করে তোলে।
এই টুল এবং মেমোরি ভিউয়ার টুলের মধ্যে কিছু মূল পার্থক্য:
- মেমোরি ভিউয়ার সম্পূর্ণরূপে স্ট্যাটিক এবং প্রোগ্রামের ক্রমকে কেন্দ্র করে; মেমোরি প্রোফাইল প্রোফাইলিং ব্যবধানের সময় সময়ের সাথে সাথে একটি গতিশীল দৃশ্য প্রদান করে।
- মেমোরি ভিউয়ার প্রতি-XLA-মডিউল ভিত্তিতে মেমোরি বরাদ্দ কল্পনা করে; একাধিক XLA মডিউল সমন্বিত ওয়ার্কলোডের জন্য, মেমোরি প্রোফাইল মেমোরির একটি বিশ্বব্যাপী দৃশ্য প্রদান করে।