تجزیه و تحلیل کارایی حافظه، تجزیه و تحلیل کارایی حافظه، تجزیه و تحلیل کارایی حافظه، تجزیه و تحلیل کارایی حافظه

ویژگی های استفاده از حافظه یک برنامه جنبه اساسی عملکرد آن است. شما می توانید با مشاهده اطلاعات شمارنده GPU موجود، از System Profiler برای تجزیه و تحلیل این ویژگی ها استفاده کنید.

دستگاه های آدرنو

در دستگاه‌های Adreno، ابتدا با برجسته کردن یک دوره زمانی مطابق با یک فریم واحد پردازشگر گرافیکی، همانطور که در تخمین زمان‌های پردازش فریم CPU و GPU توضیح داده شده است، شروع کنید. از تکنیک توضیح داده شده در آن صفحه شامل استفاده از GPU % Utilization یا تراک شمارنده مشابه برای مرزهای زمان فریم خود استفاده کنید، زیرا آهنگ‌های شمارنده همگی از تکنیک زمان‌بندی یکسانی استفاده می‌کنند و تخمین‌های دقیق‌تری از استفاده از حافظه (در مقایسه با استفاده از فریم) ممکن می‌سازد. مرزهای زمانی مشتق شده از برش های GPU که داده ها به طور مستقل از داده های آهنگ شمارنده جمع آوری می شوند).

مسیر استفاده با شمارنده های مربوطه در زیر آن ردیف می شود
شکل 1. مسیر بهره برداری با شمارنده های مربوطه در زیر آن ردیف می شود

خواندن/نوشتن مجموع

هنگامی که یک فریم را در نمایه ساز برجسته کردید، با نگاه کردن به شمارشگر Read Total (Bytes/sec) و Write Total (Bytes/sec) شروع کنید. این شمارنده ها نگاه کلی خوبی به میزان داده ای که در طول یک فریم از گذرگاه حافظه عبور می کنند، ارائه می دهند. تمام تلاش خود را برای به حداقل رساندن مقدار داده ای که از طریق اتوبوس ارسال می کنید انجام دهید، زیرا پهنای باند حافظه منبع بزرگی برای تخلیه باتری در دستگاه های تلفن همراه است.

تعداد شمارنده ها را بخوانید + بنویسید
شکل 2. تعداد شمارنده ها را بخوانید + بنویسید

همچنین می‌توانید شمارنده‌های راس حافظه خوانده شده (بایت/ثانیه) و تکسچر حافظه خوانده شده (بایت/ثانیه) را برای تعیین بخشی از پهنای باند مورد استفاده برای داده‌های راس و بافت بررسی کنید.

شمارشگر خواندن حافظه راس + بافت
شکل 3. شمارشگر خواندن حافظه راس + بافت

آنچه شما برای این مقادیر "خوب" در نظر می گیرید به نوع بار کاری که در برنامه شما مشاهده می شود بستگی دارد. به عنوان مثال، برنامه های دو بعدی ممکن است مقادیر نسبتاً زیادی (~2+GB/s) از پهنای باند خواندن حافظه بافت را مشاهده کنند، اما پهنای باند حافظه راس ممکن است بسیار کم باشد (~50MB/s). برای جزئیات بیشتر، نگاهی به مستندات آنالیز پهنای باند حافظه رأس و استفاده از پهنای باند حافظه بافت تجزیه و تحلیل بیندازید .

غرفه ها را بیاورید

به % Vertex Fetch Stall ، % Texture Fetch Stall و % Stall در شمارنده های System Memory نگاه کنید، زیرا این موارد به شما نکاتی درباره عملکرد کلی حافظه برنامه ما می دهد. اگر مقادیر بیشتر از 5٪ باشد، این نشان می دهد که برنامه شما یا داده ها را به روشی کارآمد در حافظه قرار نمی دهد یا به روشی کارآمد برای استفاده از حافظه پنهان به داده های خود دسترسی دارد. برای جزئیات بیشتر در مورد بهبود استفاده از حافظه برای این نوع دارایی ها، به پهنای باند حافظه راس آنالیز و استفاده از پهنای باند حافظه بافت تحلیل آنالیز نگاهی بیندازید.

کانترهای حافظه
شکل 4. شمارنده های حافظه

دستگاه های مالی

