Mojo Academy · Pelajaran

Menulis Fungsi Kernel GPU

Nyatakan kod peranti dalam Mojo.

Pelajaran 3 daripada 413 langkah

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():
    pass

Menghantar 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]):
    pass

Mencari 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.x

Mengawal 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. ⚡

Percuma untuk bermula

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

  1. Sebab GPU Digunakan untuk Beban Kerja Kecerdasan Buatan
  2. Bebenang, Blok dan Grid
  3. Menulis Fungsi Kernel GPU
  4. Memindahkan Data ke dan dari Peranti
← Kembali ke Mojo Academy