ছাদ বিশ্লেষণ টুল

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

সমর্থিত প্ল্যাটফর্ম

TPU: সমর্থিত

GPU: সমর্থিত (বিটাতে)

ছাদ লাইন চার্ট কি

ছাদ লাইন চার্ট অপারেশনাল তীব্রতা (এফএলপিএস প্রতি বাইট অ্যাক্সেস) এবং প্রতি সেকেন্ডে এফএলপিএস অর্জনের মধ্যে সম্পর্ক কল্পনা করে।

\[ Roofline = min(Operational Intensity \times Peak Memory Bandwidth, Peak FLOPS) \]

"ছাদ" আকৃতি তৈরি হয় পিক FLOPS এর নিচের এবং মেমরি ব্যান্ডউইথ এবং অপারেশনাল তীব্রতার কারণে অর্জনযোগ্য কর্মক্ষমতা। পিক FLOPS অর্জনের জন্য রিজ পয়েন্ট ন্যূনতম অপারেশনাল তীব্রতা নির্দেশ করে।

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

রুফলাইন চার্ট ব্যাখ্যা করা

অপারেশনাল ইনটেনসিটি প্লট করে এবং বিভিন্ন ধাপ, প্রোগ্রামের অংশ, বা রুফলাইন চার্টে পৃথক HLO অপারেশনের জন্য FLOPS অর্জন করে, আপনি পারফরম্যান্সের প্রতিবন্ধকতা সম্পর্কে অন্তর্দৃষ্টি পেতে পারেন:

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

ইন্টারফেস উপাদান

রুফলাইন অ্যানালাইসিস টুল ইন্টারফেসের বেশ কয়েকটি মূল উপাদান রয়েছে:

  • একটি ডিভাইস তথ্য বিভাগ হার্ডওয়্যার চশমা বর্ণনা করে; এগুলি চার্টে স্থিরভাবে "ছাদের লাইন(গুলি)" আঁকতে ব্যবহৃত হয়
  • নিম্নলিখিতগুলির সাথে সম্পর্কিত ডেটা পয়েন্ট সহ একটি প্রোগ্রাম-স্তরের ছাদ লাইন চার্ট:
    • প্রোফাইলের মোট সময়কাল।
    • মোট প্রোফাইল সময়কাল, কিন্তু XLA কম্পাইলার দ্বারা গণনা করা ডিফল্ট খরচ মডেলের পরিবর্তে হার্ডওয়্যার কর্মক্ষমতা কাউন্টার থেকে প্রাপ্ত FLOPS/s ডেটা সহ।
    • প্রোফাইলের সময়কালের সময় সম্পাদিত সম্পূর্ণ পদক্ষেপগুলির একটি গড় (প্রশিক্ষণ কাজের জন্য; আপনি অনুমানমূলক কাজের জন্য ধাপের পরিভাষা উপেক্ষা করতে পারেন)।
    • প্রোফাইলের সময়কালে সম্পাদিত প্রতিটি সম্পূর্ণ পদক্ষেপ (প্রশিক্ষণ কাজের জন্য; আপনি অনুমানমূলক কাজের জন্য ধাপের পরিভাষা উপেক্ষা করতে পারেন)।
  • ছাদের চার্টেও নিম্নলিখিত বৈশিষ্ট্য রয়েছে:
    • আপনি প্রদত্ত ড্রপ-ডাউন ব্যবহার করে ইনফিড/আউটফিড অপ্স অন্তর্ভুক্ত বা বাদ দিতে বেছে নিতে পারেন।
    • চার্টের যেকোনও ডেটা পয়েন্টের উপর হভার করা অতিরিক্ত প্রাসঙ্গিক তথ্য নিয়ে আসে যেমন বিভিন্ন স্মৃতির জন্য ব্যান্ডউইথ নম্বর, মোট সময় কাটানো ইত্যাদি।
  • একটি প্রোগ্রাম-স্তরের পরিসংখ্যান টেবিল যা প্রতিটি ডেটা পয়েন্টের জন্য অতিরিক্ত বিবরণ প্রদান করে, যেমন সর্বোচ্চ মেমরি ব্যবহার %, সর্বোচ্চ FLOP হার %, ইত্যাদি।
  • একটি দ্বিতীয় রুফলাইন চার্ট যা আরও দানাদার তথ্য প্রদান করে, যেখানে প্রোফাইলিং পিরিয়ডের সময় শীর্ষ-1000টি সবচেয়ে বেশি সময়সাপেক্ষ অপ্সের জন্য প্লট করা ডেটা পয়েন্ট সহ:
    • প্রোগ্রাম-লেভেল রুফলাইন চার্টের মতো, প্রতিটি ডেটা পয়েন্টের উপর ঘোরাফেরা করা সেই অপের সম্পর্কে অতিরিক্ত তথ্য নিয়ে আসে।
    • আপনি নিম্নলিখিত উপায়ে চার্টে দেখানো ডেটা পয়েন্টগুলি কাস্টমাইজ করতে পারেন:
      • ড্রপ-ডাউনের মাধ্যমে ইনফিড এবং আউটফিড অপ্স সহ/বাদ দেওয়া।
      • অপারেশনের নির্দিষ্ট বিভাগের জন্য ফিল্টারিং।
      • একটি নির্দিষ্ট সংস্থান দ্বারা আবদ্ধ অপারেশনগুলির জন্য ফিল্টারিং৷
      • একটি নির্দিষ্ট নামের অপারেশনের জন্য ফিল্টারিং।
  • একটি দ্বিতীয় পরিসংখ্যান টেবিল, প্রোগ্রাম-স্তরের টেবিলের মতো, প্রতিটি ডেটা পয়েন্টের জন্য অতিরিক্ত বিবরণ প্রদান করে।

