Công cụ tính nghẽn cổ chai giữa CPU và GPU
Dùng thời gian khung hình CPU và GPU được ghi trong cùng một cảnh có thể lặp lại, cùng thiết lập và phương pháp chạy. Chỉ riêng tỷ lệ sử dụng không thể chứng minh điểm nghẽn. Công cụ này không có cơ sở dữ liệu tên phần cứng và không đưa ra khuyến nghị mua hoặc nâng cấp.
Mô tả bối cảnh benchmark
Nhãn là tùy chọn. Không nhập tên tài khoản, số sê-ri hoặc thông tin dự án bí mật.
Các giá trị ở chế độ xem trực tiếp được xử lý qua Livewire. Giá trị trong luồng bước, bao gồm nhãn tùy chọn, được đưa vào URL trang và lịch sử trình duyệt để mỗi bước có thể khôi phục chúng. Không nhập tên hoặc thông tin khối lượng công việc bí mật.
Dùng công cụ này để so sánh thời gian khung hình của CPU và GPU được đo trong cùng một cảnh game. Công cụ ước tính mức trần tốc độ khung hình của từng phía, chỉ xác định phía chậm hơn khi chênh lệch vượt quá ngưỡng sai lệch bạn chọn, đồng thời giải thích vì sao một lần ghi dữ liệu không thể trở thành tỷ lệ nghẽn cổ chai chung cho mọi trò chơi hoặc mọi thiết lập.
Cách phân tích điểm nghẽn ở CPU hoặc GPU
-
1
Ghi lại một cảnh có thể lặp lại
Dùng bài benchmark tích hợp trong game, bản phát lại hoặc một lộ trình cố định với cùng độ phân giải, thiết lập đồ họa, giới hạn khung hình và trạng thái VSync. Hãy chạy game một lúc cho ổn định trước khi bắt đầu ghi.
-
2
Nhập thời gian khung hình của CPU
Sao chép thời gian CPU xử lý mỗi khung hình, tính bằng mili giây, từ trình phân tích hoặc bản ghi hiệu năng. Hãy dùng một giá trị đại diện cho khoảng thời gian thử nghiệm đã chọn.
-
3
Nhập thời gian khung hình của GPU
Sao chép thời gian GPU tương ứng từ cùng cảnh và cùng khoảng ghi dữ liệu. Không kết hợp kết quả từ các lần chạy, cấu hình đặt sẵn hoặc độ phân giải khác nhau.
-
4
Đặt ngưỡng sai lệch và diễn giải kết quả
Ngưỡng sai lệch coi những khác biệt nhỏ là cân bằng vì biến động thông thường giữa các lần chạy có thể đảo ngược một kết quả sít sao. Hãy ghi lại dữ liệu thêm lần nữa trước khi hành động dựa trên chênh lệch nhỏ.
Thời gian khung hình là điểm khởi đầu hữu ích
Số khung hình mỗi giây là nghịch đảo của thời gian khung hình. Khi thời gian được đo bằng mili giây:
mức trần tốc độ khung hình = 1000 / thời gian khung hình tính bằng ms
Công đoạn đo được chậm hơn sẽ quyết định mức trần đơn giản hóa của chuỗi xử lý:
mức trần ước tính = 1000 / max(thời gian khung hình CPU, thời gian khung hình GPU)
Đây là ước tính phục vụ chẩn đoán, không phải lời đảm bảo rằng game sẽ hiển thị khung hình chính xác ở tốc độ đó. Giới hạn khung hình, đồng bộ hóa, hàng đợi, tác vụ của engine, quá trình tải, cơ chế lập lịch của hệ điều hành và khâu đưa hình ảnh lên màn hình đều có thể ảnh hưởng đến FPS quan sát được. Trong hướng dẫn phân tích DirectX, Microsoft định nghĩa riêng thời gian CPU trên mỗi khung hình và thời gian GPU trên mỗi khung hình vì phía nào cũng có thể vượt quá quỹ thời gian dành cho khung hình.
| Tốc độ khung hình mục tiêu | Quỹ thời gian mỗi khung hình |
|---|---|
| 30 FPS | 33,33 ms |
| 60 FPS | 16,67 ms |
| 120 FPS | 8,33 ms |
| 144 FPS | 6,94 ms |
| 240 FPS | 4,17 ms |
Phép đổi 1000 / ms cho biết mức trần của công đoạn được đo. Ví dụ, thời gian CPU 12 ms tương ứng với khoảng 83,33 FPS, còn thời gian GPU 7 ms tương ứng với khoảng 142,86 FPS. Trong lần ghi này, phía CPU chậm hơn và mức trần đơn giản hóa vào khoảng 83,33 FPS.
Vì sao ngưỡng sai lệch quan trọng
Không nên báo cáo các thời gian khung hình gần nhau với sự chắc chắn giả tạo. Công cụ này so sánh chênh lệch tuyệt đối với thời gian khung hình của phía chậm hơn:
chênh lệch tương đối = |CPU ms - GPU ms| / max(CPU ms, GPU ms) × 100
Nếu chênh lệch nằm trong ngưỡng sai lệch đã chọn, kết quả của lần ghi này được xem là cân bằng hoặc chưa thể xác định. Nếu vượt ngưỡng, phía có thời gian khung hình dài hơn là phía đang giới hạn hiệu năng.
| Thời gian CPU | Thời gian GPU | Chênh lệch tương đối | Kết quả với ngưỡng 5% |
|---|---|---|---|
| 12,0 ms | 7,0 ms | 41,67% | Giới hạn ở phía CPU |
| 6,0 ms | 10,0 ms | 40,00% | Giới hạn ở phía GPU |
| 8,0 ms | 8,3 ms | 3,61% | Cân bằng hoặc quá sát để kết luận |
Tỷ lệ phần trăm này mô tả khoảng cách giữa hai số đo thời gian trong một khối lượng công việc. Đây không phải tỷ lệ năng lực CPU hoặc GPU bị lãng phí và cũng không dự đoán mức tăng hiệu năng khi thay phần cứng.
Giúp lần ghi dữ liệu có thể tái lập
Một phép so sánh hữu ích cần giữ ổn định khối lượng công việc. Hãy dùng cùng:
- trò chơi và phiên bản engine;
- tệp lưu, bản phát lại, chuỗi benchmark hoặc lộ trình di chuyển cố định;
- độ phân giải, tỷ lệ kết xuất, cấu hình chất lượng đặt sẵn và API đồ họa;
- giới hạn khung hình, VSync và trạng thái độ phân giải động;
- thiết lập trình điều khiển, chế độ nguồn và khối lượng công việc nền;
- thời gian khởi động làm nóng và thời lượng ghi.
Hãy chạy thử nghiệm nhiều lần và so sánh các thống kê mang tính đại diện thay vì tin vào một mẫu ngắn duy nhất. Hướng dẫn hiệu năng CPU của AMD khuyến nghị cố định các biến như cảnh thử nghiệm và hạt giống ngẫu nhiên, còn hướng dẫn Unreal Engine của hãng đề xuất thay đổi độ phân giải như một biện pháp chẩn đoán: nếu tăng mạnh độ phân giải kết xuất mà hiệu năng gần như không đổi, đó là bằng chứng đáng để tìm hiểu về khả năng bị giới hạn ở phía CPU trong khối lượng công việc ấy. Tuy vậy, đây vẫn chỉ là bằng chứng chứ không phải kết luận chung cho mọi trường hợp.
Vì sao tỷ lệ sử dụng không phải bằng chứng xác thực
Tỷ lệ sử dụng có thể hỗ trợ chẩn đoán nhưng không thể tự mình chứng minh nguyên nhân. Tổng mức sử dụng CPU có thể trông không cao trong khi một luồng chính hoặc luồng kết xuất đã hoạt động hết công suất. Mức sử dụng GPU thấp có thể do giới hạn khung hình, phải chờ CPU, đồng bộ hóa hoặc lượng công việc gửi đến quá ít. Mức sử dụng GPU cao cho biết thiết bị đã bận; nó không xác định chính xác lượt kết xuất tốn kém hay dự đoán kết quả nâng cấp.
Các công cụ đo thời gian cung cấp bối cảnh tốt hơn. Intel PresentMon ghi lại dữ liệu đo từ xa của khung hình và GPU, NVIDIA Nsight hiển thị thời lượng khung hình trên CPU và GPU cùng các phạm vi công việc của GPU, còn AMD Radeon GPU Profiler trực quan hóa thời gian hàng đợi và những khoảng GPU nhàn rỗi. Ngay cả các ngưỡng trong trình phân tích cũng chỉ là quy tắc kinh nghiệm: cách Radeon GPU Profiler phân loại trường hợp bị giới hạn bởi CPU dùng một ngưỡng thời gian GPU nhàn rỗi có thể điều chỉnh, không phải quy luật áp dụng cho mọi engine.
Mức FPS thấp nhất 1% cho biết và không cho biết điều gì
Mức FPS thấp nhất 1% tóm tắt phần đuôi chậm của phân bố thời gian khung hình, vì vậy nó hữu ích để phát hiện tình trạng phân phối khung hình không đều mà số trung bình có thể che khuất. Chỉ số này không cho biết CPU, GPU, quá trình truyền phát tài nguyên, biên dịch shader, áp lực bộ nhớ hay một lần khựng khác đã gây ra các khung hình chậm đó.
Định nghĩa cũng không thống nhất. Một số báo cáo suy ra tốc độ từ thời gian khung hình ở phân vị thứ 99 (1000 / thời gian khung hình p99), còn số khác lấy trung bình 1% mẫu FPS chậm nhất. NVIDIA Nsight Systems định nghĩa độ dài khung hình ở phân vị thứ 99 là giá trị mà chỉ 1% khung hình có thời lượng dài hơn. Hãy ghi lại công cụ và định nghĩa khi so sánh kết quả, đồng thời không dùng mức FPS thấp nhất 1% để thay thế cặp thời gian khung hình CPU và GPU tương ứng.
Vì sao tỷ lệ nghẽn cổ chai chung dễ gây hiểu lầm
Máy tính không có một tỷ lệ nghẽn cổ chai CPU/GPU cố định vĩnh viễn. Công việc giới hạn hiệu năng có thể thay đổi theo trò chơi, cảnh, độ phân giải, thiết lập, phiên bản engine, trình điều khiển, giới hạn khung hình và tốc độ khung hình mục tiêu. Một cảnh thành phố đông đúc có thể gây áp lực lên mô phỏng và khâu gửi lệnh vẽ, trong khi một cảnh khác ở tỷ lệ kết xuất cao hơn có thể dành nhiều thời gian hơn cho GPU.
Các công cụ tính chỉ dựa vào tên mẫu phần cứng không thể quan sát những điều kiện đó. Một kết quả như “nghẽn cổ chai 23%” không có ý nghĩa kỹ thuật ổn định nếu thiếu số đo thời gian thực tế trong cùng một cảnh. Hãy dùng công cụ này để mô tả lần ghi bạn thực sự thực hiện, lặp lại thử nghiệm với khối lượng công việc bạn quan tâm và dùng trình phân tích dòng thời gian khi cần tìm chính xác tác vụ gây ra giới hạn.
Tài liệu kỹ thuật chính thức
- Microsoft: Phân tích ứng dụng DirectX
- Intel: Giám sát hiệu năng bằng PresentMon
- NVIDIA: Tình trạng khung hình trong Nsight Systems
- NVIDIA: GPU Trace trong Nsight Graphics
- AMD GPUOpen: Tổng quan về Radeon GPU Profiler
- AMD GPUOpen: Hướng dẫn hiệu năng Unreal Engine
- AMD GPUOpen: Hướng dẫn hiệu năng CPU Ryzen
Câu hỏi thường gặp
Hãy nhập thời gian CPU trên mỗi khung hình và thời gian GPU trên mỗi khung hình, tính bằng mili giây, từ cùng một bản ghi của trình phân tích và cùng một cảnh. Không nhập tỷ lệ sử dụng tổng thể, tốc độ xung nhịp được quảng cáo, điểm benchmark hoặc thời gian đo với các thiết lập khác nhau.
Không. Kết quả này có nghĩa là trong lần ghi đó, thời gian khung hình CPU đo được dài hơn thời gian khung hình GPU với mức chênh lệch vượt quá ngưỡng đã chọn. Giới hạn khung hình, thiết lập game, công việc nền, một luồng xử lý nặng hoặc chính cảnh đó đều có thể thay đổi kết quả. Hãy phân tích khối lượng công việc trước khi đưa ra kết luận rộng hơn.
Năm phần trăm là điểm khởi đầu thực tế để tách một chênh lệch rõ ràng khỏi kết quả sít sao, nhưng đây không phải tiêu chuẩn chung. Hãy dùng ngưỡng rộng hơn khi các lần chạy lặp lại biến động nhiều hơn và so sánh nhiều bản ghi trước khi phân loại một khác biệt nhỏ.
Không. Hai chỉ số này tóm tắt những phần khác nhau của hiệu năng khung hình được hiển thị và không phải số đo thời gian CPU và GPU. Hãy dùng các số đo CPU-ms và GPU-ms tương ứng. Giữ FPS trung bình và mức FPS thấp nhất 1% làm bối cảnh riêng cho thông lượng và độ ổn định của thời gian khung hình.
Độ phân giải và tỷ lệ kết xuất thường thay đổi công việc của GPU trực tiếp hơn so với công việc mô phỏng hoặc gửi lệnh của CPU. Tăng chúng có thể đẩy thời gian khung hình dài hơn về phía GPU; giảm chúng có thể làm lộ giới hạn phía CPU ở tốc độ khung hình cao hơn. Kết quả mới mô tả khối lượng công việc mới, không phải một sự mâu thuẫn.
Công cụ liên quan
Máy tính dự đoán chiều cao khi trưởng thành
Ước tính chiều cao mục tiêu khi trưởng thành của trẻ từ chiều cao bố mẹ ruột, theo xentimét hoặc feet/inch, kèm khoảng mục tiêu thường gặp.
Công cụ tính chi phí nhiên liệu
Ước tính chi phí nhiên liệu từ quãng đường, mức tiêu thụ và giá tại cây xăng. Dùng km/l, L/100 km hoặc MPG với đơn vị phù hợp.
Máy tính cổ tức
Ước tính thu nhập cổ tức hằng năm, lợi suất cổ tức, lợi suất trên giá vốn và tăng trưởng tái đầu tư từ số cổ phiếu, giá và cổ tức mỗi cổ phiếu.
Máy tính giảm giá
Tính giá cuối cùng và số tiền tiết kiệm từ giá gốc và phần trăm giảm giá. Hữu ích cho khuyến mãi, mã giảm giá và kiểm tra nhanh trước khi thanh toán.
Máy tính chênh lệch tuổi
Tính chênh lệch chính xác giữa hai ngày sinh theo năm, tháng và ngày, kèm tổng số tháng, tuần và ngày.
Máy tính gia tốc
Tính gia tốc trung bình từ vận tốc ban đầu, vận tốc cuối và thời gian. Hiển thị m/s², lực g tương đương và độ thay đổi vận tốc.