สวัสดี GPU: ไฟล์ .cu แรกของคุณ
สร้างและรันโปรแกรม CUDA ขั้นต่ำ
สวัสดี 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เวอร์ชันของไดรเวอร์ รันไทม์ และชุดเครื่องมือ
- อ่าน nvidia-smi อย่างมืออาชีพ
- คอมไพล์ด้วย nvcc
- สวัสดี GPU: ไฟล์ .cu แรกของคุณ