Avx-instructies voor welke games. Ondersteuning voor AVX-instructies in de processor - waarom is dit nodig?

Vandaag wil ik een gesprek beginnen over wat avx-instructies in een processor zitten, waar en waarvoor ze worden gebruikt.

De gemiddelde klant gaat naar de winkel en wil een computer/laptop kopen voor werk en ontspanning. In de praktijk is het krachtiger en goedkoper om een ​​essay in Word te schrijven en het vervolgens af te spelen.
Wat processors betreft, liggen er boze stronken in de schappen die qua kracht gelijk zijn aan i-3s. Is de i3 een marketingcomplot? Is Pentium echt “hetzelfde soort 3 alleen goedkoper”? Ja en nee. Hier is het probleem.

Om een ​​essay in Word te schrijven is de goedkoopste Celeron voldoende (en je kunt een “plugprocessor” nog goedkoper krijgen als je deze op een rommelmarkt koopt met een bon en de rest van de garantie).
Om alle games na de samenvatting te spelen, is een Pentium met de kenmerken van een i-3 (2 cores 4 threads) geschikt. Voor games zijn AVX-instructies niet vereist (zolang de benodigde SSE's aanwezig zijn).

Maar voor professionele taken zullen hardwarevirtualisatie en ondersteuning voor AVX-instructies nuttig zijn, dus het is beter om minimaal i-3 te nemen.

Waarom hebben we AVX-instructies nodig?

Wat valt onder een aantal beroepstaken? In de regel missen stenen zonder AVX ook.
Ontwikkeling voor Android, waarvoor een virtuele machine van dezelfde bucket nodig is (sommige emulators starten niet eens, andere werken helaas en belasten de kernels zwaar).
Het kauwen van multimediagegevens (van het verwerken van foto's tot het coderen van video en het knippen van 3D-afbeeldingen, dus laten we spelen, spelers moeten meer uitgeven voor een duurdere processor).

Indien zonder AVX

De processor beschikt over registers voor instructies.
Het SSE-register is 128-bits en het AVX-register is 256-bits.
Dus, om niemand te verbazen met de anatomie van een steen, laten we zeggen: 256 past niet in 128.

Zonder AVX kun je ook foto's verwerken, video's kauwen en driedelig knippen. Maar er zijn nuances...
Simpel gezegd: een oude 8-core Xeon (niet geschikt voor AXV) zal video's met dezelfde snelheid knippen als een moderne i3 (geschikt voor AVX).

De processor heeft een pijplijn: hij ontdekte waar hij het uit het geheugen moest halen, haalde het uit het geheugen, berekende het en stuurde de resultaten naar het geheugen.
Een vereenvoudigde pijpleiding met en zonder AVX kan als volgt worden weergegeven.

Zoals u kunt zien, zijn er in het tweede geval minder bewerkingen. Waarvan het logisch is om aan te nemen dat de AVX-teller sneller werkt (in elke rekencyclus). En omdat het in elke klokcyclus sneller is, kun je met minder gigahertz sneller rekenen.

Een ander voordeel van AVX is de extra operand. Er worden niet 2 operanden gebruikt, maar 3, wat ook de pijplijn verkort. Laten we zeggen dat we X en Y willen optellen.
Code: Normale werking, waarbij 2 operanden (X=X+Y) ervoor zorgen dat een van de operanden wordt overschreven.
AVX-bewerking, waarbij u met 3 operanden (Z=X+Y) het resultaat naar de derde operand kunt schrijven.
Moeilijk? Oké, laten we het simpel houden.

Video's maken met AVX gaat sneller. Omdat, naast het bovenstaande, de bonus van een optimale frame-indeling wordt toegevoegd.
De computer berekent niet elk frame opnieuw. Het verdeelt het frame in rechthoeken en vergelijkt ze, en als er een geschikt frame wordt gevonden, wordt het voltooide stuk gebruikt.
Hier leerde AVX optimaal met video's werken (voor geïnteresseerden, lees van professionals, en ik beperk me tot een mooie foto).

Voorheen was de uitsplitsing zoals links weergegeven. AVX-partitionering kan slimmere dingen doen, zoals rechts weergegeven.

Om het samen te vatten

Om een ​​samenvatting in Word te schrijven, is elke processor voldoende.
Om achteraf een spel te spelen in plaats van een essay, is een boomstronk met de ingrediënten van een I-derde voldoende.
Om inhoud te verminderen, is het beter om voor een i-derde te kiezen.

Nieuwste functie-extensie AVX512 (geavanceerde vectorextensie 512-bit), ook bekend als AVX3, bestaat uit negen technologieën, die elk al dan niet optioneel worden ondersteund door een bepaalde processor. Een aantal implementaties van de beschouwde familie, gerelateerd aan high-bit-bewerkingen, worden al gebruikt in Intel Xeon Phi-coprocessors en zijn optioneel verkrijgbaar in Xeon-processors met de Skylake-microarchitectuur. Laten we u eraan herinneren dat Xeon Phi-coprocessors zijn ontworpen voor installatie in een PCI Express-slot.

Basisfunctionaliteit van AVX512

Geaccepteerde afkorting: AVX512 F (Fundering) . Is het eenvoudig of minimale instelling uitvoerbare opdrachten en in software beschikbare bronnen die nodig zijn om 512-bits vectoren te verwerken. Ondersteuning voor AVX512F impliceert het uitbreiden van de breedte van vectorregisters tot 512 bits en het verhogen van het aantal van deze registers tot 32. Ter vergelijking: de functionele uitbreiding van de vorige generatie (AVX2), geïmplementeerd in Haswell-processors, impliceert het gebruik van 16 registers met een breedte van 256 bits. Traditioneel maken de ‘oude’ registers deel uit van de ‘nieuwe’. IN in dit geval dit betekent dat de 16 256-bits YMM-registers worden toegewezen aan de 256-bits "helften" van lage orde van de 512-bits ZMM-registers.

Zoals uit eenvoudige berekeningen blijkt, is de nieuwe 512-bit bedieningsapparaat geschikt voor het verwerken van 8 64-bits getallen met dubbele precisie of 16 32-bits getallen met enkele precisie in één vectorinstructie.

IN basisset AVX512F ook inbegrepen uitvoering van predicaten vectorbewerkingen. Dit betekent dat bij het verwerken van getallen die zijn verpakt in een 512-bits register, de bewerking per nummer kan worden uitgevoerd of geannuleerd. Wanneer u bijvoorbeeld 16 32-bits getallen met enkele precisie verwerkt, zorgt een 16-bits predikaat dat alle "enen" bevat ervoor dat de bewerking op alle getallen wordt uitgevoerd. Als alle predicaatbits nul zijn, mislukt de bewerking. En door bijvoorbeeld de twee minst significante bits van het predikaat in te stellen, kunt u de bewerking uitvoeren op de eerste twee getallen, terwijl de overige getallen ongewijzigd blijven. Om predikaten op te slaan, worden 8 extra 64-bits registers K0-K7 geïntroduceerd.

Afb. 1

Detectie van hardwareconflicten

Geaccepteerde afkorting: AVX512CD (conflictdetectie). Wordt gebruikt om effectief situaties te detecteren waarin gespecificeerde softwareprocedures niet parallel kunnen worden uitgevoerd vanwege gegevensafhankelijkheden. Laten we niet vergeten dat bij het optimaliseren van programmalussen een methode wordt gebruikt die een overgang impliceert van sequentiële naar parallelle uitvoering van lusiteraties. De lus wordt "uitgerold" in een lineaire reeks bewerkingen, waarna deze bewerkingen parallel worden uitgevoerd met behulp van vectorregisters. Deze techniek is alleen toegestaan ​​als er geen gegevensconflicten zijn tussen iteraties van de lus. Anders, als een iteratie gegevens gebruikt die de vorige iteratie zou moeten voorbereiden, gebeurt dat wel parallelle uitvoering zal resulteren in een fout.

Gegevens voorwaarts laden

Geaccepteerde afkorting: AVX512 PF (Vooraf ophalen) . Het prefetch-mechanisme is verbeterd om het willekeurig gefragmenteerde laden van gegevens mogelijk te maken. Voorwaarts laden in de eenvoudigste vorm wordt sinds de Pentium III gebruikt in Intel-processors. Het bestaat uit het vooraf lezen van operanden uit het RAM in het cachegeheugen met behulp van speciale opdrachten (prefetch-hints). Dit minimaliseert onproductieve pauzes in de processor, omdat wanneer gegevens worden opgevraagd, deze al uit het geheugen worden geladen. Nu kan deze bewerking niet alleen voor één geheugencel worden uitgevoerd, maar ook voor een lijst cellen waarvan de adressen in het vectorregister staan.


Afb. 2

Exponenten en reciprocals berekenen

Geaccepteerde afkorting: AVX512ER (exponentieel en wederkerig). Deze groep opdrachten levert geschatte resultaten op voor de exponent, reciproque en reciproque van de vierkantswortel. De relatieve fout bedraagt, afhankelijk van het type commando, maximaal 2 tot de macht min 23 of 2 tot de macht min 28. Commando's in deze groep worden gebruikt om situaties effectief te ondersteunen waarin het acceptabel is om nauwkeurigheid op te offeren voor de omwille van de prestaties. Laten we meteen een voorbehoud maken dat exponent hier betekent dat we twee (en niet het getal e) tot een bepaalde macht moeten verheffen. Dit controversiële terminologische kenmerk spreekt het geweten van Intel-ingenieurs aan.

Variabele bitbewerkingen

Geaccepteerde afkorting: AVX512 VL (Vector Lengte) . Deze functionaliteit maakt het gebruik van AVX512-functies mogelijk, in het bijzonder de hierboven beschreven predikaten en 32 vectorregisters) voor operanden met een grootte van 128 en 256 bits.

Omgaan met bytes en 16-bits operanden

Geaccepteerde afkorting: AVX512 BW (Byte En Woord) . Maakt het gebruik van AVX512-mogelijkheden mogelijk voor 8- en 16-bit integer-bewerkingen.

Verwerking van 32- en 64-bits operanden

Geaccepteerde afkorting: AVX512 DQ (Dubbele woord En Viervoudig Woord) . Maakt het gebruik van AVX512-mogelijkheden voor 32-bits en 64-bits bewerkingen mogelijk.

Gecombineerde vermenigvuldiging voor 52-bits operanden

Geaccepteerde afkorting: AVX512IFMA (geheel getal gefuseerd vermenigvuldigen en optellen). Vermenigvuldigen van gehele getallen zonder teken met 52 bits. IN documenten openen Een verklaring voor het gebruik van een dergelijk atypisch getalformaat kon niet worden gevonden. Laten we, als we bedenken dat de breedte van de mantisse voor een getal met dubbele precisie 52 bits is, aannemen dat het doel was om de mantisse als een onafhankelijke waarde in gehele getallen (en dus snel) te kunnen verwerken.

Bewerkingen met bytes als onderdeel van vectorregisters

Geaccepteerde afkorting: AVX512VBM (manipulatie van vectorbytes). Dit omvat instructies voor het herschikken en selectief doorsturen van byte-operands die zich in vectorregisters bevinden.

Cv

Zoals uit het bovenstaande blijkt, impliceert de uitbreiding van AVX512 de introductie van nieuwe processorinstructies en architecturale bronnen. Daarom zal alleen software die is geschreven en geoptimaliseerd rekening houdend met de nieuwe technologie een productiviteitsverhoging krijgen.

Om dergelijke technologie te laten werken is uiteraard ook ondersteuning van het besturingssysteem nodig, aangezien een toename van het aantal en de bitdiepte van registers leidt tot een toename van de hoeveelheid informatie die moet worden opgeslagen en hersteld wanneer de processorcontext wordt gewijzigd. een multitasking-omgeving. Merk dat op Intel-bedrijf zoveel mogelijk verenigd

Verbeteringen

  • Nieuw VEX-instructiecoderingsschema
  • De grootte van SIMD-vectorregisters neemt toe van 128 (XMM) naar 256 bits (registers YMM0 - YMM15). Bestaande 128-bits SSE-instructies zullen de lage helft van de nieuwe YMM-registers gebruiken zonder de hoge helft te veranderen. Er zijn nieuwe 256-bit AVX-instructies toegevoegd om met YMM-registers te werken. In de toekomst is het mogelijk om de SIMD-vectorregisters uit te breiden naar 512 of 1024 bits.

Nieuw coderingsschema

Het nieuwe VEX-instructiecoderingsschema maakt gebruik van het VEX-voorvoegsel. IN huidige moment Er zijn twee VEX-voorvoegsels, 2 en 3 bytes lang. Voor een VEX-voorvoegsel van 2 bytes is de eerste byte 0xC5, voor een 3-byte 0xC4. In de 64-bitsmodus is de eerste byte van het VEX-voorvoegsel uniek. In de 32-bits modus is er een conflict met de LES- en LDS-instructies, dat wordt opgelost door de meest significante bit van de tweede byte; het is alleen zinvol in de 64-bits-modus, via niet-ondersteunde vormen van de LES- en LDS-instructies. De lengte van bestaande AVX-instructies, inclusief het VEX-voorvoegsel, bedraagt ​​niet meer dan 11 bytes. In toekomstige versies worden langere instructies verwacht.

Nieuwe instructies

Instructies Beschrijving
VBROADCASTSS, VBROADCASTSD, VBROADCASTF128 Kopieert een 32-, 64- of 128-bits operand uit het geheugen naar alle elementen van het XMM- of YMM-vectorregister.
VINSERTF128 Vervangt de lage of hoge helft van een 256-bits YMM-register door de waarde van een 128-bits operand. Het andere deel van het bestemmingsregister wordt niet gewijzigd.
VEXTRACTF128 Haalt de lage of hoge helft van een 256-bits YMM-register op en kopieert deze naar een 128-bits doeloperand.
VMASKMOVPS, VMASKMOVPD Leest voorwaardelijk een willekeurig aantal elementen uit de vectoroperand uit het geheugen in het bestemmingsregister, waarbij de overige elementen ongelezen blijven en de overeenkomstige elementen van het bestemmingsregister op nul worden gezet. Het kan ook voorwaardelijk een willekeurig aantal elementen uit een vectorregister naar een vectoroperand in het geheugen schrijven, waarbij de overige elementen van de geheugenoperand ongewijzigd blijven
VPERMILPS, VPERMILPD Herschikt 32- of 64-bits vectorelementen volgens de selector-operand (uit het geheugen of uit een register).
VPERM2F128 Herschikt 4 128-bits elementen van twee 256-bits registers in een 256-bits bestemmingoperand met behulp van een onmiddellijke constante (imm) als selector.
VZEROALL Wist alle YMM-registers en markeert ze als ongebruikt. Wordt gebruikt bij het schakelen tussen de 128-bitsmodus en de 256-bitsmodus.
VZEROUPPER Zet de hoge helft van alle YMM-registers terug op nul. Wordt gebruikt bij het schakelen tussen de 128-bitsmodus en de 256-bitsmodus.

De AVX-specificatie beschrijft ook de PCLMUL-instructiegroep (Parallel Carry-Less Multiplication, Parallel CLMUL).

  • PCLMULLQLQDQ xmmreg,xmmrm
  • PCLMULHQLQDQ xmmreg,xmmrm
  • PCLMULLQHQDQ xmmreg,xmmrm
  • PCLMULHQHQDQ xmmreg,xmmrm
  • PCLMULQDQ xmmreg,xmmrm,imm

Sollicitatie

Geschikt voor intensieve drijvende-kommaberekeningen in multimediaprogramma's en wetenschappelijke taken. Waar een hogere mate van parallellisme mogelijk is, nemen de prestaties met reële getallen toe.

Ondersteuning van besturingssystemen

Het gebruik van YMM-registers vereist ondersteuning van het besturingssysteem. Volgende systemen ondersteuning voor YMM-registers:

Microprocessoren met AVX

Compatibiliteit tussen Intel- en AMD-implementaties wordt besproken in de XOP-instructieset.

Toekomstige uitbreidingen

Het VEX-instructiecoderingsschema maakt eenvoudig verdere uitbreiding van de AVX-instructieset mogelijk. IN volgende versie, AVX2, het is de bedoeling om instructies toe te voegen voor het werken met gehele getallen, FMA3 (zal de prestaties verhogen bij het verwerken van drijvende-kommagetallen met 2 keer), het laden van een vector die in het geheugen is gedistribueerd (verzamelen) enzovoort.

Diverse geplande toevoegingen aan de x86-instructieset:

  • CLMUL
  • AMD FMA4
  • AMD XOP
  • AMD CVT16

Opmerkingen


Basisinstructie-uitbreidingssets voor x86-familieprocessors
MMX | MMXEXT | SSE | SSE2 | SSE3 | SSSE3 | SSE4 | ATA | 3DNu! | 3DNowExt | SSE5 | AVX| AES

Stichting Wikimedia.

2010.

    Kijk wat "AVX" is in andere woordenboeken: Avx

    AVX- (((afbeelding))) Sigles of une seule lettre Sigles deux lettres > Sigles de trois lettres AAA à DZZ EAA à HZZ IAA à LZZ MAA à PZZ QAA à TZZ UAA à XZZ … Wikipédia en Français

- Sigles van een seule letter Sigles van twee letters > Sigles van drie letters Sigles van vier letters Sigles van cinq lettres Sigles van zes letters Sigles de sept… … Wikipédia en Français

Beschrijving van testsystemen en testmethoden Het belangrijkste doel van het testen is het identificeren van de prestatiewinst die kan worden behaald door niet-overklokkende processors te overklokken. Daarom hebben we de juniorvertegenwoordigers meegenomen om te testen Kern lijnen i5 en i3, De i5-6400 en i3-6100 werden twee keer getest: in de nominale bedrijfsmodus en met een frequentie van 4,7 GHz, wat op basis van de opgedane ervaring kan worden beschouwd als een vrij typische overklokmodus voor CPU's van de Skylake-generatie. Daarnaast nam ook een volwaardige overklokprocessor uit de K-serie, Core i5-6600K, deel aan de tests. De aanwezigheid ervan in de tests is noodzakelijk om te evalueren of de overklokprestaties verschillen tussen processors die wel en niet bedoeld zijn voor gebruik in noodmodi, en zo ja, in welke mate. We hebben de Core i5-6600K twee keer getest: zowel in de nominale modus als bij overklokken naar 4,6 GHz (dit is de maximaal haalbare frequentie voor ons exemplaar met de voedingsspanning verhoogd naar 1,425 V).

De volledige lijst met componenten die bij de testsystemen betrokken zijn, is als volgt:

  • Verwerkers:
    • Intel Core i5-6600K (Skylake, 4 kernen, 3,5-3,9 GHz, 6 MB L3);
    • Intel Core i5-6400 (Skylake, 4 kernen, 2,7-3,3 GHz, 6 MB L3);
    • Intel Core i3-6100 (Skylake, 2 kernen + HT, 3,7 GHz, 3 MB L3).
    • CPU-koeler: Noctua NH-U14S.
    • Moederbord: ASUS Maximus VIII Ranger (LGA1151, Intel Z170).
    • Geheugen: 2 × 8 GB DDR4-3200 SDRAM, 16-18-18-36 (Corsair Vengeance LPX CMK16GX4M2B3200C16R).
    • Videokaart: NVIDIA GeForce GTX 980 Ti (6 GB/384-bit GDDR5, 1000-1076/7010 MHz).
    • Schijfsubsysteem: Kingston HyperX Savage 480 GB (SHSS37A/480G).
    • Voeding: Corsair RM850i ​​(80 Plus Gold, 850 W).

Er zijn testen uitgevoerd in besturingssysteem Microsoft Windows 10 Enterprise Build 10586 met behulp van de volgende stuurprogrammaset:

  • Intel Chipset-stuurprogramma 10.1.1.8;
  • Intel Management Engine-interfacestuurprogramma 11.0.0.1157;
  • NVIDIA GeForce 361.43-stuurprogramma.

Beschrijving van de tools die worden gebruikt om computerprestaties te meten:

Benchmarks:

  • BAPCo SYSmark 2014 ver 1.5 - testen in Office Productivity-scenario's ( kantoorwerk: tekstvoorbereiding, spreadsheetverwerking, werken met per e-mail en het bezoeken van internetsites), Mediacreatie(werken aan multimedia-inhoud - creëren commercieel gebruik van voorgefilmd digitale afbeeldingen en video) en Data/Financial Analysis (statistische analyse en investeringsprognoses op basis van een bepaald financieel model).
  • Futuremark 3DMark Professionele editie 1.5.915 - testen in de scènes Sky Diver, Cloud Gate en Fire Strike.

Toepassingen:

  • Adobe Na effecten CC 2015 - renderingsnelheid testen met behulp van ray tracing. De tijd die het systeem besteedt aan het weergeven van een vooraf voorbereide video met 1920 x 1080 bij 30 fps wordt gemeten.
  • Adobe Photoshop CC 2015 - prestatietests verwerken grafische afbeeldingen. De gemiddelde uitvoeringstijd van een testscript, een creatief herwerkte Retouch Artists Photoshop, wordt gemeten Snelheidstest, inclusief de typische verwerking van vier gemaakte 24-megapixelfoto's digitale camera.
  • Adobe Photoshop Lightroom 6.1 - testprestaties bij batchverwerking van een reeks afbeeldingen in RAW-formaat. Het testscenario omvat nabewerking en export naar JPEG met een resolutie van 1920×1080 en maximale kwaliteit tweehonderd RAW-foto's van 12 megapixels gemaakt met een Nikon D300 digitale camera.
  • Adobe Première Pro CC 2015 - prestatietests voor niet-lineaire videobewerking. De tijd voor het renderen van een Blu-Ray-project met HDV 1080p25-video waarop verschillende effecten zijn toegepast, wordt gemeten.
  • Autodesk 3ds max 2016 - laatste testen van de weergavesnelheid. Meet de tijd die nodig is om te renderen met een resolutie van 1920 x 1080 met behulp van de renderer mentale straal standaard Hummer-podium.
  • Blender 2.76 - testen van de uiteindelijke weergavesnelheid in een van de populaire gratis creatiepakketten 3D-afbeeldingen. De duur van het bouwen van het definitieve model uit Blender Cycles Benchmark rev4 wordt gemeten.
  • Microsoft Edge 20.10240.16384.0 - testen van de prestaties van internettoepassingen die zijn gebouwd met moderne technologieën. Er wordt gebruik gemaakt van een gespecialiseerde test, WebXPRT 2015, die algoritmen implementeert die daadwerkelijk in internettoepassingen worden gebruikt in HTML5 en JavaScript.
  • TrueCrypt 7.2 - testen van cryptografische prestaties. Er wordt gebruik gemaakt van een in het programma ingebouwde benchmark die gebruik maakt van drievoudige AES-Twofish-Serpent-codering.
  • WinRAR 5.30 - snelheidstests voor archivering. De tijd die het archiveringsprogramma besteedt aan het comprimeren van een map diverse bestanden totaalvolume 1,7 GB. Er wordt gebruik gemaakt van de maximale compressiegraad.
  • x264 r2638 - testen van de snelheid van videotranscodering naar H.264/AVC-formaat. Om de prestaties te evalueren, gebruiken we een origineel 1080p@50FPS AVC-videobestand met een bitsnelheid van ongeveer 30 Mbps.
  • x265 1.8+188 8bpp - testen van de snelheid van videotranscodering naar het veelbelovende H.265/HEVC-formaat. Om de prestaties te evalueren, wordt hetzelfde videobestand gebruikt als in de transcoderingssnelheidstest van de x264-encoder.

Spellen:

  • Heldengezelschap 2. Instellingen voor een resolutie van 1280×800: Maximale beeldkwaliteit, Anti-aliasing = Uit, Hogere textuurdetails, Hoge sneeuwdetail, Fysica = Uit. Instellingen voor een resolutie van 1920 × 1080: Maximale beeldkwaliteit, Hoge anti-aliasing, Hogere textuurdetails, Hoge sneeuwdetail, Fysica = Hoog.
  • Groots Diefstal auto V. Instellingen voor een resolutie van 1280×800: DirectX-versie = DirectX 11, FXAA = Uit, MSAA = Uit, NVIDIA TXAA = Uit, Bevolkingsdichtheid = Maximaal, Bevolkingsvariëteit = Maximaal, Afstandsschaling = Maximaal, Textuurkwaliteit = Zeer hoog, Shaderkwaliteit = Zeer hoog, Schaduwkwaliteit = Zeer hoog, Reflectiekwaliteit = Ultra, Reflectie MSAA = Uit, Waterkwaliteit = Zeer hoog, Deeltjeskwaliteit = Zeer hoog, Graskwaliteit = Ultra, Zachte schaduw = Zachtst, Post FX = Ultra, In-game diepte Van veldeffecten = Aan, Anisotrope filtering = x16, Omgevingsocclusie = Hoog, Mozaïekpatroon = Zeer hoog, Lange schaduwen = Aan, Schaduwen met hoge resolutie = Aan, Streaming met hoge details tijdens vliegen = Aan, Uitgebreide afstandsschaling = Maximaal, Uitgebreide schaduwafstand = Maximaal. Instellingen voor een resolutie van 1920×1080: DirectX-versie = DirectX 11, FXAA = Uit, MSAA = x4, NVIDIA TXAA = Uit, Bevolkingsdichtheid = Maximaal, Bevolkingsvariëteit = Maximaal, Afstandsschaling = Maximaal, Textuurkwaliteit = Zeer hoog, Shaderkwaliteit = Zeer hoog, Schaduwkwaliteit = Zeer hoog, Reflectiekwaliteit = Ultra, Reflectie MSAA = x4, Waterkwaliteit = Zeer hoog, Deeltjeskwaliteit = Zeer hoog, Graskwaliteit = Ultra, Zachte schaduw = Zachtst, Post FX = Ultra, In-game diepte Van veldeffecten = Aan, Anisotrope filtering = x16, Omgevingsocclusie = Hoog, Mozaïekpatroon = Zeer hoog, Lange schaduwen = Aan, Schaduwen met hoge resolutie = Aan, Streaming met hoge details tijdens vliegen = Aan, Uitgebreide afstandsschaling = Maximaal, Uitgebreide schaduwafstand = Maximaal.
  • F1 2015. Instellingen voor resolutie van 1280×800: Ultrahoge kwaliteit, 0xAA, 16xAF. Instellingen voor resolutie van 1920×1080: Ultra High Quality, SMAA + TAA, 16xAF. Bij het testen wordt gebruik gemaakt van het circuit van Melbourne.
  • Huurmoordenaar: Absolutie. Instellingen voor een resolutie van 1280×800: Ultrakwaliteit, MSAA = Uit, Hoge textuurkwaliteit, 16x Textuuraniso, Ultraschaduwen, Hoge SSAO, Globale verlichting = Aan, Hoge reflecties, FXAA = Aan, Ultraniveau van detail, Hoge scherptediepte, Mozaïekpatroon = Aan, normale bloei. Instellingen voor resolutie van 1920×1080: Ultrakwaliteit, 8x MSAA, Hoge textuurkwaliteit, 16x Textuuraniso, Ultraschaduwen, Hoge SSAO, Globale verlichting = Aan, Hoge reflecties, FXAA = Aan, Ultraniveau van detail, Hoge scherptediepte, Tesselatie = Aan, normale bloei.
  • Metro: Last Light Redux. Instellingen voor een resolutie van 1280×800: DirectX 11, Hoge kwaliteit, Textuurfiltering = AF 16X, Bewegingsonscherpte = Normaal, SSAA = Uit, Tessellation = Normaal, Geavanceerd PhysX = Uit. Instellingen voor resolutie van 1920×1080: DirectX 11, zeer hoge kwaliteit, textuurfiltering = AF 16X, bewegingsonscherpte = normaal, SSAA = aan, mozaïekpatroon = normaal, geavanceerd PhysX = uit. Scène 1 wordt gebruikt voor testen.
  • Tom Clancy's Rainbow Six Siege. Instellingen voor een resolutie van 1280×800: Textuurkwaliteit = Ultra, Textuurfiltering = Anisotropisch 16x, LOD-kwaliteit = Ultra, Schaduwkwaliteit = Hoog, Schaduwkwaliteit = Zeer hoog, Reflectiekwaliteit = Hoog, Omgevingsocclusie = SSBC, Lenseffecten = Bloom + Lens Flare, inzoomen scherptediepte = aan, anti-aliasing na verwerking = uit, anti-aliasing met meerdere monsters = uit. Instellingen voor een resolutie van 1920×1080: Textuurkwaliteit = Ultra, Textuurfiltering = Anisotroop 16x, LOD-kwaliteit = Ultra, Schaduwkwaliteit = Hoog, Schaduwkwaliteit = Zeer hoog, Reflectiekwaliteit = Hoog, Omgevingsocclusie = SSBC, Lenseffecten = Bloom + Lens Flare, inzoomen scherptediepte = aan, anti-aliasing na verwerking = uit, anti-aliasing met meerdere monsters = MSAA 4x.
  • Dief. Instellingen voor een resolutie van 1280×800: Textuurkwaliteit = Zeer hoog, Schaduwkwaliteit = Zeer hoog, Scherptedieptekwaliteit = Hoog, Textuurfilterkwaliteit = 8x Anisotroop, SSAA = Uit, Schermruimtereflecties = Aan, Parallax-occlusietoewijzing = Aan, FXAA = Uit, Contactverhardende schaduwen = Aan, Mozaïekpatroon = Aan, Op afbeeldingen gebaseerde reflectie = Aan. Instellingen voor een resolutie van 1920×1080: Textuurkwaliteit = Zeer hoog, Schaduwkwaliteit = Zeer hoog, Scherptedieptekwaliteit = Hoog, Textuurfilterkwaliteit = 8x Anisotroop, SSAA = Hoog, Schermruimtereflecties = Aan, Parallax-occlusietoewijzing = Aan, FXAA = Aan, Contacthardende schaduwen = Aan, Mozaïekpatroon = Aan, Op afbeeldingen gebaseerde reflectie = Aan.
  • Totale oorlog: Attila. Instellingen voor een resolutie van 1280×800: Anti-Aliasing = Uit, Textuurresolutie = Ultra; Textuurfiltering = Anisotroop 4x, Schaduwen = Max. Kwaliteit, Water = Max. Kwaliteit, Hemel = Max. Kwaliteit, scherptediepte = Uit, deeltjeseffecten = Max. Kwaliteit, schermruimtereflecties = Max. Kwaliteit, Gras = Max. Kwaliteit, Bomen = Max. Kwaliteit, Terrein = Max. Kwaliteit, eenheidsdetails = Max. Kwaliteit, Bouwdetails = Max. Kwaliteit, Unitgrootte = Ultra, Patrijspoortkwaliteit = 3D, Onbeperkt videogeheugen = Uit, V-Sync = Uit, SSAO = Aan, Vervormingseffecten = Aan, Vignet = Uit, Proximity-fading = Aan, Bloed = Aan. Instellingen voor resolutie 1920 × 1080: Maximale kwaliteit.

Dus overklokken, zoals we het een paar jaar geleden kenden - voordat Intel begon met het uitbrengen van gespecialiseerde overklokprocessors en het blokkeren van de mogelijkheid om de werkfrequenties in andere CPU's te verhogen, keert eindelijk terug. Het is moeilijk te zeggen waar de oplossing voor het probleem van het verwijderen van de frequentievergrendeling van de basisklokgenerator voor alles eigenlijk vandaan kwam. modellenreeks Skylake. Misschien bleek de BCLK-gouverneurbescherming van Intel niet zo sterk en viel hij onder de druk van ontwikkelaars Moederbord BIOS plat. Maar het is ook mogelijk dat Intel ze zelf in de goede richting heeft geduwd, want uiteindelijk heeft iedereen gewonnen: de microprocessorgigant, de bordfabrikanten en de gebruikers.

Dankzij de nieuw geopende overklokmogelijkheden hebben kopers nieuwe argumenten om over te stappen naar het LGA1151-platform. Daar bestaat geen twijfel over dit zal tot op zekere hoogte stimuleren verkoop van nieuwe processors. Gaandeweg zullen boardfabrikanten ook nieuwe klanten ontvangen, die de verkoop van modellen zeker zullen kunnen verhogen Intel-gebaseerd Z170. Enthousiaste gebruikers worden ook niet buiten beschouwing gelaten. Zij hebben niet alleen te maken met extra ruimte voor experimenten, maar ook met de mogelijkheid om duidelijke financiële voordelen te behalen. Overkloksystemen kunnen nu immers worden samengesteld uit goedkopere componenten dan voorheen.

Maar wat deze hele situatie bijzonder pikant maakt, is hoe goed alles voor Intel is verlopen. De ontdekking van de mogelijkheid om alle, inclusief niet-overklokkende, LGA1151-processors te overklokken, zou immers gemakkelijk een daling van de vraag naar vlaggenschip Skylake-modellen kunnen veroorzaken. De verkoop van oudere Skylake met officieel goedgekeurde overklokken is echter veilig. Feit is dat er bij het overklokken van niet-K-processors plotseling een hele reeks problemen optreden, waarvan de ergste een afname van de uitvoeringssnelheid van AVX/AVX2-instructies is. Als gevolg hiervan nemen de prestaties bij het werken met een aantal programma's tijdens het overklokken niet alleen niet toe, maar nemen ze integendeel af. Dat wil zeggen dat het echte voordeel van dergelijk overklokken alleen kan worden verkregen in gevallen waarin we het uitsluitend hebben over het werken in toepassingen waarbij geen sprake is van moderne mogelijkheden processor-FPU.

Dit alles betekent dat als we het hebben over professionele activiteiten waarvoor de prestaties van CPU's die in de nominale modus werken niet voldoende zijn, je, zoals voorheen, alleen kunt kiezen uit de Core i5-6600K of Core i7-6700K. Het overklokken van niet-K-processors is eigenlijk alleen geschikt om mee te spelen - in beide betekenissen van het woord. Aan de ene kant is het experimenteren met het overklokken van dergelijke processors ongelooflijk interessant, omdat dit echt iets nieuws en enigszins verboden is. Aan de andere kant behoren games tot de toepassingen die AVX/AVX2-instructies (nog?) niet gebruiken.

Maar zelfs als je alleen geïnteresseerd bent in games en programma's waarin AVX/AVX2-extensies niet worden gebruikt en zeker niet zullen worden gebruikt, betekent de overklokmogelijkheid die is verschenen in de Skylake-generatie van neo-overklokprocessors helemaal niet dat je, figuurlijk gesproken in staat zal zijn om de tijd terug te spoelen en terug te keren naar de gouden eeuw van de Celeron 300A. In de realiteit van vandaag moet u de productiviteit verhogen goedkope processor naar het vlaggenschipniveau is onder geen enkele omstandigheid onmogelijk. Nadat Intel halverwege de jaren 2000 het assortiment consumentenprocessors in klassen had verdeeld op basis van het aantal cores en de lijst met ondersteunde technologieën, behoorde elke ‘strijd tussen klassen’ onherroepelijk tot het verleden. En dit bleek duidelijk uit de tests. De jongere Core i3-6100 kan bij overklokken alleen maar doen alsof hij de prestaties van de oorspronkelijke Core i5-modellen probeert te bereiken. En de jongere Core i5-6400 kan proberen te concurreren met de Core i5-6600K, maar kan uiteraard niet concurreren met de Core i7-6700K.

Tekenreeksverwerking

SSE4.2-instructiesets

WC-geheugen lezen

Een leesbewerking waarmee u sneller (tot 7,5 keer) kunt werken met schrijf-combinerende geheugengebieden.

Deze instructies voeren rekenkundige vergelijkingen uit tussen alle mogelijke paren velden (64 of 256 vergelijkingen!) uit beide strings gegeven door de inhoud van xmm1 en xmm2/m128. De Booleaanse resultaten van de vergelijkingen worden vervolgens verwerkt om de gewenste resultaten te produceren. Het directe argument imm8 bepaalt de grootte (byte- of unicode-strings, elk maximaal 16/8 elementen), de tekenreeks van de velden (string-elementen), het type vergelijking en de interpretatie van de resultaten.

Ze kunnen in een string (geheugengebied) zoeken naar tekens uit een bepaalde set of in bepaalde bereiken. U kunt strings (geheugengebieden) vergelijken of zoeken naar substrings.

Ze hebben allemaal invloed op de processorvlaggen: SF wordt ingesteld als xmm1 dat niet is volledige lijn, ZF - als xmm2/m128 geen volledige reeks is, CF - als het resultaat niet nul is, OF - als het minst significante bit van het resultaat niet nul is. De AF- en PF-vlaggen worden gereset.

Geavanceerde vectorextensies(AVX) is een x86-instructiesetextensie voor Intel- en AMD-microprocessors, voorgesteld door Intel in maart 2008.

AVX biedt verschillende verbeteringen, nieuwe instructies en nieuw schema coderen van machinecodes.

Verbeteringen:

De grootte van SIMD-vectorregisters neemt toe van 128 (XMM) naar 256 bits (registers YMM0 - YMM15). Bestaande 128-bits instructies zullen de lage helft van de nieuwe YMM-registers gebruiken. In de toekomst is uitbreiding naar 512 of 1024 bits mogelijk.

Niet-destructieve operaties. Met de AVX-instructieset kan elke XMM-instructie met twee operanden worden gebruikt in de vorm van drie operanden zonder de twee bronregisters te wijzigen, met een apart register voor het resultaat. In plaats van a = a + b kunt u bijvoorbeeld c = a + b gebruiken, terwijl register a ongewijzigd blijft. AVX ondersteunt geen niet-destructieve vormen van bewerkingen op reguliere registers algemeen doel, zoals EAX, maar dergelijke ondersteuning kan in toekomstige uitbreidingen worden toegevoegd.

De vereisten voor gegevensuitlijning voor SIMD-operands in het geheugen zijn versoepeld.

Het nieuwe VEX-machinecodecoderingssysteem biedt nieuw setje codevoorvoegsels die de ruimte van mogelijke machinecodes vergroten. Instructies toegevoegd met meer dan drie operanden. SIMD-vectorregisters kunnen groter zijn dan 128 bits.

Nieuwe instructies:

De AVX-specificatie beschrijft ook de PCLMUL-instructiegroep (Parallel Carry-Less Multiplication, Parallel CLMUL).

Sollicitatie:

Geschikt voor intensief floating point computing in multimedia, wetenschappelijke en financiële taken. Verhoogt de mate van parallellisme en doorvoer in echte SIMD-computing. Vermindert de druk (belasting) op registers dankzij niet-destructieve bewerkingen met drie operanden.