SSE3
SSE3 lägger till en liten grupp x86-instruktioner för hantering av flyttalsdata och aritmetik, inklusive horisontella operationer. Det skiljer sig från Supplemental SSE3, vanligen skrivet SSSE3.
Vad du behöver veta
SSE3 lägger till en liten grupp x86-instruktioner för hantering av flyttalsdata och aritmetik, inklusive horisontella operationer. Det skiljer sig från Supplemental SSE3, vanligen skrivet SSSE3.
Hur det fungerar
SSE3 inkluderar horisontella additions-/subtraktionsoperationer, alternerande addition/subtraktion, dupliceringsladdningsformer och LDDQU för specifika ojusterade heltalsladdningar. Horisontella operationer kombinerar element inom indatavektorer snarare än att helt enkelt tillämpa oberoende aritmetik på motsvarande banor. Exakt banordning spelar roll.
Där den är användbar
Komplex aritmetik kan kombinera duplicerings- och additions-/subtraktionsformer för att organisera reella och imaginära komponenter. En kompilator kan välja en annan sekvens när det är snabbare på en viss processor. Ett bekvämt instruktionsnamn är inte bevis på att det är optimalt för varje loop.
Hur man kontrollerar stöd och aktivering
CPUID.01H:ECX bit 0 enumererar SSE3. Kontrollera SSSE3 separat vid bit 9. Identifiera den faktiska instruktionen som utlöste ett fel för ogiltig instruktion istället för att gissa utifrån applikationens allmänna SSE-krav.
En SIMD-funktion beskriver instruktioner, inte extra karnor. Instruktionsformen avgor elementbredd, teckenrepresentation, avrundning, justering och vilka banor som interagerar. Mjukvara maste bevara ABI-registrens tillstand och anvanda en stodd exekveringsmiljo.
Vad funktionen inte fastställer
SSE3 och SSSE3 är separata funktionsflaggor. Varken den ena eller den andra etiketten bevisar SSE4.1, SSE4.2, POPCNT eller AVX. Tillgänglighet och tillåten användning för MONITOR/MWAIT kräver också sina egna överväganden på systemnivå snarare än att anta att användarkod får exekvera varje tillhörande instruktion.
Kompatibilitet och prestanda i praktiken
Senare namn i SSE-familjen har separata funktionsbitar. For en distribuerad binar, granska den fullstandiga minsta funktionsuppsattningen, inklusive bibliotek och startkod. En reservlosning ar bara anvandbar om ingen icke-stodd instruktion kors fore urvalssteget.
En praktisk checklista för verifiering
- Registrera den exakta processor- eller plattformsmodellen samt de applikations-, OS- och runtime-versioner som berörs. Behåll formuleringen av det faktiska felet eller kravet.
- Kontrollera tillverkarens referens för den exakta modellen och granska sedan den faktiska kapaciteten och det aktiverade tillståndet i miljön där programmet körs.
- Jämför varje krav för den valda binären eller renderingsmotorn. En snarlikt namngiven funktion, ett alias eller en bred teknikbeteckning räcker inte.
- Bekräfta att applikationen har valt den avsedda implementeringen. Använd dess dokumenterade diagnostik och en reservlösning som stöds när kraven inte uppfylls.
- Gör en ändring som stöds i taget och upprepa samma arbetsbelastning. Håll den ursprungliga konfigurationen och återställningsvägen tillgängliga.
Om funktionen är listad men programvaran inte kan använda den
Börja med den exakta komponenten som fallerar. En hårdvarudatabas beskriver registrerad kapacitet; operativsystemet eller hypervisorn kan exponera en annan faktisk miljö. Ett fel om otillåten instruktion kräver också undersökning av den faktiska felande instruktionen och binärbygget, eftersom korruption eller en orelaterad instruktion utan stöd kan ge ett liknande symptom.
Installera den version av applikationen, drivrutinen eller runtime-miljön som stöds för den exakta plattformen, och använd vid behov tillverkarens dokumenterade baslinje eller reservbygge. En programvaruuppdatering kan inte skapa en instruktion som processorn saknar. Ändringar i firmware och säkerhetspolicy bör följa systemtillverkarens procedur och en återställningsplan snarare än ett generiskt optimeringsrecept.
Källor och omfattning för denna förklaring
Intel 64 and IA-32 Architectures Software Developer's Manual
Dessa referenser fastställer arkitektoniskt beteende och programvarukrav. De verifierar inte oberoende varje funktionsvärde på en länkad hårdvarumodellsida. För modellstöd, använd den sidans tillverkarbelägg och kontrollera den effektiva systemkonfigurationen. Denna artikel tillhandahåller inte ett prestandatest, en certifiering eller ett oberoende granskningsdatum.
Källor och verifiering
Redaktionellt ägarskap: Feex. Inget oberoende granskningsdatum har registrerats. Hur vi efterforskar.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Volym 1 och 2 beskriver de namngivna instruktionsfamiljerna och CPUID; Volym 3 beskriver tillstånd, sidindelning, VMX och skyddskontroller. Arkitekturdokumentation fastställer inte stöd för en specifik modell.
Var denna artikel användbar?
Ett ja eller nej räcker. Välj en anledning om du vill, eller lägg till en kort anteckning.
Tack. Det hjälper oss att förbättra den här sidan.