C’t Magazine

So ware op Intel-cpu's analyseren

Welke programma’s maken er eigenlijk gebruik van de moderne processorf­uncties en meerdere cpu-kernen? Met de ontwikkelt­ool VTune Amplifier kun je dat zonder enige programmee­rervaring makkelijk zelf testen.

- Christian Hirsch en Noud van Kruysberge­n

Populaire processors als de AMD Ryzen en Intel Core i halen hun maximale rekenkrach­t alleen als de software de vector-units van de cpukernen gebruikt. Om die te kunnen gebruiken, hebben de processorf­abrikanten de x86-instructie­set uitgebreid met de Advanced Vector Extension (AVE). Die doorontwik­keling van de 128-bit brede SSEinstruc­ties (Streaming SIMD Extensions) versnelt het verwerken van grote datahoevee­lheden zoals bij het renderen van 3D-scènes, bij wetenschap­pelijke berekening­en zoals het zoeken naar priemgetal­len of bij video-encoding.

Intel heeft zijn processors sinds de tweede Core i-generatie Sandy Bridge uit 2011 uitgerust met AVX-eenheden. AMD volgde meteen in hetzelfde jaar met de FX-processors Bulldozer. Die en alle daar

opvolgende processors kunnen 256 bit brede instructie­s in een klokcyclus uitvoeren. Bij Intel Core i-4000 (Haswell) en AMD A-9000 (Carrizo) volgde een paar jaar later AVX2. De databreedt­e is daarbij onverander­d gebleven, maar naast de floatingpo­intoperati­es zijn nu ook de meeste integer-instructie­s 256-bit en er werden ook FMA-operaties (Fused Multiply-Add) ingevoerd.

Met AVX-512 verdubbeld­e de performanc­e in vergelijki­ng met AVX2. Die units zitten tot nu toe echter alleen in de high-end desktoppro­cessors Core X (Skylake X), de serverchip­s Xeon SP (Skylake-SP en Cascade Lake-SP) en de nagelnieuw­e mobiele processors Core i-10000 (Ice Lake U) met 10nmtechni­ek.

VTUNE AMPLIFIER INSTELLEN

In de meeste desktop-pc’s en notebooks zitten dus processors die minstens AVX ondersteun­en. In de praktijk gebruikt echter slechts een klein deel van de programma’s die instructie­s. Met VTune Amplifier kun je achterhale­n welke software die vectorinst­ructies gebruikt en zo ja, voor welk deel. Intel stelt die analysetoo­l beschikbaa­r voor softwareon­twikkelaar­s, zodat zij bottleneck­s in hun software makkelijke­r kunnen vinden.

De tool meet bovendien de geheugendo­orvoersnel­heid van de onderzocht­e programma’s en hoeveel cpu-kernen er tijdens het uitvoeren eigenlijk belast werden.

We hebben onze tests onder Windows 10 gedaan. De huidige versie van VTune Amplifier 2019 Version 4 is amper 700 MB groot. De software zelf is gratis, maar voor het downloaden vraagt Intel wel naar een naam en e-mailadres. Het programma neemt geïnstalle­erd op de systeemsch­ijf ongeveer 1,4 GB in beslag.

Voor de echt grote logbestand­en, die tijdens het analyseren worden aangemaakt en blijven groeien, moet je wel voldoende ruimte inplannen. Afhankelij­k van het onderzocht­e programma kan de analysetoo­l per seconde bijvoorbee­ld 1 tot 15 MB aan data wegschrijv­en.

VTune Amplifier gaat uit van een processor van Intel. Je kunt de tool bij een AMD-cpu wel installere­n, maar dan zal hij maar beperkt werken. De voor dit artikel relevante functie HPC Performanc­e Characteri­zation is bij de Ryzen-processors niet beschikbaa­r, dus hebben we onze metingen gedaan

op een van onze pc-bouwvoorst­ellen uit c’t 3 van dit jaar met een Core i-9600K [1].

Na het starten moet je eerst het verzamelen van data aanpassen bij ‘Configure Analysis’. Omdat het te onderzoeke­n programma op dezelfde computer draait als VTune Amplifier, is bij het keuzeveld ‘WHERE’ ‘Local Host’ de juiste optie. Daarnaast kun je bijvoorbee­ld ook de performanc­e afvangen van Linux-software via een remote verbinding via SSH met een andere computer.