در دستگاه‌های مالی، ابتدا با برجسته کردن یک دوره زمانی منطبق با یک فریم واحد پردازشگر گرافیکی، همانطور که در تخمین زمان‌های پردازش فریم CPU و GPU توضیح داده شده است، شروع کنید. از تکنیک توضیح داده شده در آن صفحه شامل استفاده از GPU % Utilization یا تراک شمارنده مشابه برای مرزهای زمان فریم خود استفاده کنید، زیرا آهنگ‌های شمارنده همگی از تکنیک زمان‌بندی یکسانی استفاده می‌کنند و تخمین‌های دقیق‌تری از استفاده از حافظه (در مقایسه با استفاده از فریم) ممکن می‌سازد. مرزهای زمانی مشتق شده از برش های GPU که داده ها به طور مستقل از داده های آهنگ شمارنده جمع آوری می شوند).

مسیر بهره‌برداری با شمارنده‌هایی که در زیر آن به آن‌ها علاقه دارید، ردیف می‌شوند
شکل 5. مسیر بهره برداری با شمارنده های مورد نظر شما در زیر آن ردیف می شود

خروجی مجموع خارجی

بعد از اینکه یک فریم را در نمایه سیستم برجسته کردید، با نگاه کردن به شمارشگرهای خروجی بایت خواندن خارجی خروجی شمارشگر بایت نوشتن خارجی شروع کنید. این شمارنده ها نگاه کلی خوبی به میزان داده ای که در طول یک فریم از گذرگاه حافظه عبور می کنند، ارائه می دهند. تمام تلاش خود را برای به حداقل رساندن مقدار داده ارسالی از طریق اتوبوس انجام دهید، زیرا پهنای باند حافظه منبع بزرگی برای تخلیه باتری در دستگاه های تلفن همراه است.

خروجی آهنگ های شمارنده خارجی
شکل 6. خروجی آهنگ های شمارنده خارجی

مجموع داخلی را وارد کنید

شمارنده هایی نیز وجود دارند که اطلاعات مربوط به خود کش ها را در اختیار شما قرار می دهند. شمارنده هایی که شما به آنها علاقه دارید عبارتند از "ورودی چرخه های استال داخلی [خواندن|نوشتن]". مقادیر بالاتر برای اینها به این معنی است که شما با موفقیت به حافظه پنهان ضربه می‌زنید، اما درخواست‌های خواندن بسیار زیادی وجود دارد و در نتیجه کد سایه‌زن در انتظار دسترسی به حافظه متوقف می‌شود.

ورودی آهنگ های شمارنده داخلی
شکل 7. ورودی تراک های شمارنده داخلی

غرفه ها را بیاورید

مجموعه بعدی شمارنده‌هایی که می‌توانید به آنها نگاه کنید ، چرخه‌های Stall Prefetcher Vertex و شمارنده‌های Stall Fetch Texture هستند، زیرا اینها نکاتی را در مورد عملکرد کلی حافظه برنامه ما به شما می‌دهند. اگر مقادیر بالاتر از ~ 5% را مشاهده می کنید، به این معنی است که یا داده های ما را به روشی کارآمد در حافظه قرار نمی دهید یا به روشی کارآمد برای استفاده از حافظه پنهان به داده های ما دسترسی دارید. برای جزئیات بیشتر در مورد چگونگی بهبود استفاده از حافظه برای این نوع دارایی ها، نگاهی به مقالات پهنای باند حافظه تحلیل [راس|بافت] بیندازید.

واکشی آهنگ های پیشخوان Stalls
شکل 8. واکشی آهنگ های شمارنده Stalls
،

ویژگی های استفاده از حافظه یک برنامه جنبه اساسی عملکرد آن است. شما می توانید با مشاهده اطلاعات شمارنده GPU موجود، از System Profiler برای تجزیه و تحلیل این ویژگی ها استفاده کنید.

دستگاه های آدرنو

در دستگاه‌های Adreno، ابتدا با برجسته کردن یک دوره زمانی مطابق با یک فریم واحد پردازشگر گرافیکی، همانطور که در تخمین زمان‌های پردازش فریم CPU و GPU توضیح داده شده است، شروع کنید. از تکنیک توضیح داده شده در آن صفحه شامل استفاده از GPU % Utilization یا تراک شمارنده مشابه برای مرزهای زمان فریم خود استفاده کنید، زیرا آهنگ‌های شمارنده همگی از تکنیک زمان‌بندی یکسانی استفاده می‌کنند و تخمین‌های دقیق‌تری از استفاده از حافظه (در مقایسه با استفاده از فریم) ممکن می‌سازد. مرزهای زمانی مشتق شده از برش های GPU که داده ها به طور مستقل از داده های آهنگ شمارنده جمع آوری می شوند).