উপরে বর্ণিত সমস্ত বিভাগ জুড়ে, নিম্নলিখিত স্মৃতিগুলি সমর্থিত:

  • TPU-এর জন্য: HBM, VMEM, CMEM (শুধুমাত্র TPU v4)।
  • GPU-এর জন্য: HBM, L1/SharedMem।
  • চার্টে সংশ্লিষ্ট লাইনগুলি শুধুমাত্র তখনই প্রদর্শিত হয় যদি প্রোফাইলের সময়কালের মধ্যে কোনো অপ্স থাকে যা সেই স্মৃতি দ্বারা আবদ্ধ ছিল। উদাহরণস্বরূপ, যদি সমস্ত অপস হয় HBM বা গণনা আবদ্ধ, আপনি VMEM বা CMEM-এর জন্য লাইন দেখতে পাবেন না।
,

ছাদ বিশ্লেষণ টুল

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

সমর্থিত প্ল্যাটফর্ম

TPU: সমর্থিত

GPU: সমর্থিত (বিটাতে)

ছাদ লাইন চার্ট কি

ছাদ লাইন চার্ট অপারেশনাল তীব্রতা (এফএলপিএস প্রতি বাইট অ্যাক্সেস) এবং প্রতি সেকেন্ডে এফএলপিএস অর্জনের মধ্যে সম্পর্ক কল্পনা করে।

\[ Roofline = min(Operational Intensity \times Peak Memory Bandwidth, Peak FLOPS) \]

"ছাদ" আকৃতি তৈরি হয় পিক FLOPS এর নিচের এবং মেমরি ব্যান্ডউইথ এবং অপারেশনাল তীব্রতার কারণে অর্জনযোগ্য কর্মক্ষমতা। পিক FLOPS অর্জনের জন্য রিজ পয়েন্ট ন্যূনতম অপারেশনাল তীব্রতা নির্দেশ করে।

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

রুফলাইন চার্ট ব্যাখ্যা করা

অপারেশনাল ইনটেনসিটি প্লট করে এবং বিভিন্ন ধাপ, প্রোগ্রামের অংশ, বা রুফলাইন চার্টে পৃথক HLO অপারেশনের জন্য FLOPS অর্জন করে, আপনি পারফরম্যান্সের প্রতিবন্ধকতা সম্পর্কে অন্তর্দৃষ্টি পেতে পারেন:

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

ইন্টারফেস উপাদান

