ابزار آمار عملیاتی HLO

شما می‌توانید از HLO Op Stats برای مشاهده آمار عملکرد عملیات‌های بهینه‌ساز سطح بالا (HLO) که در طول یک جلسه پروفایلینگ اجرا می‌شوند، استفاده کنید. این ابزار با برجسته کردن زمان‌برترین عملیات در نمودار HLO شما در طول دوره پروفایلینگ، برای شناسایی اهداف بالقوه برای بهینه‌سازی عملکرد ارزشمند است.

پلتفرم‌های پشتیبانی‌شده

هم TPU و هم GPU پشتیبانی می‌شوند.

برای پردازنده‌های گرافیکی (GPU)، عملیات HLO رابطه N:M با هسته‌هایی که واقعاً اجرا می‌شوند، دارند. برای آمار در سطح هسته، به ابزار GPU Kernel Stats مراجعه کنید.

اجزای ابزار آمار عملیاتی HLO

ابزار HLO Op Stats دارای اجزای کلیدی زیر است:

  • بخش نمودارهای خلاصه‌شده : این بخش دارای نمودارهایی است که نتایج دقیق جدول هر عملیات را به روش‌های زیر خلاصه می‌کند:

    • یک نمودار دایره‌ای با عنوان زمان به ازای هر دسته HLO که کسری از زمان مصرف شده توسط دسته‌های مختلف عملیات HLO را نشان می‌دهد.
    • یک نمودار دایره‌ای با عنوان زمان هر عملیات HLO که کسری از زمان مصرف شده توسط عملیات‌های مختلف HLO را نشان می‌دهد (به N عملیات برتر خلاصه شده و بقیه برای بهبود خوانایی به عنوان «سایر» طبقه‌بندی شده‌اند).
    • یک نمودار دایره‌ای با عنوان زمان صرف شده برای بازسازی که کسری از کل زمان صرف شده برای عملیات‌هایی که بخشی از بازسازی هستند را نشان می‌دهد؛ XProf این اطلاعات را از ابرداده کامپایلر مرتبط با پروفایل دریافت می‌کند.
    • یک نمودار دایره‌ای با عنوان زمان صرف شده برای بازسازی به ازای هر دسته HLO که نشان می‌دهد زمان بازسازی (در صورت وجود) در کدام دسته‌های HLO صرف شده است.
    • نموداری با عنوان زمان صرف شده برای کامپایل خارجی . کامپایل خارجی یک ویژگی TensorFlow است که به عملیات خاصی در یک محاسبه XLA اجازه می‌دهد تا به جای دستگاه شتاب‌دهنده، به طور شفاف روی CPU میزبان اجرا شوند (به عنوان مثال، tf.summary یا tf.print که نیاز به دسترسی I/O دارد که دستگاه ندارد).
    • نموداری که میزان GFLOPS/s را برای تمام عملیات HLO، به ترتیب کل زمان خودپردازی، نشان می‌دهد.
    • فقط برای TPUها، زمان به ازای هر HLO بر اساس گروه کپی: یک منوی کشویی به شما امکان می‌دهد از بین عملیات جمعی مختلف اجرا شده در طول جلسه پروفایلینگ، انتخاب کنید. نمونه‌های مختلفی از آن عملیات جمعی ممکن است در بین گروه‌های کپی مختلف (مثلاً AllGather ) اجرا شده باشد. یک نمودار دایره‌ای توزیع زمان بین این نمونه‌های مختلف را نشان می‌دهد.

    آمار عملیاتی XProf HLO

  • جدول آمار عملیات HLO : این جزء اصلی است که جزئیات هر عملیات HLO اجرا شده در طول جلسه پروفایلینگ را در قالب جدولی ارائه می‌دهد. برای هر عملیات HLO مجزا یک ردیف و ستون‌هایی وجود دارد که جزئیات مختلف مربوط به آن عملیات را ثبت می‌کنند.

    • یک انتخابگر کشویی به شما امکان می‌دهد تصمیم بگیرید که کدام ستون‌ها را می‌خواهید برای هر عملیات HLO تجسم کنید.
    • همچنین می‌توانید ردیف‌ها را بر اساس دسته‌بندی HLO Op از طریق یک انتخابگر کشویی دوم فیلتر کنید.
    • کادرهای جستجو به شما امکان می‌دهند بر اساس شناسه‌های برنامه خاص، عملیات HLO، متن عملیات HLO یا نام عملیات چارچوب، جستجو را فیلتر کنید؛ فیلترها رشته ارائه شده را که در هر کجای ستون مربوطه ظاهر می‌شود، انتخاب می‌کنند.

جزئیات جدول آمار عملیات HLO

جدول آمار عملیاتی XProf HLO

شما می‌توانید روی هر یک از عناوین ستون‌ها کلیک کنید تا جدول آمار عملیات HLO را مرتب کنید. ترتیب پیش‌فرض بر اساس کل زمان خودِ عملیات (با برچسب "رتبه" در جدول) است.

