Reduce, Scan, dan Sort pada Thrust
Primitif tingkat tinggi dengan satu pemanggilan
Reduce, Scan, dan Sort pada Thrust adalah pelajaran CUDA 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 CUDA Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus CUDA Academy mencakup 4 pelajaran total.
Algoritma Sulit, Satu Baris
Reduksi, pemindaian, dan pengurutan sulit ditulis agar cepat jika dilakukan manual. Thrust menyediakan versi yang telah dioptimalkan melalui satu pemanggilan fungsi. 🎁
Reduce Meringkas Menjadi Satu Nilai
thrust::reduce menggabungkan setiap elemen menjadi satu hasil, seperti menjumlahkan sebuah array, semuanya secara paralel di balik layar.
int total = thrust::reduce(d.begin(), d.end());Operator Reduksi Kustom
Reduce secara bawaan menggunakan penjumlahan, tetapi Anda dapat meneruskan nilai awal dan operasi biner untuk menghitung hasil kali, nilai maksimum, atau apa pun yang bersifat asosiatif.
int m = thrust::reduce(d.begin(), d.end(),
0, thrust::maximum<int>());Scan Menyimpan Total Berjalan
Scan, atau jumlah prefiks, menghasilkan total berjalan pada setiap posisi. Operasi ini menjadi dasar pemadatan, pengurutan, dan alokasi aliran.
Inklusif vs Eksklusif
inclusive_scan menyertakan elemen saat ini dalam jumlahnya; exclusive_scan tidak. Memilih yang tepat akan mencegah kesalahan selisih satu.
thrust::inclusive_scan(d.begin(), d.end(),
out.begin());Scan Tidak Mudah Diparalelkan
Jumlah prefiks tampak berurutan, tetapi Thrust menjalankannya secara paralel dengan algoritma pohon cerdas yang tidak perlu Anda tulis sendiri.
Urutkan di Tempat
thrust::sort mengurutkan device_vector di tempat menggunakan pengurutan radix atau merge cepat di GPU, jauh lebih cepat daripada pengurutan CPU untuk data berukuran besar.
thrust::sort(d.begin(), d.end());Urutkan Berdasarkan Kunci
sort_by_key mengurutkan satu array dan menyusun ulang array nilai kedua agar sesuai, cocok untuk menjaga catatan tetap selaras dengan kuncinya.
thrust::sort_by_key(keys.begin(),
keys.end(), values.begin());Gabungkan Primitif
Alur pemrosesan nyata menggabungkan semuanya: transform lalu reduce, atau sort lalu scan. Setiap langkah hanya memerlukan satu pemanggilan yang telah dioptimalkan, sehingga Anda dapat berfokus pada logika.
transform_reduce Terpadu
transform_reduce memetakan dan menjumlahkan dalam satu lintasan, menghitung hal seperti hasil kali titik atau jumlah kuadrat tanpa array sementara.
float ss = thrust::transform_reduce(
d.begin(), d.end(), sq, 0.0f, thrust::plus<float>());Biarkan Pustaka yang Bekerja
Primitif ini sangat dioptimalkan oleh NVIDIA. Menggunakannya terlebih dahulu biasanya lebih baik daripada membuat kernel kustom dan menghemat waktu berjam-jam.
Pemeriksaan Singkat
Ingat kembali hasil yang diberikan oleh jumlah prefiks.
Ringkasan
Anda meringkas data dengan reduce, membuat total berjalan dengan scan, mengurutkan array dengan sort, dan menggabungkan langkah-langkah dengan transform_reduce. 🏁
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 “Reduce, Scan, dan Sort pada Thrust” gratis?
Ya — teks lengkap “Reduce, Scan, dan Sort pada Thrust” 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 “Reduce, Scan, dan Sort pada Thrust”?
Primitif tingkat tinggi dengan satu pemanggilan 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 3 dari 4.
Berapa lama pelajaran “Reduce, Scan, dan Sort pada Thrust” 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
- cuBLAS GEMM dengan Cara yang Tepat
- Vektor dan Transformasi Thrust
- Reduce, Scan, dan Sort pada Thrust
- cuDNN untuk Pembelajaran Mendalam