Lanjutkan ke konten

AVX

Referensi arsitekturFeex

AVX, Advanced Vector Extensions, menambahkan model pemrograman vektor dengan register YMM dan instruksi berkode VEX, termasuk operasi floating-point 256-bit. Dukungan prosesor dan pengelolaan status oleh sistem operasi sama-sama diperlukan.

Yang perlu Anda ketahui

AVX, Advanced Vector Extensions, menambahkan model pemrograman vektor dengan register YMM dan instruksi berkode VEX, termasuk operasi floating-point 256-bit. Dukungan prosesor dan pengelolaan status oleh sistem operasi sama-sama diperlukan.

Cara kerjanya

AVX memperluas register vektor menjadi 256 bit, dengan 128 bit bawah dari setiap register YMM tumpang tindih dengan register XMM miliknya. Banyak instruksi menggunakan bentuk tiga operan, memungkinkan tujuan berbeda dari masukan. Vektor 256-bit dapat menampung 8 nilai floating-point presisi tunggal atau 4 presisi ganda, tetapi instruksi berbeda dalam jenis operan dan perilakunya.

Manfaat penggunaan

Perulangan numerik dapat menambahkan beberapa nilai floating-point independen dengan satu instruksi vektor. Kompilator atau pustaka harus menghasilkan kode tersebut serta mengatur pemuatan, perataan, bagian sisa (tails), dan dependensi dengan benar. AVX tidak otomatis memparalelkan program arbitrer di seluruh inti, dan operasi integer pada 256 bit memerlukan pemeriksaan ekstensi yang relevan alih-alih berasumsi pada AVX2.

Cara memeriksa dukungan dan pengaktifan

Periksa CPUID.01H:ECX AVX bit 28, XSAVE bit 26, dan OSXSAVE bit 27. Hanya setelah mengonfirmasi OSXSAVE perangkat lunak boleh menggunakan XGETBV dengan ECX=0 dan memverifikasi bahwa bit 1 dan 2 pada XCR0 mengaktifkan status XMM dan YMM. Gunakan runtime dispatcher yang terpelihara alih-alih mengeksekusi AVX sebagai eksperimen deteksi.

Program harus berisi implementasi yang sesuai sekaligus memilihnya saat runtime. Enumerasi perangkat keras, status register yang diaktifkan OS, dan baseline biner yang dikompilasi adalah pemeriksaan yang terpisah. Mesin virtual dapat secara sengaja mengekspos fitur lebih sedikit daripada host-nya, dan kontainer tidak menambahkan instruksi ke CPU host.

Hal yang tidak dipastikan oleh fitur ini

Dukungan AVX saja tidak menyiratkan AVX2, FMA, F16C, AVX-VNNI, atau AVX-512. Lebar vektor tidak menyatakan berapa banyak siklus yang dibutuhkan suatu instruksi. Mesin virtual dapat mengekspos set instruksi yang lebih kecil daripada host fisik.

Kompatibilitas dan performa dalam praktik

Ukur seluruh beban kerja dengan data yang representatif. Vektor yang lebih lebar dapat mengurangi jumlah instruksi namun membiarkan lalu lintas memori, sinkronisasi, atau biaya konversi tidak berubah. Latensi instruksi, throughput, dan perilaku daya bergantung pada mikroarsitektur serta kondisi pengoperasian yang tepat.

Daftar periksa verifikasi praktis

  1. Catat model prosesor atau platform yang tepat serta versi aplikasi, OS, dan runtime yang terlibat. Pertahankan kata-kata dari kesalahan atau persyaratan sebenarnya.
  2. Periksa referensi produsen untuk model persis tersebut, lalu periksa kemampuan efektif dan status aktif di lingkungan tempat program berjalan.
  3. Bandingkan setiap persyaratan dari biner atau backend yang dipilih. Fitur dengan nama serupa, alias, atau label teknologi umum tidaklah cukup.
  4. Pastikan aplikasi memilih implementasi yang dimaksudkan. Gunakan diagnostik terdokumentasi miliknya dan alternatif cadangan yang didukung ketika persyaratan tidak terpenuhi.
  5. Lakukan satu perubahan yang didukung pada satu waktu dan ulangi beban kerja yang sama. Pertahankan konfigurasi asli dan jalur pemulihan tetap tersedia.

Jika fitur terdaftar tetapi perangkat lunak tidak dapat menggunakannya

Mulailah dari komponen persis yang mengalami kegagalan. Basis data perangkat keras menjelaskan kemampuan yang tercatat; sistem operasi atau hipervisor dapat mengekspos lingkungan efektif yang berbeda. Kesalahan instruksi ilegal juga memerlukan penyelidikan terhadap instruksi bermasalah yang sebenarnya dan build biner, karena korupsi data atau instruksi tidak didukung yang tidak terkait dapat menghasilkan gejala serupa.

Pasang versi aplikasi, driver, atau runtime yang didukung untuk platform persis tersebut, dan gunakan build standar atau cadangan yang terdokumentasi dari vendor jika diperlukan. Pembaruan perangkat lunak tidak dapat menciptakan instruksi yang tidak dimiliki prosesor. Perubahan firmware dan kebijakan keamanan harus mengikuti prosedur produsen sistem serta rencana pemulihan, bukan resep optimasi umum.

Sumber dan cakupan penjelasan ini

Intel 64 and IA-32 Architectures Software Developer's Manual · Kernel Linux: penggunaan fitur XSTATE di ruang pengguna

Referensi ini menetapkan perilaku arsitektur dan persyaratan perangkat lunak. Referensi tersebut tidak memverifikasi secara independen setiap nilai fitur pada halaman model perangkat keras yang ditautkan. Untuk dukungan model, gunakan bukti produsen pada halaman tersebut dan periksa konfigurasi sistem efektif. Artikel ini tidak menyediakan tolok ukur, sertifikasi, atau tanggal tinjauan independen.

Sumber dan verifikasi

Kepemilikan editorial: Feex. Tidak ada tanggal peninjauan independen yang dicatat. Cara kami meneliti.

Apakah artikel ini bermanfaat?

Cukup jawab ya atau tidak. Pilih alasan jika Anda mau, atau tambahkan catatan singkat.

Apakah artikel ini bermanfaat?