مسیر استفاده با شمارنده های مربوطه در زیر آن ردیف می شود
شکل 1. مسیر بهره برداری با شمارنده های مربوطه در زیر آن ردیف می شود

خواندن/نوشتن مجموع

هنگامی که یک فریم را در نمایه ساز برجسته کردید، با نگاه کردن به شمارشگر Read Total (Bytes/sec) و Write Total (Bytes/sec) شروع کنید. این شمارنده ها نگاه کلی خوبی به میزان داده ای که در طول یک فریم از گذرگاه حافظه عبور می کنند، ارائه می دهند. تمام تلاش خود را برای به حداقل رساندن مقدار داده ای که از طریق اتوبوس ارسال می کنید انجام دهید، زیرا پهنای باند حافظه منبع بزرگی برای تخلیه باتری در دستگاه های تلفن همراه است.

تعداد شمارنده ها را بخوانید + بنویسید
شکل 2. تعداد شمارنده ها را بخوانید + بنویسید

همچنین می‌توانید شمارنده‌های راس حافظه خوانده شده (بایت/ثانیه) و تکسچر حافظه خوانده شده (بایت/ثانیه) را برای تعیین بخشی از پهنای باند مورد استفاده برای داده‌های راس و بافت بررسی کنید.

شمارشگر خواندن حافظه راس + بافت
شکل 3. شمارشگر خواندن حافظه راس + بافت

آنچه شما برای این مقادیر "خوب" در نظر می گیرید به نوع بار کاری که در برنامه شما مشاهده می شود بستگی دارد. به عنوان مثال، برنامه های دو بعدی ممکن است مقادیر نسبتاً زیادی (~2+GB/s) از پهنای باند خواندن حافظه بافت را مشاهده کنند، اما پهنای باند حافظه راس ممکن است بسیار کم باشد (~50MB/s). برای جزئیات بیشتر، نگاهی به مستندات آنالیز پهنای باند حافظه رأس و استفاده از پهنای باند حافظه بافت تجزیه و تحلیل بیندازید .

غرفه ها را بیاورید

به % Vertex Fetch Stall ، % Texture Fetch Stall و % Stall در شمارنده های System Memory نگاه کنید، زیرا این موارد به شما نکاتی درباره عملکرد کلی حافظه برنامه ما می دهد. اگر مقادیر بیشتر از 5٪ باشد، این نشان می دهد که برنامه شما یا داده ها را به روشی کارآمد در حافظه قرار نمی دهد یا به روشی کارآمد برای استفاده از حافظه پنهان به داده های خود دسترسی دارد. برای جزئیات بیشتر در مورد بهبود استفاده از حافظه برای این نوع دارایی ها، به پهنای باند حافظه راس آنالیز و استفاده از پهنای باند حافظه بافت تحلیل آنالیز نگاهی بیندازید.

کانترهای حافظه
شکل 4. شمارنده های حافظه

دستگاه های مالی

در دستگاه‌های مالی، ابتدا با برجسته کردن یک دوره زمانی منطبق با یک فریم واحد پردازشگر گرافیکی، همانطور که در تخمین زمان‌های پردازش فریم CPU و GPU توضیح داده شده است، شروع کنید. از تکنیک توضیح داده شده در آن صفحه شامل استفاده از GPU % Utilization یا تراک شمارنده مشابه برای مرزهای زمان فریم خود استفاده کنید، زیرا آهنگ‌های شمارنده همگی از تکنیک زمان‌بندی یکسانی استفاده می‌کنند و تخمین‌های دقیق‌تری از استفاده از حافظه (در مقایسه با استفاده از فریم) ممکن می‌سازد. مرزهای زمانی مشتق شده از برش های GPU که داده ها به طور مستقل از داده های آهنگ شمارنده جمع آوری می شوند).

مسیر بهره‌برداری با شمارنده‌هایی که در زیر آن به آن‌ها علاقه دارید، ردیف می‌شوند
شکل 5. مسیر بهره برداری با شمارنده های مورد نظر شما در زیر آن ردیف می شود

خروجی مجموع خارجی