রুফলাইন অ্যানালাইসিস টুল ইন্টারফেসের বেশ কয়েকটি মূল উপাদান রয়েছে:

  • একটি ডিভাইস তথ্য বিভাগ হার্ডওয়্যার চশমা বর্ণনা করে; এগুলি চার্টে স্থিরভাবে "ছাদের লাইন(গুলি)" আঁকতে ব্যবহৃত হয়
  • নিম্নলিখিতগুলির সাথে সম্পর্কিত ডেটা পয়েন্ট সহ একটি প্রোগ্রাম-স্তরের ছাদ লাইন চার্ট:
    • প্রোফাইলের মোট সময়কাল।
    • মোট প্রোফাইল সময়কাল, কিন্তু XLA কম্পাইলার দ্বারা গণনা করা ডিফল্ট খরচ মডেলের পরিবর্তে হার্ডওয়্যার কর্মক্ষমতা কাউন্টার থেকে প্রাপ্ত FLOPS/s ডেটা সহ।
    • প্রোফাইলের সময়কালের সময় সম্পাদিত সম্পূর্ণ পদক্ষেপগুলির একটি গড় (প্রশিক্ষণ কাজের জন্য; আপনি অনুমানমূলক কাজের জন্য ধাপের পরিভাষা উপেক্ষা করতে পারেন)।
    • প্রোফাইলের সময়কালে সম্পাদিত প্রতিটি সম্পূর্ণ পদক্ষেপ (প্রশিক্ষণ কাজের জন্য; আপনি অনুমানমূলক কাজের জন্য ধাপের পরিভাষা উপেক্ষা করতে পারেন)।
  • ছাদের চার্টেও নিম্নলিখিত বৈশিষ্ট্য রয়েছে:
    • আপনি প্রদত্ত ড্রপ-ডাউন ব্যবহার করে ইনফিড/আউটফিড অপ্স অন্তর্ভুক্ত বা বাদ দিতে বেছে নিতে পারেন।
    • চার্টের যেকোনও ডেটা পয়েন্টের উপর হভার করা অতিরিক্ত প্রাসঙ্গিক তথ্য নিয়ে আসে যেমন বিভিন্ন স্মৃতির জন্য ব্যান্ডউইথ নম্বর, মোট সময় কাটানো ইত্যাদি।
  • একটি প্রোগ্রাম-স্তরের পরিসংখ্যান টেবিল যা প্রতিটি ডেটা পয়েন্টের জন্য অতিরিক্ত বিবরণ প্রদান করে, যেমন সর্বোচ্চ মেমরি ব্যবহার %, সর্বোচ্চ FLOP হার %, ইত্যাদি।
  • একটি দ্বিতীয় রুফলাইন চার্ট যা আরও দানাদার তথ্য প্রদান করে, যেখানে প্রোফাইলিং পিরিয়ডের সময় শীর্ষ-1000টি সবচেয়ে বেশি সময়সাপেক্ষ অপ্সের জন্য প্লট করা ডেটা পয়েন্ট সহ:
    • প্রোগ্রাম-লেভেল রুফলাইন চার্টের মতো, প্রতিটি ডেটা পয়েন্টের উপর ঘোরাফেরা করা সেই অপের সম্পর্কে অতিরিক্ত তথ্য নিয়ে আসে।
    • আপনি নিম্নলিখিত উপায়ে চার্টে দেখানো ডেটা পয়েন্টগুলি কাস্টমাইজ করতে পারেন:
      • ড্রপ-ডাউনের মাধ্যমে ইনফিড এবং আউটফিড অপ্স সহ/বাদ দেওয়া।
      • অপারেশনের নির্দিষ্ট বিভাগের জন্য ফিল্টারিং।
      • একটি নির্দিষ্ট সংস্থান দ্বারা আবদ্ধ অপারেশনগুলির জন্য ফিল্টারিং৷
      • একটি নির্দিষ্ট নামের অপারেশনের জন্য ফিল্টারিং।
  • একটি দ্বিতীয় পরিসংখ্যান টেবিল, প্রোগ্রাম-স্তরের টেবিলের মতো, প্রতিটি ডেটা পয়েন্টের জন্য অতিরিক্ত বিবরণ প্রদান করে।

উপরে বর্ণিত সমস্ত বিভাগ জুড়ে, নিম্নলিখিত স্মৃতিগুলি সমর্থিত:

  • TPU-এর জন্য: HBM, VMEM, CMEM (শুধুমাত্র TPU v4)।
  • GPU-এর জন্য: HBM, L1/SharedMem।
  • চার্টে সংশ্লিষ্ট লাইনগুলি শুধুমাত্র তখনই প্রদর্শিত হয় যদি প্রোফাইলের সময়কালের মধ্যে কোনো অপ্স থাকে যা সেই স্মৃতি দ্বারা আবদ্ধ ছিল। উদাহরণস্বরূপ, যদি সমস্ত অপস হয় HBM বা গণনা আবদ্ধ, আপনি VMEM বা CMEM-এর জন্য লাইন দেখতে পাবেন না।
