CUDA Academy · บทเรียน

วิเคราะห์ ปรับให้เหมาะสม ส่งมอบ

ปิดวงจรด้วยเมตริกของ Nsight

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

วิเคราะห์ ปรับให้เหมาะสม ส่งมอบ เป็นบทเรียน CUDA Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน CUDA Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส CUDA Academy มีบทเรียนทั้งหมด 4 บทเรียน

วัดผล อย่าเดา

การปรับประสิทธิภาพต้องเริ่มจากข้อมูล ไม่ใช่การคาดเดา ให้ทำโปรไฟล์ก่อนเสมอเพื่อดูว่าเวลาใช้ไปกับส่วนใดจริง ๆ ก่อนเปลี่ยนแม้แต่บรรทัดเดียว 🔍

เริ่มจากเส้นเวลา

เปิด Nsight Systems เพื่อดูการทำงานทั้งหมด: เคอร์เนล การคัดลอก และช่วงว่าง เส้นเวลาจะแสดงว่าการถ่ายโอนกับการคำนวณซ้อนทับกันจริงหรือไม่

ค้นหาเคอร์เนลที่ใช้เวลามากที่สุด

โดยปกติจะมีขั้นตอนหนึ่งที่ใช้เวลามากที่สุด เส้นเวลาจะแสดงเคอร์เนลที่ทำงานนานที่สุด และนี่คือจุดที่คุณควรเริ่มปรับแต่งก่อน

เจาะลึกด้วย Nsight Compute

สำหรับเคอร์เนลที่ใช้เวลามากที่สุด ให้เปลี่ยนไปใช้ Nsight Compute เครื่องมือนี้รายงานตัวชี้วัดต่อเคอร์เนล เช่น อัตราการส่งข้อมูลหน่วยความจำ ช่วงหยุดรอ และความหนาแน่นการทำงานที่ทำได้

อ่านกราฟหลังคา

กราฟหลังคาจะบอกว่าเคอร์เนลติดข้อจำกัดด้านหน่วยความจำหรือด้านการคำนวณ คำตอบเดียวนี้จะเป็นตัวตัดสินว่าควรลองการปรับประสิทธิภาพใดบ้าง

แก้ไขเคอร์เนลที่ติดข้อจำกัดด้านหน่วยความจำ

หากติดข้อจำกัดด้านหน่วยความจำ ให้มุ่งปรับการรวมการเข้าถึงหน่วยความจำ การแบ่งข้อมูลเป็นไทล์ในหน่วยความจำร่วม และการโหลดแบบเวกเตอร์ การป้อนข้อมูลให้เร็วขึ้นคือหนทางเดียวที่จะเพิ่มความเร็วได้

แก้ไขเคอร์เนลที่ติดข้อจำกัดด้านการคำนวณ

หากติดข้อจำกัดด้านการคำนวณ ให้เพิ่มILPด้วยการคลี่ลูป ลดการคำนวณที่ซ้ำซ้อน หรือลดความละเอียดของข้อมูล ที่นี่หน่วยคำนวณคือข้อจำกัด

ติดป้ายกำกับโค้ดด้วย NVTX

ครอบขั้นตอนของไปป์ไลน์ด้วยช่วง NVTX เพื่อให้เส้นเวลาแสดงแถบที่มีชื่อแทนเคอร์เนลนิรนาม โปรไฟล์ที่อ่านง่ายช่วยให้แก้ไขจุดบกพร่องได้เร็วขึ้น

nvtxRangePush("blur");
blurKernel<<<grid, block>>>(d_in, d_out);
nvtxRangePop();

เปลี่ยนทีละอย่าง

ใช้การปรับประสิทธิภาพเพียงอย่างเดียว แล้วทำโปรไฟล์ซ้ำลูปที่กระชับนี้จะพิสูจน์ว่าการเปลี่ยนแปลงแต่ละครั้งช่วยได้ และป้องกันไม่ให้คุณไล่ตามผลกระทบสองอย่างพร้อมกัน

รู้ว่าเมื่อใดควรหยุด

เมื่อเคอร์เนลเข้าใกล้ขีดจำกัดตามกราฟหลังคา การปรับแต่งเพิ่มเติมจะให้ผลเพียงเล็กน้อย ให้ตระหนักถึงผลตอบแทนที่ลดลงและใช้เวลากับคอขวดถัดไป

ตรวจสอบแล้วจึงเผยแพร่

ก่อนเผยแพร่ ให้ยืนยันความถูกต้องโดยเทียบกับข้อมูลอ้างอิง และตรวจสอบว่าการเพิ่มความเร็วยังคงสม่ำเสมอ ไปป์ไลน์ที่เร็วแต่ให้ผลลัพธ์ผิดนั้นไม่พร้อมนำไปใช้งาน 🚢

ตรวจสอบอย่างรวดเร็ว

Nsight Compute ระบุว่าเคอร์เนลที่ใช้เวลามากที่สุดติดข้อจำกัดด้านหน่วยความจำ คุณควรลองแก้ไขสิ่งใดก่อน

สรุปทบทวน

คุณได้เรียนรู้การทำโปรไฟล์ด้วย Nsight อ่านกราฟหลังคาเพื่อจำแนกเคอร์เนล ใช้การแก้ไขที่ตรงจุดทีละอย่าง และตรวจสอบก่อนเผยแพร่ไปป์ไลน์ที่เร็วและถูกต้อง 🏁

เริ่มต้นได้ฟรี

เรียนรู้ C++ ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “วิเคราะห์ ปรับให้เหมาะสม ส่งมอบ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “วิเคราะห์ ปรับให้เหมาะสม ส่งมอบ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส CUDA Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส CUDA Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “วิเคราะห์ ปรับให้เหมาะสม ส่งมอบ”

ปิดวงจรด้วยเมตริกของ Nsight คุณปฏิบัติ CUDA Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน CUDA Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน CUDA Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “วิเคราะห์ ปรับให้เหมาะสม ส่งมอบ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน CUDA Academy นี้ได้ไหม

ได้ บทเรียน CUDA Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. ออกแบบไปป์ไลน์การประมวลผล
  2. รวมตัวกรองเป็นเคอร์เนลเดียว
  3. สตรีมไทล์สำหรับภาพขนาดใหญ่
  4. วิเคราะห์ ปรับให้เหมาะสม ส่งมอบ
← กลับไปที่ CUDA Academy