Mojo Academy · Pelajaran

Menulis Fungsi Kernel GPU

Nyatakan kode perangkat dalam Mojo.

Pelajaran 3 dari 413 langkah

Menulis Fungsi Kernel GPU adalah pelajaran Mojo Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Mojo Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Mojo Academy mencakup 4 pelajaran total.

Apa Itu Kernel

Kernel GPU adalah fungsi yang dijalankan oleh setiap thread. Anda menulis pekerjaan untuk satu elemen, lalu perangkat keras mengulanginya pada banyak elemen.

Bayangkan Satu Thread

Triknya adalah menulis kernel dari sudut pandang satu thread. Setiap thread mengerjakan bagian kecilnya sendiri dari pekerjaan.

Kernel Hanyalah Sebuah Fungsi

Dalam Mojo, kernel adalah sebuah fungsi biasa. Sifatnya yang ketat dan bertipe jelas persis seperti yang diperlukan kode perangkat agar dapat dikompilasi dengan cepat.

fn add_kernel():
    pass

Meneruskan Buffer

Kernel menerima pointer ke memori perangkat sebagai parameter. Buffer ini menyimpan input dan output yang akan diisinya.

fn add_kernel(a: UnsafePointer[Float32], out: UnsafePointer[Float32]):
    pass

Menemukan Indeks Thread Ini

Di dalam kernel, setiap thread terlebih dahulu menghitung posisinya sendiri. Indeks tersebut menentukan elemen mana yang harus diprosesnya.

var i = block_idx.x * block_dim.x + thread_idx.x

Menjaga Batas

Selalu periksa indeks sebelum mengakses memori. Pemeriksaan batas mencegah thread yang tidak semestinya membaca melewati array.

if i < n:
    out[i] = a[i] + b[i]

Mengerjakan Elemen

Isi kernel sangat kecil: baca input, lakukan perhitungan, lalu tulis satu hasil. Seluruh kernel sering kali cukup ditulis dalam satu baris perhitungan.

out[i] = a[i] * b[i]

Meluncurkan Kernel

Anda meluncurkannya dengan memilih grid dan ukuran block. Peluncuran tersebut menyebarkan kode untuk satu thread ke seluruh grid.

ctx.enqueue_function[add_kernel](grid_dim=blocks, block_dim=256)

Tanpa Nilai Kembalian

Kernel tidak mengembalikan hasil kepada pemanggil. Kernel menulis ke buffer output, yang kemudian Anda baca kembali.

Minimalkan Percabangan

Thread bekerja paling baik secara serempak. Percabangan yang berat membuat lajur berjalan berbeda dan saling menunggu, jadi buat logika kernel tetap sederhana dan seragam.

Gagasan Sama, Skala Besar

Satu kernel singkat ditambah grid besar menghasilkan jutaan hasil. Skala tersebut berasal dari peluncuran, bukan dari kode yang lebih panjang.

Pemeriksaan Singkat

Anda sedang menulis isi kernel GPU untuk satu thread.

Rangkuman

Kernel adalah fungsi untuk satu thread: temukan indeks Anda, jaga batas, lakukan perhitungan satu elemen, lalu luncurkan pada sebuah grid. ⚡

Gratis untuk memulai

Belajar Mojo dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menulis Fungsi Kernel GPU” gratis?

Ya — teks lengkap “Menulis Fungsi Kernel GPU” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Mojo Academy, upgrade ke CoddyKit PRO. Kursus Mojo Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menulis Fungsi Kernel GPU”?

Nyatakan kode perangkat dalam Mojo. Kamu berlatih Mojo Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Mojo Academy?

Tidak diperlukan pengalaman sebelumnya. Mojo Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Menulis Fungsi Kernel GPU” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Mojo Academy ini?

Ya. Setiap pelajaran Mojo Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mengapa GPU untuk Beban Kerja Kecerdasan Buatan
  2. Thread, Blok, dan Grid
  3. Menulis Fungsi Kernel GPU
  4. Memindahkan Data ke dan dari Perangkat
← Kembali ke Mojo Academy