ใส่คำอธิบายประกอบโค้ดด้วย NVTX
ตั้งชื่อช่วงเพื่อให้อ่านเส้นเวลาได้ง่าย
ใส่คำอธิบายประกอบโค้ดด้วย NVTX เป็นบทเรียน CUDA Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน CUDA Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส CUDA Academy มีบทเรียนทั้งหมด 4 บทเรียน
เส้นเวลาต้องมีป้ายกำกับ
เส้นเวลาดิบเต็มไปด้วยแถบที่ไม่มีชื่อ NVTX ช่วยให้คุณเพิ่มชื่อของตนเอง เพื่อให้เครื่องมือวิเคราะห์อ่านได้เหมือนโค้ดของคุณ 🏷️
NVTX คืออะไร
NVTX ย่อมาจากส่วนขยายเครื่องมือของ NVIDIA เป็นไลบรารีขนาดเล็กสำหรับทำเครื่องหมายบริเวณและเหตุการณ์ จากนั้น Nsight จะนำเครื่องหมายเหล่านี้ไปวาดบนเส้นเวลา
การรวมส่วนหัว
เริ่มต้นด้วยการรวม ส่วนหัวหนึ่งรายการ หลังจากนั้นคำสั่งทำเครื่องหมายจะพร้อมใช้งานได้ทุกแห่งในโค้ดฝั่งโฮสต์ของคุณ
#include <nvtx3/nvToolsExt.h>การทำเครื่องหมายช่วง
ครอบส่วนงานหนึ่งด้วย ช่วงที่ตั้งชื่อไว้ คำสั่งเปิดจะเริ่มช่วง และคำสั่งปิดจะจบช่วง ทำให้เกิดแถบที่มีป้ายกำกับหนึ่งแถบ
nvtxRangePush("load data");
// work here
nvtxRangePop();การซ้อนกันของคำสั่งเปิดและปิด
ช่วงต่าง ๆ จะ ซ้อนกันเหมือนวงเล็บ คำสั่งเปิดของช่วงด้านในต้องปิดก่อนช่วงด้านนอก เพื่อให้ป้ายกำกับเรียงซ้อนกันอย่างเป็นระเบียบบนเส้นเวลา
เครื่องหมาย ณ ขณะหนึ่ง
หากต้องการทำเครื่องหมายช่วงเวลาหนึ่ง ให้ใส่ เครื่องหมายแทนช่วง เครื่องหมายนี้จะตรึงเหตุการณ์หนึ่งไว้ เช่น จุดเริ่มต้นของรอบการทำงาน
nvtxMark("epoch start");กำหนดสีให้ช่วง
คุณสามารถกำหนด สีให้แต่ละช่วง เพื่อให้มองเห็นแต่ละขั้นตอนได้ทันที เช่น การโหลดอาจเป็นสีน้ำเงิน และการคำนวณอาจเป็นสีเขียว
เส้นเวลาที่อ่านเข้าใจง่าย
เมื่อใช้ NVTX มุมมอง Nsight จะแสดงระยะต่าง ๆ เช่น การเตรียมข้อมูลและการอนุมานตาม ชื่อ คุณจึงไม่ต้องถอดรหัสสัญลักษณ์เคอร์เนลที่อ่านยากอีกต่อไป
แทบไม่มีค่าใช้จ่ายเมื่อปิดใช้งาน
เมื่อไม่มีเครื่องมือวิเคราะห์ประสิทธิภาพเชื่อมต่ออยู่ การเรียกใช้ NVTX แทบไม่มี ค่าใช้จ่าย คุณจึงสามารถเก็บคำอธิบายประกอบไว้ในโค้ดโดยแทบไม่เสียประสิทธิภาพ
ทำงานฝั่งโฮสต์
NVTX ใส่คำอธิบายประกอบให้โค้ดฝั่ง โฮสต์ ซึ่งก็คือฝั่ง CPU ที่ควบคุมการทำงาน โดยจะครอบบริเวณที่เคอร์เนลและการคัดลอกของคุณเกิดขึ้น
ตัวครอบ RAII
ใน C++ สมัยใหม่ คุณมักครอบช่วงหนึ่งไว้ในวัตถุ RAII ขนาดเล็ก วัตถุนี้จะปิดช่วงโดยอัตโนมัติเมื่อขอบเขตสิ้นสุดลง คุณจึงไม่ต้องกังวลว่าจะลืมปิด
ตรวจสอบอย่างรวดเร็ว
คุณต้องการให้บริเวณที่มีชื่อและป้ายกำกับปรากฏบนเส้นเวลา Nsight
สรุปทบทวน
NVTX เปลี่ยนแถบปริศนาให้เป็น ช่วงและเครื่องหมายที่มีชื่อ การเรียกคำสั่งเปิดและปิดเพียงไม่กี่ครั้งก็ทำให้เส้นเวลา Nsight ของคุณอ่านเข้าใจได้ทันที 👏
เรียนรู้ C++ ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “ใส่คำอธิบายประกอบโค้ดด้วย NVTX” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ใส่คำอธิบายประกอบโค้ดด้วย NVTX” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส CUDA Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส CUDA Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ใส่คำอธิบายประกอบโค้ดด้วย NVTX”
ตั้งชื่อช่วงเพื่อให้อ่านเส้นเวลาได้ง่าย คุณปฏิบัติ CUDA Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน CUDA Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน CUDA Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “ใส่คำอธิบายประกอบโค้ดด้วย NVTX” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน CUDA Academy นี้ได้ไหม
ได้ บทเรียน CUDA Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- มุมมองเส้นเวลาใน Nsight Systems
- ตัวชี้วัดเคอร์เนลใน Nsight Compute
- จำกัดด้วยการคำนวณเทียบกับจำกัดด้วยหน่วยความจำ
- ใส่คำอธิบายประกอบโค้ดด้วย NVTX