Menulis Fungsi Kernel GPU
Nyatakan kod peranti dalam Mojo.
Menulis Fungsi Kernel GPU ialah pelajaran Mojo Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Mojo Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Mojo Academy merangkumi sejumlah 4 pelajaran.
Apakah Itu Kernel
kernel GPU ialah fungsi yang dijalankan oleh setiap utas. Anda menulis kerja untuk satu elemen, kemudian perkakasan mengulanginya merentasi banyak elemen.
Fikirkan Satu Utas
Caranya adalah dengan menulis kernel dari sudut pandangan satu utas. Setiap utas menjalankan bahagian kecil kerjanya sendiri.
Kernel Hanyalah Fungsi
Dalam Mojo, kernel ialah fungsi biasa. Sifatnya yang ketat dan ditaip dengan jelas ialah tepat seperti yang diperlukan oleh kod peranti untuk dikompil dengan pantas.
fn add_kernel():
passMenghantar Penimbal
Kernel menerima penuding kepada memori peranti sebagai parameter. Penimbal ini menyimpan input dan output yang akan diisinya.
fn add_kernel(a: UnsafePointer[Float32], out: UnsafePointer[Float32]):
passMencari Indeks Utas Ini
Di dalam kernel, setiap utas mengira kedudukannya sendiri terlebih dahulu. Indeks itu memilih elemen yang mesti diprosesnya.
var i = block_idx.x * block_dim.x + thread_idx.xMengawal Sempadan
Sentiasa periksa indeks sebelum menyentuh memori. Pemeriksaan sempadan menghalang utas tersasar daripada membaca melepasi tatasusunan.
if i < n:
out[i] = a[i] + b[i]Menjalankan Kerja Elemen
Badan kodnya kecil: baca input, buat pengiraan, kemudian tulis satu hasil. Seluruh kernel sering boleh dimuatkan dalam satu baris matematik.
out[i] = a[i] * b[i]Melancarkan Kernel
Anda melancarkannya dengan memilih saiz grid dan blok. Pelancaran itu menyebarkan kod satu utas anda merentasi seluruh grid.
ctx.enqueue_function[add_kernel](grid_dim=blocks, block_dim=256)Tiada Nilai Pulangan
Kernel tidak memulangkan hasil kepada pemanggil. Kernel menulis ke dalam penimbal output, yang anda baca semula selepas itu.
Kurangkan Percabangan
Utas berfungsi paling baik secara serentak. Percabangan berat menyebabkan lorong menyimpang dan menunggu, jadi pastikan logik kernel mudah dan seragam.
Idea Sama, Skala Besar
Satu kernel pendek ditambah grid besar menghasilkan berjuta-juta hasil. Skala itu datang daripada pelancaran, bukannya kod yang lebih panjang.
Semakan Pantas
Anda sedang menulis badan kod kernel GPU untuk satu utas.
Imbas Kembali
kernel ialah fungsi untuk satu utas: cari indeks anda, kawal sempadan, lakukan pengiraan satu elemen, kemudian lancarkan kernel merentasi grid. ⚡
Pelajari Mojo dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “Menulis Fungsi Kernel GPU” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Mojo Academy, termasuk “Menulis Fungsi Kernel GPU”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Mojo Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Menulis Fungsi Kernel GPU”?
Nyatakan kod peranti dalam Mojo. Anda berlatih Mojo Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Mojo Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Mojo Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Menulis Fungsi Kernel GPU” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Mojo Academy ini?
Ya. Setiap pelajaran Mojo Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Sebab GPU Digunakan untuk Beban Kerja Kecerdasan Buatan
- Bebenang, Blok dan Grid
- Menulis Fungsi Kernel GPU
- Memindahkan Data ke dan dari Peranti