,

ছাদ বিশ্লেষণ টুল

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

সমর্থিত প্ল্যাটফর্ম

TPU: সমর্থিত

GPU: সমর্থিত (বিটাতে)

ছাদ লাইন চার্ট কি

ছাদ লাইন চার্ট অপারেশনাল তীব্রতা (এফএলপিএস প্রতি বাইট অ্যাক্সেস) এবং প্রতি সেকেন্ডে এফএলপিএস অর্জনের মধ্যে সম্পর্ক কল্পনা করে।

\[ Roofline = min(Operational Intensity \times Peak Memory Bandwidth, Peak FLOPS) \]

"ছাদ" আকৃতি তৈরি হয় পিক FLOPS এর নিচের এবং মেমরি ব্যান্ডউইথ এবং অপারেশনাল তীব্রতার কারণে অর্জনযোগ্য কর্মক্ষমতা। পিক FLOPS অর্জনের জন্য রিজ পয়েন্ট ন্যূনতম অপারেশনাল তীব্রতা নির্দেশ করে।

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

রুফলাইন চার্ট ব্যাখ্যা করা

অপারেশনাল ইনটেনসিটি প্লট করে এবং বিভিন্ন ধাপ, প্রোগ্রামের অংশ, বা রুফলাইন চার্টে পৃথক HLO অপারেশনের জন্য FLOPS অর্জন করে, আপনি পারফরম্যান্সের প্রতিবন্ধকতা সম্পর্কে অন্তর্দৃষ্টি পেতে পারেন:

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

ইন্টারফেস উপাদান

রুফলাইন অ্যানালাইসিস টুল ইন্টারফেসের বেশ কয়েকটি মূল উপাদান রয়েছে:

  • একটি ডিভাইস তথ্য বিভাগ হার্ডওয়্যার চশমা বর্ণনা করে; এগুলি চার্টে স্থিরভাবে "ছাদের লাইন(গুলি)" আঁকতে ব্যবহৃত হয়
  • নিম্নলিখিতগুলির সাথে সম্পর্কিত ডেটা পয়েন্ট সহ একটি প্রোগ্রাম-স্তরের ছাদ লাইন চার্ট:
    • প্রোফাইলের মোট সময়কাল।
    • মোট প্রোফাইল সময়কাল, কিন্তু XLA কম্পাইলার দ্বারা গণনা করা ডিফল্ট খরচ মডেলের পরিবর্তে হার্ডওয়্যার কর্মক্ষমতা কাউন্টার থেকে প্রাপ্ত FLOPS/s ডেটা সহ।
    • প্রোফাইলের সময়কালের সময় সম্পাদিত সম্পূর্ণ পদক্ষেপগুলির একটি গড় (প্রশিক্ষণ কাজের জন্য; আপনি অনুমানমূলক কাজের জন্য ধাপের পরিভাষা উপেক্ষা করতে পারেন)।
    • প্রোফাইলের সময়কালে সম্পাদিত প্রতিটি সম্পূর্ণ পদক্ষেপ (প্রশিক্ষণ কাজের জন্য; আপনি অনুমানমূলক কাজের জন্য ধাপের পরিভাষা উপেক্ষা করতে পারেন)।
  • ছাদের চার্টেও নিম্নলিখিত বৈশিষ্ট্য রয়েছে:
    • আপনি প্রদত্ত ড্রপ-ডাউন ব্যবহার করে ইনফিড/আউটফিড অপ্স অন্তর্ভুক্ত বা বাদ দিতে বেছে নিতে পারেন।
    • চার্টের যেকোনও ডেটা পয়েন্টের উপর হভার করা অতিরিক্ত প্রাসঙ্গিক তথ্য নিয়ে আসে যেমন বিভিন্ন স্মৃতির জন্য ব্যান্ডউইথ নম্বর, মোট সময় কাটানো ইত্যাদি।
  • একটি প্রোগ্রাম-স্তরের পরিসংখ্যান টেবিল যা প্রতিটি ডেটা পয়েন্টের জন্য অতিরিক্ত বিবরণ প্রদান করে, যেমন সর্বোচ্চ মেমরি ব্যবহার %, সর্বোচ্চ FLOP হার %, ইত্যাদি।
  • একটি দ্বিতীয় রুফলাইন চার্ট যা আরও দানাদার তথ্য প্রদান করে, যেখানে প্রোফাইলিং পিরিয়ডের সময় শীর্ষ-1000টি সবচেয়ে বেশি সময়সাপেক্ষ অপ্সের জন্য প্লট করা ডেটা পয়েন্ট সহ:
    • প্রোগ্রাম-লেভেল রুফলাইন চার্টের মতো, প্রতিটি ডেটা পয়েন্টের উপর ঘোরাফেরা করা সেই অপের সম্পর্কে অতিরিক্ত তথ্য নিয়ে আসে।
    • আপনি নিম্নলিখিত উপায়ে চার্টে দেখানো ডেটা পয়েন্টগুলি কাস্টমাইজ করতে পারেন:
      • ড্রপ-ডাউনের মাধ্যমে ইনফিড এবং আউটফিড অপ্স সহ/বাদ দেওয়া।
      • অপারেশনের নির্দিষ্ট বিভাগের জন্য ফিল্টারিং।
      • একটি নির্দিষ্ট সংস্থান দ্বারা আবদ্ধ অপারেশনগুলির জন্য ফিল্টারিং৷
      • একটি নির্দিষ্ট নামের অপারেশনের জন্য ফিল্টারিং।
  • একটি দ্বিতীয় পরিসংখ্যান টেবিল, প্রোগ্রাম-স্তরের টেবিলের মতো, প্রতিটি ডেটা পয়েন্টের জন্য অতিরিক্ত বিবরণ প্রদান করে।

