บันทึกงานลงในกราฟ
บันทึกสตรีมลงในกราฟ 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, ¶ms);หลายสตรีม กราฟเดียว
การบันทึกสามารถครอบคลุมหลายสตรีมได้ ดังนั้นแขนงอิสระที่ทำงานพร้อมกันจะถูกรวมไว้ในกราฟเดียวกัน
นำกลับมาใช้ซ้ำหลายรอบ
เมื่อสร้างอินสแตนซ์แล้ว ออบเจ็กต์การเรียกใช้เดียวกันจะถูกเปิดใช้ซ้ำหลายครั้ง ซึ่งเป็นจุดที่กราฟแสดงความคุ้มค่าอย่างแท้จริง
ตรวจสอบอย่างรวดเร็ว
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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เปิดใช้เคอร์เนลจากเคอร์เนล
- เมื่อการประมวลผลแบบพลวัตคุ้มค่า
- บันทึกงานลงในกราฟ
- เล่นกราฟซ้ำเพื่อลดค่าใช้จ่ายแฝง