ابزار پروفایل حافظه
شما میتوانید از Memory Profile برای تجسم میزان استفاده از حافظه در طول زمان توسط شتابدهندههای خود استفاده کنید. ابزار Memory Profile میزان استفاده از حافظه دستگاه شما را در طول بازه پروفایلبندی نظارت میکند. میتوانید از این ابزار برای موارد زیر استفاده کنید:
- با مشخص کردن میزان اوج استفاده از حافظه و تخصیص حافظه مربوطه به عملیات چارچوب، مشکلات مربوط به کمبود حافظه (OOM) را اشکالزدایی کنید.
- اشکالزدایی مشکلات تکهتکه شدن حافظه.
پلتفرمهای پشتیبانیشده
هم TPU و هم GPU پشتیبانی میشوند.
استفاده از ابزار پروفایل حافظه
پروفایل حافظه دارای اجزای زیر است:
- انتخابگر شناسه میزبان در بالای صفحه به شما امکان میدهد بین میزبانهای مختلف برای نمایهسازی، یکی را انتخاب کنید.
انتخابگر شناسه حافظه در بالای صفحه به شما امکان میدهد روی حافظه با پهنای باند بالا (HBM) متصل به یکی از شتابدهندههای مختلفی که ممکن است به میزبان در حال نمایهسازی یا حتی در موارد خاص به حافظه میزبان متصل باشند، تمرکز کنید.

خلاصه پروفایل حافظه و نمودار خط زمانی حافظه، اطلاعات سطح بالایی در مورد تخصیصها، آزادسازیها و میزان استفاده از حافظه در طول جلسه پروفایلبندی، از جمله خرابیها در پشته و پشته و هرگونه تأثیر قطعه قطعه شدن، را ثبت میکنند.
خلاصه پروفایل حافظه، تعداد کل تخصیصها و آزادسازیها را در طول بازه پروفایلبندی نشان میدهد؛ ظرفیت کل حافظه سیستم حافظه انتخاب شده؛ حداکثر استفاده از حافظه هیپ در طول عمر از زمان شروع اجرای مدل (توجه داشته باشید که این ممکن است خارج از بازه پروفایلبندی باشد)؛ و حداکثر استفاده از حافظه در بازه پروفایلبندی.

نمودار خط زمانی حافظه، نموداری از میزان استفاده از حافظه در طول زمان (که با محور Y در سمت چپ نمودار نشان داده شده است) و درصد قطعه قطعه شدن در بازه پروفایلینگ (که با محور Y در سمت راست نمودار نشان داده شده است) را نشان میدهد. در هر نقطه از زمان روی محور X، کل حافظه به سه دسته تقسیم میشود: پشته (به رنگ قرمز)، پشته (به رنگ نارنجی) و آزاد (به رنگ سبز). برای مشاهده جزئیات مربوط به رویدادهای تخصیص/آزادسازی حافظه در آن نقطه، مانند زیر، نشانگر ماوس را روی یک نشانگر زمانی خاص نگه دارید:

جدول تجزیه حافظه اطلاعاتی در مورد عملیات سطح چارچوب که بیشترین سهم را در استفاده از حافظه دارند، ارائه میدهد. همچنین جزئیات اضافی برای هر عملیات مانند شکل، نوع داده و غیره وجود دارد، اگر این اطلاعات توسط کامپایلر در اختیار XProf قرار گیرد. این جدول این جزئیات را در نقطه اوج استفاده در پنجره پروفایلینگ نشان میدهد تا به اشکالزدایی موقعیتهای کمبود حافظه (OOM) کمک کند.

تخصیصها و آزادسازیها توسط تخصیصدهندهی زمان اجرای XLA که مالک کل فضای حافظهی HBM است، مدیریت (و به پروفایل اضافه) میشوند.
معیار قطعه قطعه شدن در خلاصه مشخصات حافظه و نمودار جدول زمانی حافظه (به صورت درصد) به شناسایی مشکلات قطعه قطعه شدن حافظه کمک میکند. مقدار بالای قطعه قطعه شدن نشان میدهد که اگرچه ممکن است حافظه آزاد کافی وجود داشته باشد، اما پیوسته نیست و بنابراین یک درخواست تخصیص بزرگ ممکن است با شکست مواجه شود.
توجه داشته باشید که Memory Profile معمولاً برای پروفایلینگ GPU جالبتر و ارزشمندتر از بارهای کاری TPU است. مدل اجرای TPU معمولاً شامل تخصیص اولیه بزرگی توسط کامپایلر XLA است، نه در طول آموزش مدل یا استنتاج. بنابراین، اغلب خواهید دید که نمودار تخصیص مانند یک خط افقی صاف به نظر میرسد. احتمالاً همه تخصیصها در همان ابتدای پروفایل رخ دادهاند (اگر پروفایلینگ در آن نقطه از اجرا فعال بوده باشد)، و همین امر باعث میشود که دیدن آنها دشوار باشد.
برخی از تفاوتهای کلیدی بین این ابزار و ابزار Memory Viewer :
- نمایشگر حافظه کاملاً ایستا است و بر ترتیب برنامهها تمرکز دارد؛ نمایه حافظه، نمایی پویا را در طول زمان و در طول بازه نمایهسازی ارائه میدهد.
- نمایشگر حافظه، تخصیص حافظه را بر اساس هر ماژول XLA به صورت بصری نمایش میدهد؛ برای بارهای کاری متشکل از چندین ماژول XLA، نمایه حافظه یک نمای کلی از حافظه ارائه میدهد.