CUDA Academy · Pelajaran

Memilih Jumlah Thread per Blok

Gunakan nilai awal yang masuk akal seperti 128 dan 256.

Pelajaran 4 dari 413 langkah

Memilih Jumlah Thread per Blok adalah pelajaran CUDA Academy gratis di CoddyKit. Ini adalah pelajaran 4 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 CUDA Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus CUDA Academy mencakup 4 pelajaran total.

Keputusan Nyata

Saat meluncurkan kernel, Anda harus memilih jumlah utas per blok yang akan digunakan. Pilihan kecil ini memengaruhi kinerja nyata. 🎚️

Kelipatan 32

GPU menjalankan utas dalam kelompok berjumlah 32 yang disebut warp, jadi selalu pilih kelipatan 32. Ukuran ganjil membuang lajur pada warp yang tidak penuh.

Nilai Awal yang Aman

Perkiraan awal yang baik adalah 128 atau 256 utas per blok. Keduanya merupakan kelipatan 32 dan bekerja dengan baik di hampir semua GPU.

int threadsPerBlock = 256;

Batas Atas yang Ketat

Sebuah blok dapat menampung paling banyak 1024 utas pada GPU saat ini. Jika Anda meminta lebih banyak, peluncuran akan gagal begitu saja dengan sebuah kesalahan.

Utas Terlalu Sedikit

Blok yang sangat kecil, seperti 32, dapat membuat GPU kurang dimanfaatkan. Penjadwal memiliki lebih sedikit warp untuk menyembunyikan latensi memori.

Utas Terlalu Banyak

Blok yang sangat besar dapat kehabisan register atau memori bersama, sehingga lebih sedikit blok yang dapat ditempatkan pada setiap multiprosesor. Lebih besar tidak selalu lebih baik.

Menghitung Jumlah Blok

Setelah jumlah utas per blok ditetapkan, bulatkan ke atas jumlah blok agar setiap elemen tercakup, meskipun pembagiannya tidak merata.

int blocks = (n + threadsPerBlock - 1) / threadsPerBlock;

Selalu Tambahkan Pemeriksaan Batas

Pembulatan ke atas berarti ada beberapa utas tambahan. Lindungi kernel Anda dengan if agar utas tersebut tidak mengakses memori melewati akhir larik.

if (i < n) out[i] = a[i] + b[i];

Biarkan CUDA Menyarankan Ukuran

Anda dapat meminta CUDA memilih ukuran blok yang baik secara otomatis menggunakan pembantu okupansi, lalu menyetelnya berdasarkan saran tersebut.

cudaOccupancyMaxPotentialBlockSize(&grid, &block, kernel);

Ukur, Jangan Menebak

Ukuran yang benar-benar terbaik bergantung pada kernel dan GPU Anda. Mulailah dari 256, lalu uji kinerja beberapa nilai dan pertahankan yang tercepat.

Aturan Praktis

Untuk sebagian besar kernel pemula, 256 utas per blok ditambah jumlah blok yang dibulatkan ke atas merupakan titik awal yang andal dan cepat.

Pemeriksaan Cepat

Pilih pilihan yang paling tepat untuk jumlah utas per blok.

Ringkasan: Menentukan Ukuran Blok

Anda telah mempelajari cara menentukan ukuran blok: gunakan kelipatan 32, gunakan 256 sebagai nilai awal, tetap di bawah 1024, bulatkan ke atas jumlah blok, dan lakukan uji kinerja. 🏁

Gratis untuk memulai

Belajar C++ 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 “Memilih Jumlah Thread per Blok” gratis?

Ya — teks lengkap “Memilih Jumlah Thread per Blok” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus CUDA Academy, upgrade ke CoddyKit PRO. Kursus CUDA Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Memilih Jumlah Thread per Blok”?

Gunakan nilai awal yang masuk akal seperti 128 dan 256. Kamu berlatih CUDA 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 CUDA Academy?

Tidak diperlukan pengalaman sebelumnya. CUDA 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 4 dari 4.

Berapa lama pelajaran “Memilih Jumlah Thread per Blok” 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 CUDA Academy ini?

Ya. Setiap pelajaran CUDA 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. Hierarki Thread
  2. threadIdx, blockIdx, blockDim
  3. Mengapa Blok Ada
  4. Memilih Jumlah Thread per Blok
← Kembali ke CUDA Academy