جدول شامل اطلاعات زیر برای هر عملیات HLO است:

  • شناسه برنامه : شناسه‌ای برای ماژول HLO که این عملیات به آن مرتبط است
  • دسته عملیات HLO : این دسته عمدتاً توسط کامپایلر XLA تعریف می‌شوند؛ XProf علاوه بر این، از روش‌های اکتشافی برای شناسایی و دسته‌بندی عملیات خاص (مثلاً ترکیب‌های کانولوشن) استفاده می‌کند.
  • نام عملیاتی HLO : نام منحصر به فردی که توسط کامپایلر XLA به عملیات HLO اختصاص داده شده است.
  • متن عملیاتی HLO : توسط کامپایلر XLA ارائه می‌شود و شامل جزئیاتی مانند انواع و شکل‌های ورودی‌ها/پارامترها است.
  • نام عملیات چارچوب : عملیاتی در سطح چارچوب (مثلاً JAX) که منجر به تولید این عملیات HLO شده است.
  • تعداد دفعات وقوع : تعداد کل دفعاتی که این عملیات خاص HLO در طول دوره پروفایلینگ اجرا شده است.
  • زمان کل (μs) : زمان تجمعی صرف شده برای اجرای این عملیات در تمام تکرارهای آن. اگر این عملیات دارای عملیات فرزند باشد (مثلاً در یک ادغام)، این زمان شامل زمان صرف شده در آن فرزندان نیز می‌شود.
  • میانگین زمان (μs) : میانگین زمان هر اجرای این عملیات HLO، شامل هر زمان صرف شده در عملیات‌های فرزند، در صورت وجود.
  • کل زمان خود (μs): زمان تجمعی صرف شده صرفاً در بدنه این عملیات HLO، به استثنای هر زمانی که در عملیات‌های فرزندان آن صرف شده است.
  • میانگین زمان خوداجرایی (μs): میانگین زمان هر اجرای این عملیات HLO، به استثنای هر زمان صرف شده در عملیات‌های فرزندان آن.
  • کل زمان خود-فعال (%): زمان خود-فعال بودن دستگاه به عنوان درصدی از کل زمان روشن بودن دستگاه در تمام عملیات‌ها.
  • کل زمان خودارزیابی تجمعی (%): مجموع زمان خودارزیابی کل (%) برای تمام عملیات‌هایی که در ترتیب «رتبه» زودتر ظاهر می‌شوند.
  • توقف DMA (%): درصد کل زمانی که عملیات به دلیل عملیات دسترسی مستقیم به حافظه (DMA) متوقف شده است.
  • مصرف پهنای باند (میزان استفاده بر ثانیه) برای فلاپ‌ها، حافظه‌های HBM و حافظه‌های داخلی TPU در صورت وجود (مثلاً CMEM فقط در TPU نسخه ۴ وجود دارد). همه اینها با استفاده از تحلیل هزینه استاتیک کامپایلر (صورت کسر) و زمان اجرای پروفایل شده (مخرج کسر) محاسبه می‌شوند.
  • مدل GFLOPS/s: هزینه GFLOPs توسط کامپایلر XLA محاسبه می‌شود و زمان توسط پروفایل اندازه‌گیری می‌شود.
  • GFLOPS/s نرمال‌سازی‌شده: فلاپ‌های محاسبه‌شده توسط کامپایلر را بر اساس دقت عددی آن و فلاپ‌های اوج پشتیبانی‌شده توسط دستگاه برای دقت‌های مختلف، نرمال‌سازی می‌کند. برای مثال، TPU v6e در int8 از دو برابر فلاپ‌های اوج پشتیبانی‌شده در bf16 پشتیبانی می‌کند؛ XProf به‌طور پیش‌فرض به bf16 نرمال‌سازی می‌کند.
  • حافظه BW: تعداد بایت‌ها بر ثانیه مصرف شده توسط عملیات، از هر حافظه‌ای (مثلاً TPU VMEM و HBM روی تراشه). کامپایلر XLA تعداد «بایت‌ها» را ارائه می‌دهد و مدت زمان در پروفایل اندازه‌گیری می‌شود.
  • HBM BW: تعداد بایت‌ها بر ثانیه که به طور خاص از HBM مصرف می‌شود.
  • شدت عملیاتی: به صورت نسبت FLOPS به بایت محاسبه می‌شود، همانطور که برای تحلیل خط سقف تعریف شده است.
  • محدودیت محاسباتی/حافظه: بر اساس مدل Roofline، این ستون نشان می‌دهد که آیا عملکرد عملیات در درجه اول توسط قابلیت‌های محاسباتی یا پهنای باند حافظه محدود شده است یا خیر.
  • بازسازی: نشان می‌دهد که آیا عملیات بخشی از بازسازی بوده است یا خیر.
  • کامپایل خارجی: نشان می‌دهد که آیا عملیات با استفاده از قابلیت کامپایل خارجی Tensorflow روی CPU میزبان اجرا شده است یا خیر.
  • تنظیم خودکار: نشان می‌دهد که آیا عملیات توسط XLA به صورت خودکار تنظیم شده است یا خیر. برای اطلاعات بیشتر، به تنظیم خودکار و تنظیم خودکار مداوم مراجعه کنید.