تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يمكن أن يكون معدّل نقل البيانات للذاكرة لبيانات رأس الشاشة معوقًا محتملاً لأداء وحدة معالجة الرسومات في لعبتك. هناك بعض العدّادات في الملف الشخصي لنظام AGI والتي يمكن أن تساعد في تشخيص مشاكل معدّل نقل بيانات الذاكرة الرأسي.
عدّادات Qualcomm Adreno
على الأجهزة المزوّدة بوحدات معالجة الرسومات Qualcomm Adreno، تشمل بعض الشاشات البارزة ما يلي:
عرض مضاد
الوصف
قراءة بيانات Vertex
عرض نطاق بيانات الرأس التي تتم قراءتها من الذاكرة الخارجية.
متوسط وحدات البايت/Vertex
متوسط حجم بيانات الرأس، بالبايت.
% Vertex Fetch Stall
النسبة المئوية لدورات الساعة التي تم فيها حظر وحدة معالجة الرسومات في بيانات الرأس
عدّادات ARM مالي (قيد الإعداد)
على الأجهزة التي تحتوي على وحدات معالجة الرسومات ARM Mali، تشمل بعض الشاشات البارزة ما يلي:
عرض مضاد
الوصف
تحميل/تخزين الإيقاعات من الذاكرة الخارجية
تتم قراءة نبضات البيانات من الذاكرة الخارجية عن طريق وحدة التحميل/المخزن، محسوبًا بمتوسط عدد نبضات البيانات على نوى أداة التظليل.
تحميل/تخزين إيقاعات القراءة من ذاكرة التخزين المؤقت L2
تتم قراءة نبضات البيانات من ذاكرة التخزين المؤقت L2 عن طريق وحدة التحميل/المخزن، مع حساب متوسط البيانات على نوى أداة التظليل.
[المزيد]
لحساب معدل نقل البيانات الإجمالي من متوسط نبضات القراءة، يتم ضرب قيمة العدّاد في عرض الناقل (عادةً 16 بايت) وفي العدد الإجمالي لنوى أداة التظليل. [المزيد]
تحليل مضاد
لقياس سلوك هذه العدّادات، يمكنك قياس متوسط وذروة معدل نقل البيانات على مدار إطار واحد لوحدة معالجة الرسومات، ويمكن تحديد ذلك من خلال مجموعة متجاورة من استخدام وحدة معالجة الرسومات.
الشكل 1: معدل نقل البيانات لقراءة ذاكرة Vertex لإطار واحد، بمتوسط قيمة يبلغ 327 ميغابايت في الثانية وقيمة قصوى تبلغ 1.16 غيغابايت في الثانية
ننصح باستخدام ألا يزيد معدل نقل بيانات القراءة في الذاكرة الرأسية عن 1.5 غيغابايت، وبمتوسط معدل نقل بيانات لا يزيد عن 500 ميغابايت في الثانية. تشير القيم الأعلى إلى إحدى المشاكل الشائعة القليلة التالية:
حجم Vertex كبير جدًا: قد تحتوي الرؤوس على سمات رأس كبيرة أو عدد كبير من سمات الرأس، ما يؤثر في وقت تظليل الرأس بشكل كبير.
لا يتم تقسيم ساحات مشاركات سمات Vertex: يتم تضمين سمات Vertex في مخزن مؤقت واحد، ما يقلّل من كفاءة ذاكرة التخزين المؤقت.
تم إرسال عدد كبير جدًا من الرؤوس لكل إطار: قد تشغل الطُرز المعقدة و/أو عددًا كبيرًا من الطُرز نطاقًا تردديًا أكبر ويستغرق تظليلها وقتًا أطول.
يمكن أيضًا تشخيص مشاكل حجم Vertex من خلال مسار متوسط وحدات البايت / Vertex،
الذي ننصح ألا يزيد حجمه عن 32 بايت أو رأس.
الشكل 2: متوسط حجم الرأس لإطار واحد، بمتوسط قيمة 31.3 بايت
إنّ أفضل طريقة لتشخيص هذه المشاكل التي قد تواجهها هي من خلال تتبُّع بيانات الملف الشخصي للإطار من أجل تحليل تنسيقات الرأس.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Analyze vertex memory bandwidth usage\n\nThe memory bandwidth of vertex data can be a potential bottleneck for your game's GPU performance. There are some counters in an AGI system profile that can help diagnose vertex memory bandwidth issues.\n\nQualcomm Adreno counters\n------------------------\n\nOn devices with Qualcomm Adreno GPUs, some notable counters include:\n\n| Counter | Description |\n|----------------------|---------------------------------------------------------------------|\n| Vertex Memory Read | Bandwidth of vertex data read from external memory. |\n| Average Bytes/Vertex | Average size of vertex data, in bytes. |\n| % Vertex Fetch Stall | Percentage of clock cycles where the GPU is blocked on vertex data. |\n\nARM Mali counters (WIP)\n-----------------------\n\nOn devices with ARM Mali GPUs, some notable counters include:\n\n| Counter | Description |\n|--------------------------------------------|----------------------------------------------------------------------------------------------|\n| Load/store read beats from external memory | Data beats read from external memory by the load/store unit, averaged over the shader cores. |\n| Load/store read beats from L2 cache | Data beats read from the L2 cache by the load/store unit, averaged over the shader cores. |\n| \\[More\\] | |\n\nTo calculate the overall bandwidth from average read beats, the counter value is multiplied by the bus width (typically 16 bytes) and by the total number of shader cores. \\[More\\]\n\nCounter analysis\n----------------\n\nTo measure the behavior of these counters, you can measure the average and peak\nbandwidth over the course of a single GPU frame, which can be delineated with a\ncontiguous block of **GPU Utilization**.\n**Figure 1:**Vertex memory read bandwidth for a single frame, with an average value of 327 MBps and a peak value of 1.16 GBps\n\nWe recommend a peak vertex memory read bandwidth of no higher than 1.5 GBps, and an average bandwidth no higher than 500 MBps. Higher values are indicators of one of a few common issues:\n\n- **Vertex size is too big**: Vertices may have large vertex attributes or a large number of vertex attributes, affecting vertex shading time at large.\n- **Vertex attribute streams are not split**: Vertex attributes are interleaved into a single buffer, reducing cache efficiency.\n- **Too many vertices submitted per frame**: Complex models and/or a large number of models may take up greater bandwidth and take longer to shade.\n\nVertex size issues may also be diagnosed through the **Average Bytes / Vertex**\ntrack, which we recommend to be no higher than 32 bytes or verteces.\n**Figure 2:**Average vertex size for a single frame, with an average value of 31.3 bytes\n\nThe best way to diagnose which of these problems you may be facing is by taking a frame profile trace to [analyze vertex formats](/agi/frame-trace/vertex-formats)."]]