NSight Systems là một công cụ mạnh mẽ được thiết kế để trực quan hóa và phân tích các tương tác CPU-GPU trong các ứng dụng, cung cấp cái nhìn sâu sắc về tắc nghẽn hiệu suất và cơ hội tối ưu hóa. Đây là cách nó trực quan hóa các tương tác này:
Phân tích hiệu suất toàn hệ thống
Các hệ thống NSIGHT nắm bắt dữ liệu hoạt động trên toàn hệ thống, bao gồm cả các sự kiện CPU và GPU và hiển thị chúng trên một dòng thời gian thống nhất. Dòng thời gian này cho phép các nhà phát triển xem các thành phần khác nhau của hệ thống tương tác với nhau như thế nào theo thời gian, giúp dễ dàng xác định các mối tương quan, phụ thuộc và tắc nghẽn trong quy trình làm việc của ứng dụng [3] [4].
Trực quan hoạt động CPU
Hệ thống NSIGHT trực quan hóa hoạt động CPU bằng cách hiển thị trạng thái luồng, sử dụng và thực thi thuật toán. Điều này giúp các nhà phát triển hiểu cách sử dụng các tài nguyên CPU và nơi có thể tồn tại tắc nghẽn tiềm năng. Công cụ hỗ trợ phân tích cây đa quy trình, cho phép người dùng theo dõi hoạt động của nhiều quy trình và luồng đồng thời [1] [3].
Trực quan hóa hoạt động GPU
Đối với hoạt động GPU, NSIGH Systems cung cấp những hiểu biết chi tiết về khối lượng công việc GPU, bao gồm tối ưu hóa bộ xử lý phát trực tuyến (SM), chuyển bộ nhớ và thực thi kernel. Nó hỗ trợ truy tìm các API GPU khác nhau như Cuda, Vulkan và OpenGL, cho phép các nhà phát triển phân tích các tác vụ tính toán GPU và đồ họa theo chiều sâu [3] [4]. Công cụ này cũng cung cấp lấy mẫu số liệu GPU, bao gồm các số liệu như sử dụng SM, hoạt động lõi tenor và thông lượng hướng dẫn. Các số liệu này giúp các nhà phát triển tối ưu hóa hiệu suất GPU bằng cách xác định quá trình sử dụng không hiệu quả hoặc thiếu hiệu quả trong việc sử dụng tài nguyên GPU [1] [3].
Các sự kiện CPU và GPU tương quan
Một trong những tính năng chính của các hệ thống NSIGHT là khả năng tương quan các sự kiện CPU và GPU. Bằng cách trực quan hóa cả hai hoạt động CPU và GPU trên cùng một dòng thời gian, các nhà phát triển có thể thấy các hoạt động CPU ảnh hưởng đến hiệu suất GPU như thế nào và ngược lại. Mối tương quan này là rất quan trọng để xác định các tắc nghẽn xảy ra do sự tương tác giữa CPU và GPU, chẳng hạn như sự chậm trễ truyền dữ liệu hoặc các vấn đề đồng bộ hóa [3] [4].
Chi phí thấp và khả năng mở rộng
Các hệ thống NSIGHT được thiết kế để hoạt động với chi phí thấp, đảm bảo rằng quy trình định hình không ảnh hưởng đáng kể đến hiệu suất của ứng dụng. Điều này làm cho nó phù hợp để phân tích các ứng dụng quy mô lớn, phức tạp chạy trên các nền tảng NVIDIA khác nhau, từ máy trạm đến trung tâm dữ liệu và môi trường đám mây [3] [6].
Giao diện người dùng và điều hướng
Công cụ này cung cấp GUI thân thiện với người dùng cho phép các nhà phát triển điều hướng qua chế độ xem dòng thời gian bằng cách sử dụng các thanh cuộn, bánh xe chuột và phím tắt. Giao diện này cho phép người dùng phóng to các phạm vi hoặc sự kiện thời gian cụ thể, tạo điều kiện phân tích chi tiết các vấn đề về hiệu suất [5] [9].
Nhìn chung, NSight Systems cung cấp một cái nhìn toàn diện về các tương tác CPU-GPU, cho phép các nhà phát triển tối ưu hóa các ứng dụng của họ để có hiệu suất và hiệu quả tốt hơn trên một loạt các nền tảng.
Trích dẫn:
[1] https://extremecomputingtraining.anl.gov/wp-content/uploads/sites/96/2022/11/ATPESC-2022-Track-6-Talk-2-Keipert-NVIDIA.pdf
[2] https://bede-documentation.readthedocs.io/en/latest/software/tools/nsight-systems.html
[3] https://developer.nvidia.com/nsight-systems
[4] https://indico.cern.ch/event/962112/contributions/4047370/attachments/2159916/3643963/Nsight%20Systems%20-%20x86%20Introduction%20-%20CERN.pdf
[5] https://www.youtube.com/watch?v=TGCHXCFM-YO
.
[7] https://www.youtube.com/watch?v=kkanp0kl_hk
[8] https://docs.nvidia.com/nsight-systems/userguide/index.html
[9] https://www.youtube.com/watch?v=Dudgo66iadu
[10] https://dev-discuss.pytorch.org/t/using-nsight-systems-to-profile-gpu-workload/59