Preskočiť na obsah

SSE

Architektonická referenciaFeex

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

  1. 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.
  2. 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ží.
  3. Porovnajte každú požiadavku vybraného binárneho súboru alebo backendu. Podobne pomenovaná funkcia, alias alebo široké technologické označenie nepostačujú.
  4. 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.
  5. 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.

Bol tento článok užitočný?

Stačí áno alebo nie. Ak chcete, vyberte dôvod, alebo pridajte krátku poznámku.

Bol tento článok užitočný?