بعد از اینکه یک فریم را در نمایه سیستم برجسته کردید، با نگاه کردن به شمارشگرهای خروجی بایت خواندن خارجی خروجی شمارشگر بایت نوشتن خارجی شروع کنید. این شمارنده ها نگاه کلی خوبی به میزان داده ای که در طول یک فریم از گذرگاه حافظه عبور می کنند، ارائه می دهند. تمام تلاش خود را برای به حداقل رساندن مقدار داده ارسالی از طریق اتوبوس انجام دهید، زیرا پهنای باند حافظه منبع بزرگی برای تخلیه باتری در دستگاه های تلفن همراه است.

خروجی آهنگ های شمارنده خارجی
شکل 6. خروجی آهنگ های شمارنده خارجی

مجموع داخلی را وارد کنید

شمارنده هایی نیز وجود دارند که اطلاعات مربوط به خود کش ها را در اختیار شما قرار می دهند. شمارنده هایی که شما به آنها علاقه دارید عبارتند از "ورودی چرخه های استال داخلی [خواندن|نوشتن]". مقادیر بالاتر برای اینها به این معنی است که شما با موفقیت به حافظه پنهان ضربه می‌زنید، اما درخواست‌های خواندن بسیار زیادی وجود دارد و در نتیجه کد سایه‌زن در انتظار دسترسی به حافظه متوقف می‌شود.

ورودی آهنگ های شمارنده داخلی
شکل 7. ورودی تراک های شمارنده داخلی

غرفه ها را بیاورید

مجموعه بعدی شمارنده‌هایی که می‌توانید به آنها نگاه کنید ، چرخه‌های Stall Prefetcher Vertex و شمارنده‌های Stall Fetch Texture هستند، زیرا اینها نکاتی را در مورد عملکرد کلی حافظه برنامه ما به شما می‌دهند. اگر مقادیر بالاتر از ~ 5% را مشاهده می کنید، به این معنی است که یا داده های ما را به روشی کارآمد در حافظه قرار نمی دهید یا به روشی کارآمد برای استفاده از حافظه پنهان به داده های ما دسترسی دارید. برای جزئیات بیشتر در مورد چگونگی بهبود استفاده از حافظه برای این نوع دارایی ها، نگاهی به مقالات پهنای باند حافظه تحلیل [راس|بافت] بیندازید.

واکشی آهنگ های پیشخوان Stalls
شکل 8. واکشی آهنگ های شمارنده Stalls
،

ویژگی های استفاده از حافظه یک برنامه جنبه اساسی عملکرد آن است. شما می توانید با مشاهده اطلاعات شمارنده GPU موجود، از System Profiler برای تجزیه و تحلیل این ویژگی ها استفاده کنید.

دستگاه های آدرنو

در دستگاه‌های Adreno، ابتدا با برجسته کردن یک دوره زمانی مطابق با یک فریم واحد پردازشگر گرافیکی، همانطور که در تخمین زمان‌های پردازش فریم CPU و GPU توضیح داده شده است، شروع کنید. از تکنیک توضیح داده شده در آن صفحه شامل استفاده از GPU % Utilization یا تراک شمارنده مشابه برای مرزهای زمان فریم خود استفاده کنید، زیرا آهنگ‌های شمارنده همگی از تکنیک زمان‌بندی یکسانی استفاده می‌کنند و تخمین‌های دقیق‌تری از استفاده از حافظه (در مقایسه با استفاده از فریم) ممکن می‌سازد. مرزهای زمانی مشتق شده از برش های GPU که داده ها به طور مستقل از داده های آهنگ شمارنده جمع آوری می شوند).

مسیر استفاده با شمارنده های مربوطه در زیر آن ردیف می شود
شکل 1. مسیر بهره برداری با شمارنده های مربوطه در زیر آن ردیف می شود

خواندن/نوشتن مجموع

هنگامی که یک فریم را در نمایه ساز برجسته کردید، با نگاه کردن به شمارشگر Read Total (Bytes/sec) و Write Total (Bytes/sec) شروع کنید. این شمارنده ها نگاه کلی خوبی به میزان داده ای که در طول یک فریم از گذرگاه حافظه عبور می کنند، ارائه می دهند. تمام تلاش خود را برای به حداقل رساندن مقدار داده ای که از طریق اتوبوس ارسال می کنید انجام دهید، زیرا پهنای باند حافظه منبع بزرگی برای تخلیه باتری در دستگاه های تلفن همراه است.

تعداد شمارنده ها را بخوانید + بنویسید
شکل 2. تعداد شمارنده ها را بخوانید + بنویسید

