Vektorisasi Perulangan
Ubah perulangan skalar menjadi pekerjaan vektor.
Vektorisasi Perulangan adalah pelajaran Mojo 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 Mojo Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Mojo Academy mencakup 4 pelajaran total.
Perulangan Skalar
Perulangan biasa menyentuh satu elemen pada setiap langkah. Perulangan ini jelas, tetapi sebagian besar lane vektor CPU Anda tetap tidak digunakan.
for i in range(n):
out[i] = a[i] + b[i]Gagasan Vektor
Vektorisasi berarti setiap langkah perulangan menangani sekumpulan elemen sekaligus, bukan satu elemen. Anda mengerjakan lebih banyak hal dalam setiap iterasi.
Muat Sekumpulan Elemen
Alih-alih satu nilai, muat beberapa nilai sekaligus ke dalam vektor SIMD. Satu operasi pemuatan itu mengambil sebagian data Anda.
var chunk = a.load[width=4](i)Hitung Seluruh Sekumpulan Elemen
Dengan kedua kelompok elemen dalam bentuk SIMD, jumlahkan keduanya dalam satu langkah per elemen. Perhitungan ini mencakup setiap lane sekaligus.
var sum = a.load[width=4](i) + b.load[width=4](i)Simpan Hasilnya
Tulis kembali seluruh hasil SIMD dalam satu operasi menggunakan penyimpanan vektor. Satu penulisan mencakup semua lane yang Anda hitung.
out.store[width=4](i, sum)Melangkah Sesuai Lebar
Perulangan bervector maju sesuai lebarnya, bukan satu per satu. Setiap lintasan mencakup sekumpulan elemen secara penuh.
for i in range(0, n, 4):
passBiarkan Mojo Menanganinya
Pembantu vektorisasi Mojo menjalankan closure di seluruh rentang dalam langkah-langkah vektor dan menangani pencatatan yang diperlukan untuk Anda.
from algorithm import vectorizeClosure Vektorisasi
Anda menulis fungsi kecil berparameter yang memproses satu kelompok elemen. Mojo memanggilnya dengan lebar yang tepat saat menyusuri rentang.
fn work[w: Int](i: Int):
out.store[width=w](i, a.load[width=w](i) + b.load[width=w](i))Jalankan Vektorisasi
Panggil vektorisasi dengan fungsi kelompok elemen, lebar, dan ukuran total Anda. Fitur ini melakukan perulangan dan menangani ekor untuk Anda.
vectorize[work, 4](n)Hasil Sama, Jauh Lebih Cepat
Perulangan bervector menghasilkan keluaran yang identik dengan perulangan skalar, tetapi bergerak melalui data dalam langkah-langkah besar sehingga selesai lebih cepat.
Ukur untuk Memastikan
Selalu ukur waktu kedua versi. Vektorisasi biasanya jauh lebih unggul, tetapi tolok ukur membuktikan peningkatannya pada data nyata Anda.
Pemeriksaan Singkat
Anda mengganti perulangan satu elemen per langkah dengan pemuatan dan penyimpanan SIMD. Bagaimana seharusnya perulangan itu maju?
Ringkasan
Vektorisasi memuat dan menyimpan seluruh kelompok elemen, melangkah sesuai lebar, serta membiarkan vektorisasi menangani penyusuran dan ekor, sehingga menghasilkan hal yang sama dengan jauh lebih cepat. 🚀
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 “Vektorisasi Perulangan” gratis?
Ya — teks lengkap “Vektorisasi Perulangan” 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 “Vektorisasi Perulangan”?
Ubah perulangan skalar menjadi pekerjaan vektor. 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 4 dari 4.
Berapa lama pelajaran “Vektorisasi Perulangan” 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
- Mengenal Tipe SIMD
- Matematika SIMD per Elemen
- Memilih Lebar SIMD
- Vektorisasi Perulangan