Software testen voor Intel-processors met VTune

Noud van Kruysbergen
0

Inhoudsopgave

Welke programma’s op je pc maken er eigenlijk gebruik van de moderne processorfuncties en meerdere cpu-kernen? Met de ontwikkeltool VTune Amplifier kun je zonder enige programmeerervaring makkelijk zelf software op je pc testen. Zo kun je ook inschatten of overstappen op andere hardware zinvol is.

Populaire processors als de AMD Ryzen en Intel Core i halen hun maximale rekenkracht alleen als de software de vector-units van de cpu-­kernen gebruikt. Om die te kunnen gebruiken, hebben de processorfabrikanten de x86-instructieset uitgebreid met de Advanced Vector Extension (AVE). Die doorontwikkeling van de 128-bit brede SSE­instructies (Streaming SIMD Extensions) versnelt het verwerken van grote datahoeveelheden zoals bij het renderen van 3D-scènes, bij wetenschappelijke berekeningen zoals het zoeken naar priemgetallen 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 daaropvolgende processors kunnen 256 bit brede instructies in een klokcyclus uitvoeren. Bij Intel Core i-4000 (Haswell) en AMD A-9000 (Carrizo) volgde een paar jaar later AVX2. De databreedte is daarbij onveranderd gebleven, maar naast de floatingpoint-­operaties zijn nu ook de meeste integer-­instructies 256-bit en er werden ook FMA-operaties (Fused Multiply-­Add) ingevoerd.

Met AVX-512 verdubbelde de performance in vergelijking met AVX2. Die units zitten tot nu toe echter alleen in de high-end desktopprocessors Core X (Skylake X), de serverchips Xeon SP (Skylake-SP en Cascade Lake-SP) en de nagelnieuwe mobiele ­processors Core i-10000 (Ice Lake U) met 10nm-­techniek.

Skylake-microarchitectuur

De architectuur van Kaby Lake (Core i-7000) en Coffee Lake (Core i-8000/9000) verschilt slechts marginaal. Iedere kern heeft twee AVX2-units.

Intel cpu processor Skylake architectuur opbouw AVX

VTune Amplifier gebruiken

In de meeste desktop-pc’s en notebooks zitten dus processors die minstens AVX ondersteunen. In de praktijk gebruikt echter slechts een klein deel van de programma’s die instructies. Met VTune Amplifier kun je achterhalen welke software die vectorinstructies gebruikt en zo ja, voor welk deel. Intel stelt die analysetool beschikbaar voor softwareontwikkelaars om software testen te vergemakkelijken. Met VTune Amplifier kunnen ze bottlenecks in hun software makkelijker vinden.

De tool meet bovendien de geheugendoorvoersnelheid van de onderzochte 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ïnstalleerd op de systeemschijf ongeveer 1,4 GB in beslag.

Voor de echt grote logbestanden, die tijdens het analyseren worden aangemaakt en blijven groeien, moet je wel voldoende ruimte inplannen. Afhankelijk van wat je voor software testen gaat, kan de analysetool per seconde bijvoorbeeld 1 tot 15 MB aan data wegschrijven.

VTune Amplifier gaat uit van een processor van Intel. Je kunt de tool bij een AMD-cpu wel installeren, maar dan zal hij maar beperkt werken. De voor dit artikel relevante functie HPC Performance Characterization is bij de Ryzen-processors niet beschikbaar, dus hebben we onze metingen gedaan op een van onze pc-bouwvoorstellen uit c’t 3 van dit jaar met een Core i-9600K.

Software testen

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

VTune Amplifier biedt onder het punt ‘HOW’ de mogelijkheid verschillende accenten voor de ana­lyse in te stellen. Daarbij kun je bijvoorbeeld onderzoeken hoe goed bepaalde software van multi-threading profiteert of hoe sterk de geheugeninterface dan wel de GPU belast wordt. We hebben HPC Performance Characterization gebruikt, wat er onder meer uitsluitsel over geeft welke moderne instructiesetuitbreidingen zoals AVX en AVX2 gebruikt worden.

