NSight Systems เป็นเครื่องมือที่ทรงพลังที่ออกแบบมาเพื่อให้เห็นภาพและวิเคราะห์การโต้ตอบของ CPU-GPU ในแอปพลิเคชันให้ข้อมูลเชิงลึกเกี่ยวกับคอขวดประสิทธิภาพและโอกาสในการเพิ่มประสิทธิภาพ นี่คือวิธีที่มันแสดงให้เห็นถึงการโต้ตอบเหล่านี้:
การวิเคราะห์ประสิทธิภาพทั่วทั้งระบบ
ระบบ NSIGHT จะรวบรวมข้อมูลกิจกรรมทั่วทั้งระบบรวมถึงเหตุการณ์ CPU และ GPU และแสดงในไทม์ไลน์แบบครบวงจร ไทม์ไลน์นี้ช่วยให้นักพัฒนาเห็นว่าส่วนประกอบที่แตกต่างกันของระบบมีปฏิสัมพันธ์กันอย่างไรเมื่อเวลาผ่านไปทำให้ง่ายต่อการระบุความสัมพันธ์การพึ่งพาและคอขวดในเวิร์กโฟลว์ของแอปพลิเคชัน [3] [4]
การสร้างภาพกิจกรรม CPU
ระบบ NSight แสดงให้เห็นถึงกิจกรรม CPU โดยแสดงสถานะเธรดการใช้ประโยชน์และการดำเนินการอัลกอริทึม สิ่งนี้ช่วยให้นักพัฒนาเข้าใจว่ามีการใช้ทรัพยากร CPU อย่างไรและอาจมีปัญหาคอขวดที่มีศักยภาพ เครื่องมือรองรับการวิเคราะห์ต้นไม้หลายกระบวนการช่วยให้ผู้ใช้สามารถติดตามกิจกรรมของหลายกระบวนการและเธรดพร้อมกัน [1] [3]
การสร้างภาพกิจกรรม GPU
สำหรับกิจกรรม GPU ระบบ NSight จะให้ข้อมูลเชิงลึกโดยละเอียดเกี่ยวกับปริมาณงาน GPU รวมถึงการเพิ่มประสิทธิภาพการสตรีมมิ่งมัลติโพสเตอร์ (SM) การถ่ายโอนหน่วยความจำและการดำเนินการเคอร์เนล รองรับการติดตาม API GPU ต่างๆเช่น CUDA, Vulkan และ OpenGL ทำให้นักพัฒนาสามารถวิเคราะห์การคำนวณ GPU และงานกราฟิกในเชิงลึก [3] [4] เครื่องมือนี้ยังมีการสุ่มตัวอย่างตัวชี้วัด GPU ซึ่งรวมถึงการวัดเช่นการใช้ SM กิจกรรมแกนเทนเซอร์และปริมาณงานการเรียนการสอน ตัวชี้วัดเหล่านี้ช่วยให้นักพัฒนาซอฟต์แวร์เพิ่มประสิทธิภาพการทำงานของ GPU โดยการระบุ underutilization หรือความไร้ประสิทธิภาพในการใช้ทรัพยากร GPU [1] [3]
เหตุการณ์ CPU และ GPU ที่สัมพันธ์กัน
หนึ่งในคุณสมบัติที่สำคัญของระบบ NSight คือความสามารถในการเชื่อมโยงเหตุการณ์ CPU และ GPU ด้วยการแสดงภาพทั้งกิจกรรม CPU และ GPU ในไทม์ไลน์เดียวกันนักพัฒนาสามารถดูว่าการดำเนินงานของ CPU มีผลต่อประสิทธิภาพของ GPU และในทางกลับกันอย่างไร ความสัมพันธ์นี้มีความสำคัญสำหรับการระบุคอขวดที่เกิดขึ้นเนื่องจากการโต้ตอบระหว่าง CPU และ GPU เช่นการถ่ายโอนข้อมูลล่าช้าหรือปัญหาการซิงโครไนซ์ [3] [4]
ค่าโสหุ้ยและความสามารถในการปรับขนาดต่ำ
ระบบ NSight ได้รับการออกแบบให้ทำงานด้วยค่าใช้จ่ายต่ำเพื่อให้มั่นใจว่ากระบวนการทำโปรไฟล์ไม่ส่งผลกระทบต่อประสิทธิภาพของแอปพลิเคชันอย่างมีนัยสำคัญ สิ่งนี้ทำให้เหมาะสำหรับการวิเคราะห์แอพพลิเคชั่นขนาดใหญ่ที่ซับซ้อนซึ่งทำงานบนแพลตฟอร์ม NVIDIA ต่างๆตั้งแต่เวิร์กสเตชันไปจนถึงศูนย์ข้อมูลและสภาพแวดล้อมคลาวด์ [3] [6]
อินเทอร์เฟซผู้ใช้และการนำทาง
เครื่องมือนี้ให้ GUI ที่ใช้งานง่ายซึ่งช่วยให้นักพัฒนาสามารถนำทางผ่านมุมมองไทม์ไลน์โดยใช้แถบเลื่อนล้อเมาส์และแป้นพิมพ์ลัด อินเทอร์เฟซนี้ช่วยให้ผู้ใช้สามารถซูมเข้าช่วงเวลาหรือเหตุการณ์ที่เฉพาะเจาะจงอำนวยความสะดวกในการวิเคราะห์รายละเอียดของปัญหาประสิทธิภาพ [5] [9]
โดยรวมแล้ว NSight Systems นำเสนอมุมมองที่ครอบคลุมของการโต้ตอบ CPU-GPU ทำให้นักพัฒนาสามารถเพิ่มประสิทธิภาพการใช้งานเพื่อประสิทธิภาพและประสิทธิภาพที่ดีขึ้นในแพลตฟอร์มที่หลากหลาย
การอ้างอิง:
[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-%20
[5] https://www.youtube.com/watch?v=TGCHXCFM-YO
[6] https://docs.nersc.gov/tools/performance/nvidiaproftools/
[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