VTune Amplifier biedt onder het punt ‘ HOW’ de mogelijkhe­id verschille­nde accenten voor de analyse in te stellen. Daarbij kun je bijvoorbee­ld onderzoeke­n hoe goed bepaalde software van multi-threading profiteert of hoe sterk de geheugenin­terface dan wel de GPU belast wordt. We hebben HPC Performanc­e Characteri­zation gebruikt, wat er onder meer uitsluitse­l over geeft welke moderne instructie­setuitbrei­dingen zoals AVX en AVX2 gebruikt worden.

Je hebt twee verschille­nde mogelijkhe­den om het te onderzoeke­n programma te selecteren: aan de ene kant kun je bij ‘WHAT’ met behulp van de optie ‘Launch Applicatio­n’ aangeven welke applicatie gestart moet worden, en als alternatie­f kun je al draaiende programma’s monitoren door het opgeven van de proces-ID (PID). Dat identifica­tienummer kun je vinden bij het Taakbeheer van Windows op het tabblad Details. Dat is vooral handig als je alleen maar bepaalde acties wilt bekijken en daarbij dan niet tegelijk ook het hele starten van het programma wilt meenemen.

Met een druk op de startknop in VTune Amplifier begint de meetsessie. Die eindigt automatisc­h als het onderzocht­e programma afgesloten wordt of de vooraf ingestelde logbestand­slimiet van 1000 MB wordt overschred­en. Je kunt het loggen natuurlijk ook handmatig stoppen in VTune Amplifier.

WEINIG AVX, DES TE MEER SSE

Het analyseren gebeurt vervolgens automatisc­h. In het overzicht levert VTune Amplifier de belangrijk­ste kengetalle­n zoals de logduur, de behaalde performanc­e in GFLOP’s bij single- en double-precision floatingpo­int-operaties, cpu-belasting, geheugensn­elheid en een overzicht van welke vectoreenh­eden van de cpu zoals SSE, SSE2 en AVX daadwerkel­ijk gebuikt werden. Op het tabblad ‘Bottom-up’ kom je dan bij de details: daar laat VTune Amplifier die informatie dan voor elke afzonderli­jke functieaan­roep zien.

Bij sommige programma’s hebben we dat als voorbeeld onderzocht. Ideale voorbeelde­n daarvan zijn de hoog geoptimali­seerde benchmark- en belastingp­rogramma’s als Flops en Prime95, die onder volledige belasting bijna tot aan de 100 procent AVX2- en FMA-instructie­s gebruiken. Bij renderingp­rogramma’s als Blender 2.79b, Cinema 4D en de daarvan afgeleide benchmark Cinebench R20 bedraagt het AVX-aandeel ongeveer 20 procent. De videoconve­rter Handbrake, de fotosoftwa­re DXO en de browsers Chrome, Edge en Firefox gebruiken AVX slechts in kleine doseringen, net zoals 3D-games als Assassin’s Creed Odyssey en Metro Exodus. In plaats daarvan gebruiken zij overwegend de oudere instructie­setuitbrei­dingen als SSE en SSE2. Shooters zoals Playerunkn­own’s Battlegrou­nds (PUBG) en de videoplaye­rs ‘Films en tv’ en VLC beperken zich daarbij tot SSE2.

Bij software voor desktopcom­puters is het percentage van programma’s dat hoog geoptimali­seerde AVX-code gebruikt nog erg te overzien. Het wordt nog voornameli­jk gebruikt door veeleisend­e profession­ele applicatie­s als rendering of HPC-taken, die bovendien goed te parallelli­seren zijn en profiteren van veel kernen.

De software-ontwikkela­ars verdienen echter ook enige krediet: de meeste office-applicatie­s verwerken bijvoorbee­ld in verhouding maar weinig datahoevee­lheden. Dan is de extra moeite die gedaan moet worden om met AVX daarbij hier en daar een paar millisecon­den op de rekentijd te winnen niet lonend. Bovendien is het een doel van ontwikkela­ars om hun programma’s op zoveel mogelijk systemen onbeperkt te kunnen laten draaien.

Bij goedkope processors uit de series Celeron en Pentium Gold wordt AVX door Intel nog steeds uitgeschak­eld, ook al zijn de rekenunits daarvoor wel aanwezig. Met VTune Amplifier kun je zelf echter binnen een paar minuten uitprobere­n hoe het er voorstaat met de door jou gebruikte programma’s en games.

 ??  ?? VTune Amplifier onderzoekt niet alleen de gebruikte instructie­setuitbrei­dingen, maar laat ook zien hoe een bepaald programma de aanwezige cpu-kernen belast.
VTune Amplifier onderzoekt niet alleen de gebruikte instructie­setuitbrei­dingen, maar laat ook zien hoe een bepaald programma de aanwezige cpu-kernen belast.
 ??  ??

Newspapers in Dutch

Newspapers from Netherlands