Je hebt twee verschillende mogelijkheden om het te onderzoeken programma te selecteren: aan de ene kant kun je bij ‘WHAT’ met behulp van de optie ‘Launch Application’ aangeven welke applicatie gestart moet worden, en als alternatief kun je al draaiende programma’s monitoren door het opgeven van de proces-ID (PID). Dat identificatienummer 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 automatisch als het onderzochte programma afgesloten wordt of de vooraf ingestelde logbestandslimiet van 1000 MB wordt overschreden. Je kunt het loggen natuurlijk ook handmatig stoppen in VTune Amplifier.

software testen Intel cpu VTune Amplifier AVX parallel

VTune Amplifier onderzoekt niet alleen de gebruikte instructiesetuitbreidingen, maar laat ook zien hoe een bepaald programma de aanwezige cpu-kernen belast.

Weinig AVX, des te meer SSE

Het analyseren gebeurt vervolgens automatisch. In het overzicht levert VTune Amplifier de belangrijkste kengetallen zoals de logduur, de behaalde performance in GFLOP’s bij single- en double-precision floatingpoint-operaties, cpu-belasting, geheugensnelheid en een overzicht van welke vector­eenheden van de cpu zoals SSE, SSE2 en AVX daadwerkelijk gebuikt werden. Op het tabblad ‘Bottom-up’ kom je dan bij de details: daar laat VTune Amplifier die informatie dan voor elke afzonderlijke functieaanroep zien.

Bij sommige programma’s hebben we dat als voorbeeld onderzocht. Ideale voorbeelden daarvan zijn de hoog geoptimaliseerde benchmark- en belastingprogramma’s als Flops en Prime95, die onder volledige belasting bijna tot aan de 100 procent AVX2- en FMA-instructies gebruiken. Bij rendering-­programma’s als Blender 2.79b, Cinema 4D en de daarvan afgeleide benchmark Cinebench R20 bedraagt het AVX-aandeel ongeveer 20 procent. De video­converter Handbrake, de fotosoftware 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 instructiesetuitbreidingen als SSE en SSE2. Shooters zoals Playerunknown’s Battlegrounds (PUBG) en de videoplayers ‘Films en tv’ en VLC beperken zich daarbij tot SSE2.

Meer (Engelstalige) documentatie, codevoorbeelden en een forum vind je via Intels website voor VTune Profiler (de nieuwe naam en versie van VTune Amplifier).

Bij software voor desktopcomputers is het percentage van programma’s dat hoog geoptimaliseerde AVX-code gebruikt nog erg te overzien. Het wordt nog voornamelijk gebruikt door veeleisende professionele applicaties als rendering of HPC-taken, die bovendien goed te parallelliseren zijn en profiteren van veel kernen.

De software-ontwikkelaars verdienen echter ook enig krediet: de meeste office-applicaties verwerken bijvoorbeeld in verhouding maar weinig datahoeveelheden. Dan is de extra moeite die gedaan moet worden om met AVX daarbij hier en daar een paar milliseconden op de rekentijd te winnen niet lonend. Bovendien is het een doel van ontwikkelaars 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 uitgeschakeld, ook al zijn de rekenunits daarvoor wel aanwezig. Met VTune Amplifier kun je zelf echter binnen een paar minuten uitproberen hoe het er voorstaat met de door jou gebruikte programma’s en games.

(Christian Hirsch en Noud van Kruysbergen, c’t magazine)

Lees uitgebreide achtergrondinfo op je gemak in c't jul-aug/2020

Deel dit artikel

Lees ook

Thuiswerken op een Chromebook: oplossingen en tips

Thuiswerken zonder Windows-pc? Dat kan op een Chromebook vaak prima. De volgende tips kunnen het werken nog vergemakkelijken.

Software updaten met Topgrade: alle software ineens

Topgrade doet updates voor Linux, macOS en Windows in één keer. Zo kun je makkelijker de software updaten zonder verschillende update­-programma's han...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er