1. [Wiki](https://feex.it/wiki/)
2. [Perangkat Keras](https://feex.it/wiki/hardware/)
3. [Sistem dan arsitektur](https://feex.it/wiki/hardware/system/)
4. FMA dan FMA3

# FMA dan FMA3

Referensi arsitektur: Feex

Juga disebut FMA, FMA3

FMA menghitung perkalian dan penjumlahan titik kambang dengan satu pembulatan akhir. FMA3 mengacu pada rumpun instruksi fused multiply-add x86 tiga-operan; fitur ini dienumerasikan secara terpisah dari AVX2.

## Yang perlu Anda ketahui

FMA menghitung perkalian dan penjumlahan titik kambang dengan satu pembulatan akhir. FMA3 mengacu pada rumpun instruksi fused multiply-add x86 tiga-operan; fitur ini dienumerasikan secara terpisah dari AVX2.

## Cara kerjanya

Operasi terpadu (fused) mengevaluasi hasil kali dan jumlah sebagai satu operasi aritmetika sebelum pembulatan ke format tujuan. Hal ini dapat mempertahankan kontribusi yang seharusnya hilang jika perkalian dibulatkan terlebih dahulu. Bentuk instruksi 132, 213, dan 231 memilih operan mana yang menyediakan hasil kali, penambah, dan tujuan yang ditimpa. Bentuk skalar dan bentuk packed memiliki perilaku jalur (lane) yang berbeda.

## Manfaat penggunaan

Evaluasi polinomial, perkalian matriks, dan filter digital dapat menggunakan FMA untuk menggabungkan operasi aritmetika. Hasil terpadu dapat berbeda dari program yang sengaja menggunakan dua operasi terpisah. Oleh karena itu, pengaturan kontraksi kompilator dan persyaratan reproduksibilitas numerik menjadi hal penting selain ketersediaan instruksi.

## Cara memeriksa dukungan dan pengaktifan

Untuk instruksi VEX FMA3, periksa bit 12 CPUID.01H:ECX bersamaan dengan pemeriksaan status OS untuk AVX secara lengkap. Jika menggunakan bentuk EVEX, periksa subset AVX-512 tambahan dan status yang diwajibkan oleh bentuk-bentuk tersebut. Periksa flag kompilator ketika hasil numerik berubah setelah pembuatan ulang program.

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

FMA tidak berarti setiap ekspresi titik kambang dievaluasi dengan presisi ekstra, dan fitur ini tidak menjamin hasil yang identik di berbagai pengaturan kompilator. FMA4 adalah rumpun instruksi yang berbeda. Baik AVX maupun AVX2 saja tidak membuktikan dukungan untuk FMA3.

## 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.

## Fitur terkait dan perbedaan yang berguna

[AVX](https://feex.it/wiki/l/id/hardware/system/avx/) · [AVX2](https://feex.it/wiki/l/id/hardware/system/avx2/) · [F16C](https://feex.it/wiki/l/id/hardware/system/f16c/) · [x86-64-v3](https://feex.it/wiki/l/id/hardware/system/x86-64-v3/)

## Sumber dan cakupan penjelasan ini

[Intel 64 and IA-32 Architectures Software Developer's Manual](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html) · [Kernel Linux: penggunaan fitur XSTATE di ruang pengguna](https://docs.kernel.org/arch/x86/xstate.html)

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.

## Terkait

Entitas-entitas ini terhubung ke artikel ini. Jenis ditampilkan di setiap tautan.

[AVX: Referensi arsitektur](https://feex.it/wiki/l/id/hardware/system/avx/)[AVX2: Referensi arsitektur](https://feex.it/wiki/l/id/hardware/system/avx2/)[F16C: Referensi arsitektur](https://feex.it/wiki/l/id/hardware/system/f16c/)[x86-64-v3: Referensi arsitektur](https://feex.it/wiki/l/id/hardware/system/x86-64-v3/)

## Sumber dan verifikasi

Kepemilikan editorial: Feex. Tidak ada tanggal peninjauan independen yang dicatat. [Cara kami meneliti](https://feex.it/wiki/research/).

- [Intel 64 and IA-32 Architectures Software Developer's Manual ](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html)· Volume 1 dan 2 menjelaskan keluarga instruksi yang disebutkan serta CPUID; Volume 3 menjelaskan status, paging, VMX, dan kontrol proteksi. Dokumentasi arsitektur tidak menetapkan dukungan untuk model tertentu.
- [Kernel Linux: penggunaan fitur XSTATE di ruang pengguna ](https://docs.kernel.org/arch/x86/xstate.html)· Status vektor yang diaktifkan OS, status tile yang diaktifkan secara dinamis, persyaratan signal-stack, dan alur izin AMX. Perilaku khusus Linux bukanlah jaminan untuk OS lain.

## Apakah artikel ini bermanfaat?

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

Fakta singkat

Identitas ringkas halaman ini. Spesifikasi, sumber, dan uraian lengkap tetap berada di dalam artikel.

---

Source: [Canonical Feex Wiki page](https://feex.it/wiki/l/id/hardware/system/fma/)

[Developer guide](https://feex.it/wiki/developers/) | [API policy](https://feex.it/developers/api-policy/) | [Agent guidance](https://feex.it/wiki/llms.txt)