উপরে বর্ণিত সমস্ত বিভাগ জুড়ে, নিম্নলিখিত স্মৃতিগুলি সমর্থিত:

  • TPU-এর জন্য: HBM, VMEM, CMEM (শুধুমাত্র TPU v4)।
  • GPU-এর জন্য: HBM, L1/SharedMem।
  • চার্টে সংশ্লিষ্ট লাইনগুলি শুধুমাত্র তখনই প্রদর্শিত হয় যদি প্রোফাইলের সময়কালের মধ্যে কোনো অপ্স থাকে যা সেই স্মৃতি দ্বারা আবদ্ধ ছিল। উদাহরণস্বরূপ, যদি সমস্ত অপস হয় HBM বা গণনা আবদ্ধ, আপনি VMEM বা CMEM-এর জন্য লাইন দেখতে পাবেন না।
,

ছাদ বিশ্লেষণ টুল

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

সমর্থিত প্ল্যাটফর্ম

TPU: সমর্থিত

GPU: সমর্থিত (বিটাতে)

ছাদ লাইন চার্ট কি

ছাদ লাইন চার্ট অপারেশনাল তীব্রতা (এফএলপিএস প্রতি বাইট অ্যাক্সেস) এবং প্রতি সেকেন্ডে এফএলপিএস অর্জনের মধ্যে সম্পর্ক কল্পনা করে।

\[ Roofline = min(Operational Intensity \times Peak Memory Bandwidth, Peak FLOPS) \]

"ছাদ" আকৃতি তৈরি হয় পিক FLOPS এর নিচের এবং মেমরি ব্যান্ডউইথ এবং অপারেশনাল তীব্রতার কারণে অর্জনযোগ্য কর্মক্ষমতা। পিক FLOPS অর্জনের জন্য রিজ পয়েন্ট ন্যূনতম অপারেশনাল তীব্রতা নির্দেশ করে।

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

রুফলাইন চার্ট ব্যাখ্যা করা

অপারেশনাল ইনটেনসিটি প্লট করে এবং বিভিন্ন ধাপ, প্রোগ্রামের অংশ, বা রুফলাইন চার্টে পৃথক HLO অপারেশনের জন্য FLOPS অর্জন করে, আপনি পারফরম্যান্সের প্রতিবন্ধকতা সম্পর্কে অন্তর্দৃষ্টি পেতে পারেন:

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

ইন্টারফেস উপাদান

