มุมมองเส้นเวลาใน Nsight Systems
ดูช่วงว่าง การคัดลอก และการทำงานซ้อนกัน
มุมมองเส้นเวลาใน Nsight Systems เป็นบทเรียน CUDA Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน CUDA Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส CUDA Academy มีบทเรียนทั้งหมด 4 บทเรียน
พบกับระบบ Nsight
ระบบ Nsight คือเครื่องมือวิเคราะห์ประสิทธิภาพที่มองเห็นภาพรวมจากมุมสูง โดยแสดงเส้นเวลาทั้งหมดของโปรแกรม เพื่อให้คุณมองเห็นว่า GPU หยุดรออยู่ตรงไหน 🔭
เหตุใดจึงต้องใช้เส้นเวลา
เส้นเวลา จะวางการดำเนินการทุกอย่างลงบนแกนเวลา คุณจะเห็นได้ทันทีว่าสิ่งใดทำงานเมื่อใด และแต่ละส่วนใช้เวลานานเท่าไร โดยแสดงเทียบกันเคียงข้าง
การบันทึกการติดตาม
คุณบันทึกการทำงานหนึ่งครั้งด้วย nsys จากบรรทัดคำสั่ง โดยจะเก็บกิจกรรมของ GPU และ CPU ไว้ในรายงานเดียวที่เปิดดูภายหลังได้
nsys profile -o report ./my_cuda_appแถวที่คุณเห็น
แต่ละ แถว คือกระแสกิจกรรม เช่น เธรดของ CPU การเรียกส่วนต่อประสาน CUDA เคอร์เนล และการคัดลอกหน่วยความจำ การอ่านแถวเหล่านี้ร่วมกันจะช่วยเล่าเรื่องราวทั้งหมด
การมองหาช่องว่าง
พื้นที่ว่างบนแถวของ GPU คือ ช่องว่าง ซึ่งหมายถึงช่วงเวลาที่ GPU ไม่ได้ทำงาน ช่องว่างเหล่านี้เป็นเบาะแสสำคัญที่สุดว่าสิ่งใดกำลังรออยู่ ⏳
การคัดลอกเทียบกับเคอร์เนล
บนเส้นเวลา การคัดลอกหน่วยความจำ และเคอร์เนลจะอยู่คนละช่อง หากการคัดลอกกินเวลาส่วนใหญ่ ต้นทุนที่แท้จริงก็คือการเคลื่อนย้ายข้อมูล
การมองเห็นการทำงานซ้อนกัน
เมื่อการคัดลอกและเคอร์เนลทำงานพร้อมกัน แถบของทั้งสองจะ ซ้อนกัน บนกระแสคนละสาย การซ้อนกันเป็นเรื่องดี เพราะแสดงว่า GPU ยังคงทำงานอยู่
ซูมเพื่อดูความจริง
ภาพรวมอาจซ่อนรายละเอียด ดังนั้นให้ ซูมเข้าบริเวณที่ทำงานช้า เมื่อดูใกล้ ๆ คุณจะวัดเวลาของเคอร์เนลหรือการคัดลอกหนึ่งรายการได้อย่างแม่นยำ
วางเมาส์เพื่อดูตัวเลข
เมื่อวางเมาส์เหนือแถบใด ๆ จะแสดง ระยะเวลาและชื่อที่แน่นอน วิธีนี้จะเปลี่ยนความรู้สึกกว้าง ๆ ว่าช้า ให้กลายเป็นตัวเลขชัดเจนที่คุณนำไปแก้ไขได้
การหยุดรอของ CPU ก็ส่งผลเสียเช่นกัน
บางครั้ง GPU ต้องรอเพราะ CPU กำลังยุ่งอยู่กับการเตรียมงาน เส้นเวลาจะแสดงการหยุดรอที่ฝั่งโฮสต์เหล่านี้ได้อย่างชัดเจนเช่นกัน
ระดับระบบ ไม่ใช่ระดับเคอร์เนล
ระบบ Nsight ตอบคำถามว่าเวลาในแอปพลิเคชันทั้งหมดถูกใช้ไป ที่ใด หากต้องการรายละเอียดเชิงลึกของเคอร์เนลแต่ละรายการ คุณต้องเปลี่ยนไปใช้เครื่องมืออื่น
ตรวจสอบอย่างรวดเร็ว
คุณเห็นช่วงว่างยาวบนแถวของ GPU
สรุปทบทวน
ระบบ Nsight มอบ เส้นเวลาให้คุณเห็นช่องว่าง การคัดลอก เคอร์เนล และการทำงานซ้อนกันในพริบตา เริ่มต้นที่นี่เพื่อค้นหาว่าเวลาของคุณถูกใช้ไปที่ใดจริง ๆ 👏
คำถามที่พบบ่อย
บทเรียน “มุมมองเส้นเวลาใน Nsight Systems” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “มุมมองเส้นเวลาใน Nsight Systems” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส CUDA Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส CUDA Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “มุมมองเส้นเวลาใน Nsight Systems”
ดูช่วงว่าง การคัดลอก และการทำงานซ้อนกัน คุณปฏิบัติ CUDA Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน CUDA Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน CUDA Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “มุมมองเส้นเวลาใน Nsight Systems” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน CUDA Academy นี้ได้ไหม
ได้ บทเรียน CUDA Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- มุมมองเส้นเวลาใน Nsight Systems
- ตัวชี้วัดเคอร์เนลใน Nsight Compute
- จำกัดด้วยการคำนวณเทียบกับจำกัดด้วยหน่วยความจำ
- ใส่คำอธิบายประกอบโค้ดด้วย NVTX