HLO Op Stats Tool

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

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

TPU: پشتیبانی می شود

GPU: پشتیبانی می شود

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

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

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

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

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

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

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

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