ScholarGate
Asisten

SIMD dan Prosesor Vektor

SIMD dan prosesor vektor memanfaatkan paralelisme tingkat data dengan menerapkan satu instruksi ke banyak elemen data sekaligus, mempercepat komputasi reguler dan berulang seperti multimedia, ilmiah, dan kernel pembelajaran mesin.

Temukan Topik dengan PaperMindSegeraFind papers & topics
Tools & resources
Unduh salindia
Learn & explore
VideoSegera

Definition

SIMD (single-instruction multiple-data) dan pemrosesan vektor adalah teknik arsitektur di mana satu instruksi secara bersamaan melakukan operasi yang sama pada beberapa elemen data yang disimpan dalam register vektor lebar atau jalur SIMD, memanfaatkan paralelisme tingkat data.

Scope

Topik ini mencakup eksekusi single-instruction multiple-data: prosesor vektor klasik dengan register vektor dan jalur pipelined, ekstensi SIMD dalam CPU komersial, masking dan predikasi, serta kondisi di mana paralelisme data menguntungkan. Ini membahas arsitektur perangkat keras paralel data. Ini tidak mencakup paralelisme tingkat thread di seluruh inti (multicore dan chip multiprocessor) dan model GPU dengan banyak inti secara masif (arsitektur GPU), yang tumpang tindih dengannya.

Core questions

  • Bagaimana penerapan satu instruksi ke banyak elemen data mencapai percepatan paralel?
  • Bagaimana prosesor vektor berbeda dari ekstensi SIMD di CPU komersial?
  • Bagaimana operasi kondisional ditangani dengan masking dan predikasi?
  • Jenis komputasi apa yang paling diuntungkan dari eksekusi paralel data?

Key concepts

  • single-instruction multiple-data (SIMD)
  • register dan jalur vektor
  • panjang vektor dan strip mining
  • masking dan predikasi
  • gather/scatter
  • ekstensi CPU SIMD
  • paralelisme tingkat data
  • eksekusi berorientasi throughput

Key theories

Paralelisme tingkat data melalui single-instruction multiple-data
Ketika operasi yang sama berlaku secara independen di banyak elemen array, satu instruksi dapat menggerakkan banyak jalur paralel atau unit vektor pipelined, mengamortisasi pengambilan instruksi dan kontrol atas data besar dan menghasilkan throughput tinggi untuk komputasi reguler.

Mechanisms

Prosesor vektor menyimpan array elemen dalam register vektor dan memprosesnya melalui unit fungsional pipelined atau direplikasi, dengan satu instruksi menentukan operasi di seluruh vektor; vektor panjang diproses dalam potongan (strip mining). Ekstensi SIMD dalam CPU menyediakan register lebar tetap yang dioperasikan per elemen. Masking memungkinkan eksekusi kondisional per elemen, dan operasi gather/scatter menangani akses memori yang tidak berdekatan.

Clinical relevance

Perangkat keras paralel data memberikan sebagian besar throughput puncak prosesor modern. Ekstensi SIMD mempercepat codec media, pemrosesan gambar, fisika, dan aljabar linear padat yang mendasari pembelajaran mendalam, sementara arsitektur vektor mendukung superkomputasi. Penggunaan yang efektif bergantung pada kompilator dan pemrogram yang mengekspos komputasi yang teratur dan dapat divaktorisasi.

History

Pemrosesan vektor dipelopori oleh superkomputer seperti CDC STAR-100 dan terutama Cray-1 pada tahun 1970-an. Paralelisme data kembali masuk ke CPU komersial melalui ekstensi SIMD (MMX, SSE, AVX, NEON) mulai akhir 1990-an, dan ekstensi vektor yang dapat diskalakan serta kebangkitan beban kerja numerik padat memperbarui minat pada arsitektur vektor.

Key figures

  • Seymour Cray
  • Michael J. Flynn
  • John L. Hennessy
  • David A. Patterson

Related topics

Seminal works

  • hennessy2019
  • patterson2020

Frequently asked questions

Apa perbedaan antara ekstensi SIMD dan prosesor vektor?
Ekstensi SIMD menambahkan register lebar tetap (misalnya 128 atau 256 bit) ke CPU konvensional, beroperasi pada sejumlah elemen per instruksi. Prosesor vektor dibangun di sekitar register vektor dan instruksi yang beroperasi pada vektor panjang, seringkali bervariasi, biasanya melalui jalur yang sangat pipelined.
Mengapa tidak semua program mendapat manfaat dari SIMD?
SIMD mempercepat komputasi yang menerapkan operasi yang sama ke banyak elemen data independen dengan akses memori yang teratur. Program yang didominasi oleh percabangan, ketergantungan data yang tidak teratur, atau akses memori yang tersebar sedikit mendapatkan keuntungan, karena jalur paralel tidak dapat tetap sibuk secara berguna.

Methods for this concept

Related concepts