Přejít k obsahu

SSE

Referenční příručka k architektuřeFeex

SSE, Streaming SIMD Extensions, zavedlo x86 registry XMM a operace s packed hodnotami s plovoucí řádovou čárkou v jednoduché přesnosti. Jde o prvního člena řady samostatně identifikovatelných rozšíření SIMD.

Co potřebujete vědět

SSE, Streaming SIMD Extensions, zavedlo x86 registry XMM a operace s packed hodnotami s plovoucí řádovou čárkou v jednoduché přesnosti. Jde o prvního člena řady samostatně identifikovatelných rozšíření SIMD.

Jak to funguje

Registr XMM má šířku 128 bitů. Operace typu packed single-precision pracují se 4 32bitovými hodnotami s plovoucí řádovou čárkou, zatímco skalární formy pracují s jednou hodnotou a zachování zbývajících bitů závisí na konkrétní instrukci. SSE také zavedlo řídicí a stavové prostředí MXCSR pro výjimky a zaokrouhlování v SIMD výpočtech s plovoucí řádovou čárkou.

Kde je funkce užitečná

Grafické a zvukové rutiny mohou aplikovat stejnou operaci na více nezávislých hodnot. Linky SIMD (lanes) jsou datové prvky v rámci instrukce, nikoli jádra CPU nebo vlákna operačního systému. Okolní program stále obsluhuje načítání z paměti, ukládání a výjimečné hodnoty.

Jak ověřit podporu a aktivaci

CPUID.01H:EDX bit 25 indikuje SSE. Operační systém musí poskytovat náležitou správu stavu XMM/MXCSR. V běžném podporovaném ABI architektury x86-64 jsou SSE a SSE2 základními prostředky, avšak 32bitová aplikace má svůj vlastní základní profil pro nasazení.

Funkce SIMD popisuje instrukce, nikoli dodatečná jádra. Tvar instrukce určuje šířku prvku, znaménkovost, zaokrouhlování, zarovnání a to, které pruhy spolu interagují. Software musí zachovat stav registrů podle ABI a používat podporované prováděcí prostředí.

Co tato funkce nezajišťuje

Samotné SSE nezaručuje celočíselné operace nebo operace v dvojité přesnosti z SSE2, pozdější rozšíření SSE, AVX ani zásadu podpory ze strany operačního systému. Některé starší instrukce vyžadují specifické zarovnání paměti, které programátor musí respektovat.

Kompatibilita a výkon v praxi

Pozdější názvy v rodině SSE mají samostatné bity funkcí. U nasazeného binárního souboru prověřte úplnou minimální sadu funkcí, včetně knihoven a spouštěcího kódu. Záložní řešení je užitečné pouze tehdy, pokud se před krokem výběru nespustí žádná nepodporovaná instrukce.

Praktický kontrolní seznam pro ověření

  1. Zaznamenejte přesný model procesoru nebo platformy a použité verze aplikace, operačního systému a běhového prostředí. Uchovejte přesné znění chybové zprávy nebo požadavku.
  2. Zkontrolujte dokumentaci výrobce pro daný konkrétní model a poté prověřte skutečně dostupnou kapacitu a stav aktivace v prostředí, kde program běží.
  3. Porovnejte veškeré požadavky vybraného binárního souboru nebo backendu. Podobně pojmenovaná funkce, alias nebo obecné technologické označení nestačí.
  4. Ověřte, že aplikace vybrala zamýšlenou implementaci. Pokud nejsou požadavky splněny, použijte její zdokumentovanou diagnostiku a podporované náhradní řešení.
  5. Provádějte vždy jen jednu podporovanou změnu a zopakujte identickou zátěž. Původní konfiguraci a postup obnovy mějte neustále k dispozici.

Pokud je funkce uvedena, ale software ji nemůže použít

Začněte u přesné komponenty, u níž dochází k selhání. Databáze hardwaru popisuje zaznamenané schopnosti; operační systém nebo hypervizor však může vystavit odlišné efektivní prostředí. Chyba neplatné instrukce vyžaduje také prozkoumání skutečné chybující instrukce a sestavení binárního souboru, protože poškození dat nebo nesouvisející nepodporovaná instrukce mohou vyvolat podobný projev.

Nainstalujte verzi aplikace, ovladače nebo běhového prostředí podporovanou pro danou platformu a v případě potřeby použijte výrobcem zdokumentované základní nebo náhradní sestavení. Aktualizace softwaru nemůže vytvořit instrukci, kterou procesor fyzicky postrádá. Změny firmwaru a zásad zabezpečení by se měly řídit postupem výrobce systému a plánem obnovy, nikoli obecným návodem na optimalizaci.

Zdroje a rozsah tohoto vysvětlení

Intel 64 and IA-32 Architectures Software Developer's Manual · x86-64 psABI: úrovně architektury a mikroarchitektury procesoru

Tyto referenční dokumenty stanovují architektonické chování a softwarové požadavky. Neověřují nezávisle každou hodnotu funkce na odkazované stránce hardwarového modelu. Informace o podpoře konkrétního modelu čerpejte z podkladů výrobce na příslušné stránce a zkontrolujte platnou konfiguraci systému. Tento článek neposkytuje benchmark, certifikaci ani datum nezávislého přezkumu.

Zdroje a ověření

Redakční vlastnictví: Feex. Není zaznamenáno žádné datum nezávislého přezkoumání. Jak provádíme výzkum.

Byl tento článek užitečný?

Stačí ano nebo ne. Pokud chcete, vyberte důvod nebo přidejte krátkou poznámku.

Byl tento článek užitečný?