همچنین می‌توانید شمارنده‌های راس حافظه خوانده شده (بایت/ثانیه) و تکسچر حافظه خوانده شده (بایت/ثانیه) را برای تعیین بخشی از پهنای باند مورد استفاده برای داده‌های راس و بافت بررسی کنید.

شمارشگر خواندن حافظه راس + بافت
شکل 3. شمارشگر خواندن حافظه راس + بافت

آنچه شما برای این مقادیر "خوب" در نظر می گیرید به نوع بار کاری که در برنامه شما مشاهده می شود بستگی دارد. به عنوان مثال، برنامه های دو بعدی ممکن است مقادیر نسبتاً زیادی (~2+GB/s) از پهنای باند خواندن حافظه بافت را مشاهده کنند، اما پهنای باند حافظه راس ممکن است بسیار کم باشد (~50MB/s). برای جزئیات بیشتر، نگاهی به مستندات آنالیز پهنای باند حافظه رأس و استفاده از پهنای باند حافظه بافت تجزیه و تحلیل بیندازید .

غرفه ها را بیاورید

به % Vertex Fetch Stall ، % Texture Fetch Stall و % Stall در شمارنده های System Memory نگاه کنید، زیرا این موارد به شما نکاتی درباره عملکرد کلی حافظه برنامه ما می دهد. اگر مقادیر بیشتر از 5٪ باشد، این نشان می دهد که برنامه شما یا داده ها را به روشی کارآمد در حافظه قرار نمی دهد یا به روشی کارآمد برای استفاده از حافظه پنهان به داده های خود دسترسی دارد. برای جزئیات بیشتر در مورد بهبود استفاده از حافظه برای این نوع دارایی ها، به پهنای باند حافظه راس آنالیز و استفاده از پهنای باند حافظه بافت تحلیل آنالیز نگاهی بیندازید.

کانترهای حافظه
شکل 4. شمارنده های حافظه

دستگاه های مالی

در دستگاه‌های مالی، ابتدا با برجسته کردن یک دوره زمانی منطبق با یک فریم واحد پردازشگر گرافیکی، همانطور که در تخمین زمان‌های پردازش فریم CPU و GPU توضیح داده شده است، شروع کنید. از تکنیک توضیح داده شده در آن صفحه شامل استفاده از GPU % Utilization یا تراک شمارنده مشابه برای مرزهای زمان فریم خود استفاده کنید، زیرا آهنگ‌های شمارنده همگی از تکنیک زمان‌بندی یکسانی استفاده می‌کنند و تخمین‌های دقیق‌تری از استفاده از حافظه (در مقایسه با استفاده از فریم) ممکن می‌سازد. مرزهای زمانی مشتق شده از برش های GPU که داده ها به طور مستقل از داده های آهنگ شمارنده جمع آوری می شوند).

مسیر بهره‌برداری با شمارنده‌هایی که در زیر آن به آن‌ها علاقه دارید، ردیف می‌شوند
شکل 5. مسیر بهره برداری با شمارنده های مورد نظر شما در زیر آن ردیف می شود

خروجی مجموع خارجی

بعد از اینکه یک فریم را در نمایه سیستم برجسته کردید، با نگاه کردن به شمارشگرهای خروجی بایت خواندن خارجی خروجی شمارشگر بایت نوشتن خارجی شروع کنید. این شمارنده ها نگاه کلی خوبی به میزان داده ای که در طول یک فریم از گذرگاه حافظه عبور می کنند، ارائه می دهند. تمام تلاش خود را برای به حداقل رساندن مقدار داده ارسالی از طریق اتوبوس انجام دهید، زیرا پهنای باند حافظه منبع بزرگی برای تخلیه باتری در دستگاه های تلفن همراه است.

خروجی آهنگ های شمارنده خارجی
شکل 6. خروجی آهنگ های شمارنده خارجی

مجموع داخلی را وارد کنید

شمارنده هایی نیز وجود دارند که اطلاعات مربوط به خود کش ها را در اختیار شما قرار می دهند. شمارنده هایی که شما به آنها علاقه دارید عبارتند از "ورودی چرخه های استال داخلی [خواندن|نوشتن]". مقادیر بالاتر برای اینها به این معنی است که شما با موفقیت به حافظه پنهان ضربه می‌زنید، اما درخواست‌های خواندن بسیار زیادی وجود دارد و در نتیجه کد سایه‌زن در انتظار دسترسی به حافظه متوقف می‌شود.

