SSE
SSE, Streaming SIMD Extensions, zaviedlo registre x86 XMM a operácie s číslami s jednoduchou presnosťou v plávajúcej rádovej čiarke v zbalenom formáte (packed). Ide o prvého člena postupnosti nezávisle identifikovateľných rozšírení SIMD.
Čo potrebujete vedieť
SSE, Streaming SIMD Extensions, zaviedlo registre x86 XMM a operácie s číslami s jednoduchou presnosťou v plávajúcej rádovej čiarke v zbalenom formáte (packed). Ide o prvého člena postupnosti nezávisle identifikovateľných rozšírení SIMD.
Ako to funguje
Register XMM má veľkosť 128 bitov. Zbalené operácie s jednoduchou presnosťou pracujú so 4 32-bitovými hodnotami v plávajúcej rádovej čiarke, zatiaľ čo skalárne formy pracujú s jedinou hodnotou, pričom správanie pre zostávajúce bity je špecifické pre danú inštrukciu. SSE tiež zaviedlo riadiace a stavové prostredie MXCSR pre výnimky v plávajúcej rádovej čiarke a zaokrúhľovanie v SIMD.
Kde je to užitočné
Grafické a zvukové rutiny môžu aplikovať rovnakú operáciu na viacero nezávislých hodnôt. SIMD linky (lanes) sú dátové prvky v rámci inštrukcie, nie jadrá procesora ani vlákna operačného systému. Okolitý program naďalej rieši načítania, zápisy a výnimočné hodnoty.
Ako overiť podporu a povolenie
CPUID.01H:EDX bit 25 indikuje SSE. Operačný systém musí poskytovať príslušnú správu stavu XMM/MXCSR. V bežnom podporovanom ABI x86-64 sú SSE a SSE2 základnými prostriedkami, avšak 32-bitová aplikácia má svoj vlastný základ nasadenia.
Funkcia SIMD popisuje inštrukcie, nie ďalšie jadrá. Tvar inštrukcie určuje šírku prvku, znamienkovosť, zaokrúhľovanie, zarovnanie a ktoré dátové pruhy vzájomne interagujú. Softvér musí zachovať stav registrov podľa ABI a používať podporované prostredie na vykonávanie.
Čo táto funkcia nezakladá
Samotné SSE nezakladá celočíselné operácie alebo operácie s dvojitou presnosťou v SSE2, neskoršie rozšírenia SSE, AVX ani pravidlá podpory operačného systému. Niektoré staršie inštrukcie vyžadujú špecifické zarovnanie pamäte, ktoré programátor musí rešpektovať.
Kompatibilita a výkon v praxi
Neskoršie názvy v rodine SSE majú samostatné bity funkcií. V prípade nasadenej binárky skontrolujte úplnú minimálnu sadu funkcií vrátane knižníc a štartovacieho kódu. Záložný kód je užitočný len vtedy, ak sa pred krokom výberu nespustí žiadna nepodporovaná inštrukcia.
Praktický kontrolný zoznam na overenie
- Zaznamenajte presný model procesora alebo platformy a príslušné verzie aplikácie, operačného systému a runtime prostredia. Zachovajte presné znenie skutočnej chyby alebo požiadavky.
- Skontrolujte referenčnú dokumentáciu výrobcu pre daný presný model a potom preverte efektívnu schopnosť a povolený stav v prostredí, kde program beží.
- Porovnajte každú požiadavku vybraného binárneho súboru alebo backendu. Podobne pomenovaná funkcia, alias alebo široké technologické označenie nepostačujú.
- Uistite sa, že aplikácia vybrala zamýšľanú implementáciu. Ak požiadavky nie sú splnené, použite jej dokumentovanú diagnostiku a podporované náhradné riešenie.
- Vykonávajte vždy len jednu podporovanú zmenu a zopakujte rovnaké pracovné zaťaženie. Ponechajte si k dispozícii pôvodnú konfiguráciu a postup obnovy.
Ak je funkcia uvedená, ale softvér ju nemôže použiť
Začnite presne pri zlyhávajúcom komponente. Hardvérová databáza popisuje zaznamenanú schopnosť; operačný systém alebo hypervízor však môže sprístupniť iné efektívne prostredie. Chyba neplatnej inštrukcie si vyžaduje aj preskúmanie skutočnej chybujúcej inštrukcie a zostavenia binárneho súboru, pretože poškodenie alebo nesúvisiaca nepodporovaná inštrukcia môže vyvolať podobný príznak.
Nainštalujte verziu aplikácie, ovládača alebo runtime prostredia podporovanú pre presnú platformu a v prípade potreby použite dodávateľom dokumentované základné alebo záložné zostavenie. Aktualizácia softvéru nedokáže vytvoriť inštrukciu, ktorú procesor nemá. Zmeny firmvéru a bezpečnostných politík by sa mali riadiť postupom výrobcu systému a plánom obnovy, nie generickým návodom na optimalizáciu.
Zdroje a rozsah tohto vysvetlenia
Intel 64 and IA-32 Architectures Software Developer's Manual · x86-64 psABI: úrovne architektúry a mikroarchitektúry procesora
Tieto referencie definujú architektonické správanie a softvérové požiadavky. Neoverujú nezávisle každú hodnotu funkcie na prepojenej stránke hardvérového modelu. Podporu modelu nájdete v podkladoch od výrobcu na danej stránke a skontrolujte efektívnu konfiguráciu systému. Tento článok neposkytuje dátum benchmarku, certifikácie ani nezávislej recenzie.
Zdroje a overenie
Redakčné vlastníctvo: Feex. Nie je zaznamenaný žiadny dátum nezávislej kontroly. Ako robíme výskum.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Zväzky 1 a 2 popisujú uvedené rodiny inštrukcií a CPUID; Zväzok 3 popisuje stav, stránkovanie, VMX a ovládacie prvky ochrany. Dokumentácia k architektúre nezaručuje podporu pre konkrétny model.
- x86-64 psABI: úrovne architektúry a mikroarchitektúry procesora · Strojové rozhranie, architektúra procesora: tabuľka základných a kumulatívnych funkcií v2/v3/v4, kontroly stavu OS a odporúčania pre nasadenie.
Bol tento článok užitočný?
Stačí áno alebo nie. Ak chcete, vyberte dôvod, alebo pridajte krátku poznámku.
Ďakujeme. Pomáha nám to zlepšovať túto stránku.