Một chỉ số latency có thể trả lời câu hỏi nào và để ngỏ câu hỏi nào?
Một chỉ số latency chỉ trả lời câu hỏi về khoảng thời gian giữa hai điểm mà phép đo xác định. Nếu không biết điểm bắt đầu, điểm kết thúc, thiết bị và phương pháp đo, con số không thể đại diện cho toàn bộ độ trễ từ thao tác đến hình ảnh. NVIDIA Reflex tập trung vào việc đo và giảm độ trễ trong pipeline game tương ứng, còn DXGI cho phép ứng dụng đặt giới hạn số frame có thể được xếp hàng; mỗi nguồn mô tả một phạm vi riêng, không phải một điểm tổng hợp phổ quát.
Điểm chính
- NVIDIA Reflex SDK mô tả công cụ và kỹ thuật liên quan đến latency trong pipeline game; cần xác định metric cụ thể khi so sánh. [1]
- IDXGIDevice1::SetMaximumFrameLatency điều khiển số frame có thể được xếp hàng trước khi ứng dụng được thông báo; đó không phải phép đo độ trễ màn hình đầu-cuối. [2]
- Ghi rõ ranh giới đo, thiết bị, tần suất lấy mẫu và cách tổng hợp số liệu.
- Một chỉ số CPU/GPU hoặc queue không tự bao gồm màn hình, thiết bị nhập và cảm nhận đầu-cuối.
- Không cộng hoặc so trực tiếp các metric khác định nghĩa mà chưa kiểm tra đơn vị và phạm vi.
Latency không phải một đại lượng duy nhất
Từ “latency” thường được dùng cho nhiều khoảng thời gian: phản hồi của thiết bị nhập, chờ trong hàng đợi, xử lý CPU, thực thi GPU, truyền tín hiệu tới màn hình hoặc toàn bộ thời gian từ thao tác đến photon hiển thị. Các phép đo này có thể cùng đơn vị mili giây nhưng không đo cùng đoạn. Muốn hiểu một con số, trước hết hãy hỏi đồng hồ bắt đầu ở đâu, dừng ở đâu và sự kiện nào được xem là kết quả.
Ví dụ, phép đo giữa một sự kiện trong game và lúc frame được gửi tới thiết bị hiển thị chưa chắc bao gồm thời gian quét của màn hình hoặc độ trễ của chuột. Một metric hàng đợi mô tả trạng thái xếp hàng, không tự nói người dùng cảm nhận được bao lâu. Nếu hai công cụ công bố số khác nhau, chúng có thể đang đo các ranh giới khác nhau chứ không nhất thiết một công cụ sai.
Reflex và frame queue trả lời những câu hỏi nào
NVIDIA Reflex SDK là bộ công cụ hướng tới latency trong pipeline game, với các khả năng để nhà phát triển tích hợp và đo những phần liên quan. Tài liệu NVIDIA là điểm bắt đầu để hiểu phạm vi của SDK, nhưng khi xem một số liệu cụ thể vẫn cần đọc tên marker, thiết bị đo và cách triển khai trong trò chơi. [1] Không thể suy từ việc một công nghệ tồn tại rằng mọi game đã tích hợp nó hoặc mọi người dùng có cùng kết quả.
Ở một lớp khác, IDXGIDevice1::SetMaximumFrameLatency đặt giới hạn số frame có thể được xếp hàng trước khi ứng dụng được thông báo rằng có thể bắt đầu frame mới. Tài liệu Microsoft mô tả hành vi API này, không biến giá trị giới hạn thành số đo latency đầu-cuối. [2] Hàng đợi ít hơn có thể thay đổi cách pipeline vận hành, nhưng ảnh hưởng phụ thuộc ứng dụng, đồng bộ và tải; không thể rút ra một mức giảm cố định cho mọi cấu hình.
Để tham khảo thêm chương trình thể thao trực tiếp, có thể xem các chương trình livestream thể thao tại KLIVE; liên kết này không ngụ ý nền tảng có metric hoặc công nghệ đo latency nào.
Ranh giới đo quyết định cách đọc
Hãy mô tả một phép đo bằng bốn thông tin: sự kiện bắt đầu, sự kiện kết thúc, thiết bị/công cụ thu và cách lấy mẫu. Chẳng hạn, một phép thử có thể bắt đầu từ tín hiệu nút bấm và kết thúc tại phát hiện thay đổi hình ảnh; phép đo khác chỉ xem khoảng chờ giữa hai giai đoạn trong phần mềm. Cả hai có thể gọi là độ trễ nhưng phạm vi khác hẳn. Nếu phép đo chỉ có CPU và GPU, đừng gọi đó là độ trễ người dùng đầu-cuối.
Khi so sánh hai kết quả, xác nhận cùng phiên bản trò chơi, cảnh, tốc độ khung hình, màn hình, thiết bị nhập, đồng bộ và phương pháp đo. Ghi cả độ phân tán hoặc nhiều lượt, không chỉ con số tốt nhất. Một phép đo bằng camera tốc độ cao cũng có sai số về thời điểm kích hoạt và nhận diện điểm ảnh; overlay hoặc marker phần mềm lại có thể bỏ qua các thành phần vật lý. Phương pháp cần phù hợp với câu hỏi, không có một công cụ duy nhất trả lời mọi ranh giới.
Dùng chỉ số để tìm vấn đề thay vì che lấp phần chưa biết
Nếu chỉ số cao ở một stage, nó giúp ưu tiên nơi cần điều tra, nhưng chưa chắc chỉ ra nguyên nhân gốc. Đối chiếu timeline hoặc marker lân cận, xem hàng đợi có tăng không và kiểm tra liệu tải CPU/GPU có thay đổi. Nếu metric không cải thiện sau khi thay một thiết lập, xác nhận thiết lập đó thực sự có hiệu lực và ranh giới đo có bao gồm phần bị tác động hay không.
Trình bày kết quả với tên metric đầy đủ và giới hạn diễn giải. Ví dụ: “thời gian từ marker A đến B trong công cụ X” chính xác hơn “độ trễ hệ thống”. Một con số đơn lẻ có thể rất hữu ích trong phạm vi định nghĩa rõ, nhưng không thể tự cho biết người dùng chờ bao lâu, màn hình phản hồi ra sao, hoặc phần nào của pipeline còn chưa được đo.
Khi muốn tìm hiểu thêm nội dung thể thao sau chủ đề kỹ thuật, bạn có thể tham khảo Trải nghiệm các chương trình livestream thể thao tại KLIVE; hãy xác nhận trực tiếp trên trang.
Nguồn tham khảo
Câu hỏi thường gặp
Một con số latency có thể đại diện toàn bộ hệ thống không?
Chỉ khi phép đo thực sự bao phủ các điểm bắt đầu và kết thúc toàn hệ thống. Thường cần mô tả rõ các thành phần bị bao gồm và bỏ qua.
SetMaximumFrameLatency có trả về độ trễ màn hình không?
Không. API đặt giới hạn frame xếp hàng; đó không phải phép đo từ thao tác đầu vào tới hình ảnh hiển thị.
Có thể so sánh hai metric cùng đơn vị mili giây không?
Không nên nếu chưa biết ranh giới, công cụ, lấy mẫu và điều kiện. Cùng đơn vị không có nghĩa cùng đại lượng.
Nên ghi gì khi báo cáo latency?
Ghi điểm bắt đầu/kết thúc, công cụ và thiết bị, cấu hình thử, số lượt, cách tổng hợp cùng các phần chưa đo.