Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Băng thông bộ nhớ của dữ liệu đỉnh có thể là một điểm tắc nghẽn tiềm ẩn đối với hiệu suất GPU của trò chơi. Có một số bộ đếm trong hồ sơ hệ thống AGI có thể giúp chẩn đoán các vấn đề về băng thông bộ nhớ đỉnh.
Bộ đếm Qualcomm Adreno
Trên các thiết bị có GPU Qualcomm Adreno, một số bộ đếm đáng chú ý bao gồm:
Bộ đếm
Mô tả
Đọc bộ nhớ đỉnh
Băng thông của dữ liệu đỉnh được đọc từ bộ nhớ ngoài.
Số byte/đỉnh trung bình
Kích thước trung bình của dữ liệu đỉnh, tính bằng byte.
% Vertex Fetch Stall
Tỷ lệ phần trăm chu kỳ đồng hồ mà GPU bị chặn trên dữ liệu đỉnh.
Bộ đếm ARM Mali (đang trong quá trình triển khai)
Trên các thiết bị có GPU ARM Mali, một số bộ đếm đáng chú ý bao gồm:
Bộ đếm
Mô tả
Tải/lưu trữ nhịp đọc từ bộ nhớ ngoài
Số lượng dữ liệu được đọc từ bộ nhớ ngoài theo đơn vị tải/lưu trữ, trung bình trên các lõi chương trình đổ bóng.
Tải/lưu trữ các nhịp đọc từ bộ nhớ đệm L2
Số lượng nhịp dữ liệu được đọc từ bộ nhớ đệm L2 theo đơn vị tải/lưu trữ, trung bình trên các lõi chương trình đổ bóng.
[Khác]
Để tính toán tổng băng thông từ số lượt đọc trung bình, giá trị bộ đếm được nhân với độ rộng của bus (thường là 16 byte) và tổng số lõi chương trình đổ bóng. [Khác]
Phân tích phản hồi
Để đo lường hành vi của các bộ đếm này, bạn có thể đo lường băng thông trung bình và băng thông đỉnh trong một khung hình GPU duy nhất. Khung hình này có thể được phân định bằng một khối liên tục của Mức sử dụng GPU.
Hình 1: Băng thông đọc bộ nhớ đỉnh cho một khung hình, với giá trị trung bình là 327 MB/giây và giá trị đỉnh là 1,16 GB/giây
Bạn nên sử dụng băng thông đọc bộ nhớ đỉnh của đỉnh không quá 1, 5 GB/giây và băng thông trung bình không quá 500 MB/giây. Giá trị càng cao thì càng cho thấy một trong số ít vấn đề thường gặp:
Kích thước đỉnh quá lớn: Các đỉnh có thể có nhiều thuộc tính đỉnh hoặc một số lượng lớn thuộc tính đỉnh, ảnh hưởng lớn đến thời gian đổ bóng đỉnh.
Luồng thuộc tính đỉnh không được phân chia: Các thuộc tính đỉnh được xen kẽ vào một vùng đệm duy nhất, làm giảm hiệu quả của bộ nhớ đệm.
Số lượng đỉnh được gửi trên mỗi khung hình quá nhiều: Các mô hình phức tạp và/hoặc số lượng lớn mô hình có thể chiếm nhiều băng thông hơn và mất nhiều thời gian hơn để tạo bóng.
Bạn cũng có thể chẩn đoán các vấn đề về kích thước đỉnh thông qua chỉ số Số byte trung bình / đỉnh. Chúng tôi đề xuất chỉ số này không được cao hơn 32 byte hoặc đỉnh.
Hình 2: Kích thước đỉnh trung bình cho một khung hình, với giá trị trung bình là 31,3 byte
Cách tốt nhất để chẩn đoán vấn đề mà bạn có thể gặp phải là lấy một dấu vết hồ sơ khung hình để phân tích định dạng đỉnh.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-27 UTC."],[],[],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)."]]