CPU frame time thấp hơn GPU time thì có thể kết luận gì?

Tóm tắt

Nếu phép đo cùng một đoạn cho thấy GPU time dài hơn CPU time, đó có thể là dấu hiệu GPU đang chiếm phần đáng kể của thời gian khung hình trong điều kiện đo ấy. Nhưng không thể chỉ từ hai con số kết luận toàn bộ ứng dụng luôn bị giới hạn GPU. Hàng đợi, đồng bộ, cách lấy mẫu và định nghĩa từng trường thời gian có thể làm quan hệ phức tạp hơn; cần kiểm tra nhiều khung hình và bối cảnh trước khi gọi tên nút thắt.

Điểm chính

  1. Unreal Timing Insights hỗ trợ xem các track thời gian và sự kiện trong trace; diễn giải phụ thuộc dữ liệu và phạm vi capture cụ thể. [1]
  2. Unity FrameTiming API định nghĩa các trường thời gian trong ngữ cảnh Unity; không đồng nghĩa với một chỉ số phổ quát cho mọi engine. [2]
  3. So sánh chỉ hợp lý khi các trường được hiểu đúng, đo cùng khoảng và quy trình có thể lặp lại.
  4. Một frame hoặc một đoạn ngắn không đại diện tất cả cảnh và tải.
  5. Hãy báo cáo phiên bản engine, cấu hình, số mẫu và giới hạn thay vì chỉ gắn nhãn CPU-bound/GPU-bound.

Hai con số không phải toàn bộ pipeline

CPU và GPU có thể làm việc theo các giai đoạn chồng lấp, trong khi hàng đợi và điểm đồng bộ quyết định lúc một kết quả trở nên cần thiết. Vì thế, việc CPU time được báo cáo thấp hơn GPU time không có nghĩa CPU “rảnh hoàn toàn”, cũng không tự nó cho biết khung hình bị trì hoãn ở đâu trong toàn chuỗi. Trước hết cần xem mỗi trường đo đại diện cho đoạn nào và lấy mốc bắt đầu, kết thúc ra sao.

Trong Unreal, Timing Insights đặt hoạt động vào timeline để điều tra các khoảng thời gian và sự kiện CPU/GPU. Đây là cách đọc trace của công cụ, không phải quy tắc rằng một phép so sánh đơn giản đủ phân loại mọi ứng dụng. Kiểm tra trace và khoảng đo giúp hiểu liệu hai đại lượng có thực sự tương ứng. [1]

Đọc chỉ số theo đúng engine

Các engine và profiler có thể đặt tên trường gần giống nhau nhưng định nghĩa, giới hạn nền tảng và cách lấy mẫu khác nhau. Unity FrameTiming API cung cấp các trường về thời gian CPU, GPU và frame theo phạm vi API của Unity. Vì vậy, cần dùng tài liệu đúng phiên bản và tránh lấy giá trị Unity áp sang Unreal hoặc sang một công cụ không cùng định nghĩa. [2]

Illustration: Đọc chỉ số theo đúng Decorative illustration for the section "Đọc chỉ số theo đúng"; visual only, carries no data.

Nếu GPU time cao hơn trong một mẫu, đó là tín hiệu để điều tra workload GPU của chính mẫu ấy. Hãy xem thêm nhiều khung hình, các cảnh khác nhau, thời điểm tải ổn định và sự kiện đồng bộ. Nếu CPU time thấp hơn nhưng frame vẫn kéo dài, câu hỏi tiếp theo là phần thời gian còn lại được đo ở đâu, có chờ hay không, và profiler có bao phủ đường thực thi cần quan sát không. Không nên tự tính “CPU time + GPU time” nếu các giai đoạn có thể chồng lấp.

Một số dashboard tổng hợp theo cách riêng. Trước khi so sánh, đọc hướng dẫn để xác định số liệu là thời gian thực thi, thời gian chờ, ước lượng hay mức cực đại. So sánh các trường không cùng ý nghĩa có thể tạo ra kết luận chắc chắn giả.

Quy trình kiểm tra có thể lặp lại

Ghi rõ phiên bản engine và profiler, cấu hình đồ họa, cảnh thử, khoảng capture và cách chọn khung hình. Thu thập nhiều lần dưới điều kiện tương đương, giữ lại cả biến động thay vì chỉ chọn lần thuận lợi. Nếu dùng một phép thử đối chứng, thay đổi từng yếu tố và ghi lại yếu tố nào đã thay đổi; nếu thay nhiều cài đặt cùng lúc, không thể biết yếu tố nào tạo ra khác biệt.

Khi báo cáo, trình bày median hoặc phân vị cùng cỡ mẫu nếu phù hợp, nhưng không che các giá trị khác thường mà không giải thích. Viết “trong capture này, trường GPU time cao hơn trường CPU time” chính xác hơn khẳng định “máy luôn GPU-bound”. Dữ liệu bổ sung như timeline sự kiện có thể giúp lập giả thuyết, nhưng cần kiểm tra giả thuyết bằng phép đo tiếp theo.

Người xem thể thao thường quan tâm trải nghiệm nội dung hơn công cụ đo. Bạn có thể KLIVE – livestream esports hôm nay để khám phá nội dung thể thao và esports; liên kết này không khẳng định mọi trận đang phát hoặc KLIVE cung cấp benchmark phần cứng.

Nguồn tham khảo

  1. Epic Games — Timing Insights
  2. Unity — FrameTiming API

Câu hỏi thường gặp

GPU time cao hơn CPU time có chứng minh GPU là nút thắt không?

Không tuyệt đối. Đây là dấu hiệu trong điều kiện và định nghĩa đo cụ thể; cần xét pipeline, đồng bộ, hàng đợi và nhiều mẫu.

Có thể cộng CPU time với GPU time để ra frame time không?

Không nên mặc định như vậy vì các công đoạn có thể chồng lấp và profiler có thể định nghĩa trường khác nhau.

Nên ghi gì để người khác kiểm tra kết quả?

Ghi engine/profiler và phiên bản, cấu hình, cảnh, khoảng capture, cách chọn mẫu, các trường đo và giới hạn diễn giải.

Back to Puppy Care