CUDA Academy · บทเรียน

ใส่คำอธิบายประกอบโค้ดด้วย NVTX

ตั้งชื่อช่วงเพื่อให้อ่านเส้นเวลาได้ง่าย

บทเรียน 4 จาก 413 ขั้นตอน

ใส่คำอธิบายประกอบโค้ดด้วย 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. มุมมองเส้นเวลาใน Nsight Systems
  2. ตัวชี้วัดเคอร์เนลใน Nsight Compute
  3. จำกัดด้วยการคำนวณเทียบกับจำกัดด้วยหน่วยความจำ
  4. ใส่คำอธิบายประกอบโค้ดด้วย NVTX
← กลับไปที่ CUDA Academy