রুফলাইন অ্যানালাইসিস টুল ইন্টারফেসের বেশ কয়েকটি মূল উপাদান রয়েছে:

  • একটি ডিভাইস তথ্য বিভাগ হার্ডওয়্যার চশমা বর্ণনা করে; এগুলি চার্টে স্থিরভাবে "ছাদের লাইন(গুলি)" আঁকতে ব্যবহৃত হয়
  • নিম্নলিখিতগুলির সাথে সম্পর্কিত ডেটা পয়েন্ট সহ একটি প্রোগ্রাম-স্তরের ছাদ লাইন চার্ট:
    • প্রোফাইলের মোট সময়কাল।
    • মোট প্রোফাইল সময়কাল, কিন্তু XLA কম্পাইলার দ্বারা গণনা করা ডিফল্ট খরচ মডেলের পরিবর্তে হার্ডওয়্যার কর্মক্ষমতা কাউন্টার থেকে প্রাপ্ত FLOPS/s ডেটা সহ।
    • প্রোফাইলের সময়কালের সময় সম্পাদিত সম্পূর্ণ পদক্ষেপগুলির একটি গড় (প্রশিক্ষণ কাজের জন্য; আপনি অনুমানমূলক কাজের জন্য ধাপের পরিভাষা উপেক্ষা করতে পারেন)।
    • প্রোফাইলের সময়কালে সম্পাদিত প্রতিটি সম্পূর্ণ পদক্ষেপ (প্রশিক্ষণ কাজের জন্য; আপনি অনুমানমূলক কাজের জন্য ধাপের পরিভাষা উপেক্ষা করতে পারেন)।
  • ছাদের চার্টেও নিম্নলিখিত বৈশিষ্ট্য রয়েছে:
    • আপনি প্রদত্ত ড্রপ-ডাউন ব্যবহার করে ইনফিড/আউটফিড অপ্স অন্তর্ভুক্ত বা বাদ দিতে বেছে নিতে পারেন।
    • চার্টের যেকোনও ডেটা পয়েন্টের উপর হভার করা অতিরিক্ত প্রাসঙ্গিক তথ্য নিয়ে আসে যেমন বিভিন্ন স্মৃতির জন্য ব্যান্ডউইথ নম্বর, মোট সময় কাটানো ইত্যাদি।
  • একটি প্রোগ্রাম-স্তরের পরিসংখ্যান টেবিল যা প্রতিটি ডেটা পয়েন্টের জন্য অতিরিক্ত বিবরণ প্রদান করে, যেমন সর্বোচ্চ মেমরি ব্যবহার %, সর্বোচ্চ FLOP হার %, ইত্যাদি।
  • একটি দ্বিতীয় রুফলাইন চার্ট যা আরও দানাদার তথ্য প্রদান করে, যেখানে প্রোফাইলিং পিরিয়ডের সময় শীর্ষ-1000টি সবচেয়ে বেশি সময়সাপেক্ষ অপ্সের জন্য প্লট করা ডেটা পয়েন্ট সহ:
    • প্রোগ্রাম-লেভেল রুফলাইন চার্টের মতো, প্রতিটি ডেটা পয়েন্টের উপর ঘোরাফেরা করা সেই অপের সম্পর্কে অতিরিক্ত তথ্য নিয়ে আসে।
    • আপনি নিম্নলিখিত উপায়ে চার্টে দেখানো ডেটা পয়েন্টগুলি কাস্টমাইজ করতে পারেন:
      • ড্রপ-ডাউনের মাধ্যমে ইনফিড এবং আউটফিড অপ্স সহ/বাদ দেওয়া।
      • অপারেশনের নির্দিষ্ট বিভাগের জন্য ফিল্টারিং।
      • একটি নির্দিষ্ট সংস্থান দ্বারা আবদ্ধ অপারেশনগুলির জন্য ফিল্টারিং৷
      • একটি নির্দিষ্ট নামের অপারেশনের জন্য ফিল্টারিং।
  • একটি দ্বিতীয় পরিসংখ্যান টেবিল, প্রোগ্রাম-স্তরের টেবিলের মতো, প্রতিটি ডেটা পয়েন্টের জন্য অতিরিক্ত বিবরণ প্রদান করে।

উপরে বর্ণিত সমস্ত বিভাগ জুড়ে, নিম্নলিখিত স্মৃতিগুলি সমর্থিত:

  • TPU-এর জন্য: HBM, VMEM, CMEM (শুধুমাত্র TPU v4)।
  • GPU-এর জন্য: HBM, L1/SharedMem।
  • চার্টে সংশ্লিষ্ট লাইনগুলি শুধুমাত্র তখনই প্রদর্শিত হয় যদি প্রোফাইলের সময়কালের মধ্যে কোনো অপ্স থাকে যা সেই স্মৃতি দ্বারা আবদ্ধ ছিল। উদাহরণস্বরূপ, যদি সমস্ত অপস হয় HBM বা গণনা আবদ্ধ, আপনি VMEM বা CMEM-এর জন্য লাইন দেখতে পাবেন না।