ورودی آهنگ های شمارنده داخلی
شکل 7. ورودی تراک های شمارنده داخلی

غرفه ها را بیاورید

مجموعه بعدی شمارنده‌هایی که می‌توانید به آنها نگاه کنید ، چرخه‌های Stall Prefetcher Vertex و شمارنده‌های Stall Fetch Texture هستند، زیرا اینها نکاتی را در مورد عملکرد کلی حافظه برنامه ما به شما می‌دهند. اگر مقادیر بالاتر از ~ 5% را مشاهده می کنید، به این معنی است که یا داده های ما را به روشی کارآمد در حافظه قرار نمی دهید یا به روشی کارآمد برای استفاده از حافظه پنهان به داده های ما دسترسی دارید. برای جزئیات بیشتر در مورد چگونگی بهبود استفاده از حافظه برای این نوع دارایی ها، نگاهی به مقالات پهنای باند حافظه تحلیل [راس|بافت] بیندازید.

واکشی آهنگ های پیشخوان Stalls
شکل 8. واکشی آهنگ های شمارنده Stalls
،

ویژگی های استفاده از حافظه یک برنامه جنبه اساسی عملکرد آن است. شما می توانید با مشاهده اطلاعات شمارنده GPU موجود، از System Profiler برای تجزیه و تحلیل این ویژگی ها استفاده کنید.

دستگاه های آدرنو

در دستگاه‌های Adreno، ابتدا با برجسته کردن یک دوره زمانی مطابق با یک فریم واحد پردازشگر گرافیکی، همانطور که در تخمین زمان‌های پردازش فریم CPU و GPU توضیح داده شده است، شروع کنید. از تکنیک توضیح داده شده در آن صفحه شامل استفاده از GPU % Utilization یا تراک شمارنده مشابه برای مرزهای زمان فریم خود استفاده کنید، زیرا آهنگ‌های شمارنده همگی از تکنیک زمان‌بندی یکسانی استفاده می‌کنند و تخمین‌های دقیق‌تری از استفاده از حافظه (در مقایسه با استفاده از فریم) ممکن می‌سازد. مرزهای زمانی مشتق شده از برش های GPU که داده ها به طور مستقل از داده های آهنگ شمارنده جمع آوری می شوند).

مسیر استفاده با شمارنده های مربوطه در زیر آن ردیف می شود
شکل 1. مسیر بهره برداری با شمارنده های مربوطه در زیر آن ردیف می شود

خواندن/نوشتن مجموع

هنگامی که یک فریم را در نمایه ساز برجسته کردید، با نگاه کردن به شمارشگر Read Total (Bytes/sec) و Write Total (Bytes/sec) شروع کنید. این شمارنده ها نگاه کلی خوبی به میزان داده ای که در طول یک فریم از گذرگاه حافظه عبور می کنند، ارائه می دهند. تمام تلاش خود را برای به حداقل رساندن مقدار داده ای که از طریق اتوبوس ارسال می کنید انجام دهید، زیرا پهنای باند حافظه منبع بزرگی برای تخلیه باتری در دستگاه های تلفن همراه است.

تعداد شمارنده ها را بخوانید + بنویسید
شکل 2. تعداد شمارنده ها را بخوانید + بنویسید

همچنین می‌توانید شمارنده‌های راس حافظه خوانده شده (بایت/ثانیه) و تکسچر حافظه خوانده شده (بایت/ثانیه) را برای تعیین بخشی از پهنای باند مورد استفاده برای داده‌های راس و بافت بررسی کنید.

شمارشگر خواندن حافظه راس + بافت
شکل 3. شمارشگر خواندن حافظه راس + بافت

آنچه شما برای این مقادیر "خوب" در نظر می گیرید به نوع بار کاری که در برنامه شما مشاهده می شود بستگی دارد. به عنوان مثال، برنامه های دو بعدی ممکن است مقادیر نسبتاً زیادی (~2+GB/s) از پهنای باند خواندن حافظه بافت را مشاهده کنند، اما پهنای باند حافظه راس ممکن است بسیار کم باشد (~50MB/s). برای جزئیات بیشتر، نگاهی به مستندات آنالیز پهنای باند حافظه رأس و استفاده از پهنای باند حافظه بافت تجزیه و تحلیل بیندازید .

غرفه ها را بیاورید

