CUDA Academy · บทเรียน

สวัสดี GPU: ไฟล์ .cu แรกของคุณ

สร้างและรันโปรแกรม CUDA ขั้นต่ำ

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

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

ไฟล์ .cu แรกของคุณ

ได้เวลาสร้างสิ่งที่ใช้งานได้จริงแล้ว โปรแกรม CUDA จะอยู่ในไฟล์ .cu ซึ่งสามารถมีทั้งโค้ด CPU และ GPU อยู่เคียงข้างกันได้ 🎉

เพิ่มส่วนหัว

ตัวอย่าง CUDA ส่วนใหญ่เริ่มต้นด้วยการนำเข้าส่วนหัวมาตรฐาน ส่วนหัว รันไทม์ของ CUDA จะถูกนำเข้าโดย nvcc โดยอัตโนมัติ ดังนั้นมักใช้เพียง iostream ก็เพียงพอ

#include <cstdio>

กำหนดเคอร์เนล

ฟังก์ชันที่ทำงานบน GPU เรียกว่า เคอร์เนล คุณกำหนดฟังก์ชันนี้ด้วยตัวระบุ __global__ เพื่อให้ nvcc คอมไพล์สำหรับอุปกรณ์

__global__ void hello() {
}

การพิมพ์จาก GPU

ภายในเคอร์เนล คุณสามารถเรียกใช้ printf ได้เช่นเดียวกับบน CPU เธรด GPU แต่ละเธรดที่ทำงานกับคำสั่งนี้จะสร้างบรรทัดผลลัพธ์ของตัวเอง

__global__ void hello() {
  printf("Hello from GPU\n");
}

รูปแบบการเรียกใช้งาน

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

hello<<<1, 1>>>();

การเรียกใช้งานเป็นแบบอะซิงโครนัส

การเรียกใช้เคอร์เนลจะคืนค่าทันทีขณะที่ GPU ทำงานอยู่เบื้องหลัง CPU จึงทำงานต่อได้ ซึ่งทรงพลังแต่ในช่วงแรกอาจ สร้างความประหลาดใจ ได้

รอ GPU

ด้วยเหตุนี้ คุณต้อง ซิงโครไนซ์ ก่อนโปรแกรมจะจบ มิฉะนั้นผลลัพธ์จาก printf อาจไม่ปรากฏบนหน้าจอ

cudaDeviceSynchronize();

ประกอบทุกส่วนเข้าด้วยกัน

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

int main() {
  hello<<<1, 1>>>();
  cudaDeviceSynchronize();
}

คอมไพล์โปรแกรม

บันทึกไฟล์เป็น hello.cu แล้วสร้างโปรแกรมด้วย nvcc โดยตั้งชื่อโปรแกรมผลลัพธ์ด้วยตัวเลือก -o

nvcc hello.cu -o hello

เรียกใช้โปรแกรม

ตอนนี้ให้เรียกใช้โปรแกรม การเห็น Hello from GPU แสดงว่าโค้ดของคุณทำงานบนอุปกรณ์จริง นี่คือผลลัพธ์จาก GPU ครั้งแรกของคุณ! 🚀

./hello

หลายเธรดพร้อมกัน

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

hello<<<1, 8>>>();

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

มีรายละเอียดหนึ่งอย่างที่เป็นตัวตัดสินว่าโปรแกรมนี้จะทำงานได้หรือไม่

สรุปทบทวน

คุณเขียนโปรแกรม CUDA จริงได้แล้ว: เคอร์เนล __global__ การ เรียกใช้งานแบบวงเล็บสามชั้น และการซิงโครไนซ์ คอมไพล์ด้วย nvcc แล้วเรียกใช้ให้ GPU ทักทายคุณ ยินดีด้วย! 🎓

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

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

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

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

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

บทเรียน “สวัสดี GPU: ไฟล์ .cu แรกของคุณ” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “สวัสดี GPU: ไฟล์ .cu แรกของคุณ”

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

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

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

บทเรียน “สวัสดี GPU: ไฟล์ .cu แรกของคุณ” ใช้เวลานานแค่ไหน

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

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

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

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

  1. เวอร์ชันของไดรเวอร์ รันไทม์ และชุดเครื่องมือ
  2. อ่าน nvidia-smi อย่างมืออาชีพ
  3. คอมไพล์ด้วย nvcc
  4. สวัสดี GPU: ไฟล์ .cu แรกของคุณ
← กลับไปที่ CUDA Academy