0Pricing
CUDA Academy · บทเรียน

บันทึกงานลงในกราฟ

บันทึกสตรีมลงในกราฟ CUDA

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

CUDA Graph คืออะไร

กราฟ CUDAจะบันทึกลำดับเคอร์เนลและการคัดลอกข้อมูลทั้งหมดเป็นหน่วยงานที่นำกลับมาใช้ซ้ำได้หนึ่งหน่วย ซึ่งคุณส่งไปประมวลผลซ้ำได้ครั้งแล้วครั้งเล่า

ค่าใช้จ่ายจากการเปิดใช้สะสมขึ้นเรื่อย ๆ

การเปิดใช้เคอร์เนลแต่ละครั้งมีค่าใช้จ่ายเล็กน้อยบน CPU หากเปิดใช้หลายพันครั้งต่อรอบ ค่าใช้จ่ายนั้นจะกลายเป็นเรื่องสำคัญ

กำหนดครั้งเดียว ทำงานหลายครั้ง

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

โหมดบันทึกสตรีม

วิธีสร้างกราฟที่ง่ายที่สุดคือการบันทึกสตรีม ซึ่งจะบันทึกการเปิดใช้ตามปกติที่คุณส่งไปยังสตรีมอยู่แล้ว

cudaStreamBeginCapture(stream, cudaStreamCaptureModeGlobal);

ส่งงานตามปกติ

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

kernelA<<<g, b, 0, stream>>>(d);
kernelB<<<g, b, 0, stream>>>(d);

สิ้นสุดการบันทึก

คุณหยุดการบันทึกด้วย cudaStreamEndCapture ซึ่งส่งคืน cudaGraph_t ที่อธิบายงานทั้งหมด

cudaGraph_t graph;
cudaStreamEndCapture(stream, &graph);

อนุมานการพึ่งพาโดยอัตโนมัติ

การบันทึกจะค้นหาการพึ่งพาระหว่างการดำเนินการโดยอัตโนมัติจากวิธีที่คุณใช้สตรีม

สร้างอินสแตนซ์ก่อนเรียกใช้

กราฟเป็นเพียงคำอธิบายเท่านั้น คุณต้องคอมไพล์ให้เป็นออบเจ็กต์การเรียกใช้กราฟก่อนจึงจะเปิดใช้ได้

cudaGraphExec_t exec;
cudaGraphInstantiate(&exec, graph, 0);

สร้างกราฟด้วยตนเอง

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

cudaGraphAddKernelNode(&n, graph, deps, 1, &params);

หลายสตรีม กราฟเดียว

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

นำกลับมาใช้ซ้ำหลายรอบ

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

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

cudaStreamEndCapture สร้างสิ่งใด

สรุป: การบันทึกกราฟ

ครอบการเปิดใช้ด้วยการบันทึกสตรีมเพื่อบันทึก cudaGraph_t สร้างอินสแตนซ์หนึ่งครั้ง แล้วให้การบันทึกอนุมานการพึ่งพาให้คุณ ขอแสดงความก้าวหน้า! 🎉

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

บทเรียน “บันทึกงานลงในกราฟ” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “บันทึกงานลงในกราฟ”

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

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

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

บทเรียน “บันทึกงานลงในกราฟ” ใช้เวลานานแค่ไหน

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

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

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

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

  1. เปิดใช้เคอร์เนลจากเคอร์เนล
  2. เมื่อการประมวลผลแบบพลวัตคุ้มค่า
  3. บันทึกงานลงในกราฟ
  4. เล่นกราฟซ้ำเพื่อลดค่าใช้จ่ายแฝง
← กลับไปที่ CUDA Academy