به % Vertex Fetch Stall ، % Texture Fetch Stall و % Stall در شمارنده های System Memory نگاه کنید، زیرا این موارد به شما نکاتی درباره عملکرد کلی حافظه برنامه ما می دهد. اگر مقادیر بیشتر از 5٪ باشد، این نشان می دهد که برنامه شما یا داده ها را به روشی کارآمد در حافظه قرار نمی دهد یا به روشی کارآمد برای استفاده از حافظه پنهان به داده های خود دسترسی دارد. برای جزئیات بیشتر در مورد بهبود استفاده از حافظه برای این نوع دارایی ها، به پهنای باند حافظه راس آنالیز و استفاده از پهنای باند حافظه بافت تحلیل آنالیز نگاهی بیندازید.

کانترهای حافظه
شکل 4. شمارنده های حافظه

دستگاه های مالی

در دستگاه‌های مالی، ابتدا با برجسته کردن یک دوره زمانی منطبق با یک فریم واحد پردازشگر گرافیکی، همانطور که در تخمین زمان‌های پردازش فریم CPU و GPU توضیح داده شده است، شروع کنید. از تکنیک توضیح داده شده در آن صفحه شامل استفاده از GPU % Utilization یا تراک شمارنده مشابه برای مرزهای زمان فریم خود استفاده کنید، زیرا آهنگ‌های شمارنده همگی از تکنیک زمان‌بندی یکسانی استفاده می‌کنند و تخمین‌های دقیق‌تری از استفاده از حافظه (در مقایسه با استفاده از فریم) ممکن می‌سازد. مرزهای زمانی مشتق شده از برش های GPU که داده ها به طور مستقل از داده های آهنگ شمارنده جمع آوری می شوند).

مسیر بهره‌برداری با شمارنده‌هایی که در زیر آن به آن‌ها علاقه دارید، ردیف می‌شوند
شکل 5. مسیر بهره برداری با شمارنده های مورد نظر شما در زیر آن ردیف می شود

خروجی مجموع خارجی

بعد از اینکه یک فریم را در نمایه سیستم برجسته کردید، با نگاه کردن به شمارشگرهای خروجی بایت خواندن خارجی خروجی شمارشگر بایت نوشتن خارجی شروع کنید. این شمارنده ها نگاه کلی خوبی به میزان داده ای که در طول یک فریم از گذرگاه حافظه عبور می کنند، ارائه می دهند. تمام تلاش خود را برای به حداقل رساندن مقدار داده ارسالی از طریق اتوبوس انجام دهید، زیرا پهنای باند حافظه منبع بزرگی برای تخلیه باتری در دستگاه های تلفن همراه است.

خروجی آهنگ های شمارنده خارجی
شکل 6. خروجی آهنگ های شمارنده خارجی

مجموع داخلی را وارد کنید

شمارنده هایی نیز وجود دارند که اطلاعات مربوط به خود کش ها را در اختیار شما قرار می دهند. شمارنده هایی که شما به آنها علاقه دارید عبارتند از "ورودی چرخه های استال داخلی [خواندن|نوشتن]". مقادیر بالاتر برای اینها به این معنی است که شما با موفقیت به حافظه پنهان ضربه می‌زنید، اما درخواست‌های خواندن بسیار زیادی وجود دارد و در نتیجه کد سایه‌زن در انتظار دسترسی به حافظه متوقف می‌شود.

ورودی آهنگ های شمارنده داخلی
شکل 7. ورودی تراک های شمارنده داخلی

غرفه ها را بیاورید

مجموعه بعدی شمارنده‌هایی که می‌توانید به آنها نگاه کنید ، چرخه‌های Stall Prefetcher Vertex و شمارنده‌های Stall Fetch Texture هستند، زیرا اینها نکاتی را در مورد عملکرد کلی حافظه برنامه ما به شما می‌دهند. اگر مقادیر بالاتر از ~ 5% را مشاهده می کنید، به این معنی است که یا داده های ما را به روشی کارآمد در حافظه قرار نمی دهید یا به روشی کارآمد برای استفاده از حافظه پنهان به داده های ما دسترسی دارید. برای جزئیات بیشتر در مورد چگونگی بهبود استفاده از حافظه برای این نوع دارایی ها، نگاهی به مقالات پهنای باند حافظه تحلیل [راس|بافت] بیندازید.

واکشی آهنگ های پیشخوان Stalls
شکل 8. واکشی آهنگ های پیشخوان Stalls