Universitaire rekensoftware werkt 20 tot 400% sneller op AMD Ryzen dankzij workaround

28 reacties

Hoewel AMD's Ryzen-cpu's op bepaalde vlakken al vanaf de eerste generatie uitstekend hun werk deden, waren ze berucht vanwege hun traagheid in een veelgebruikt wiskundig programma, genaamd 'MATLAB'. Dat komt doordat het programma de sse4-, avx1- en avx2-instructiesets niet inzet bij gebruik van een AMD-cpu met de Zen-architectuur. Een Redditgebruiker genaamd Nedflanders1976 heeft een manier gevonden om het programma dit wél te laten gebruiken.

Het rekenprogramma maakt namelijk gebruik van Intels Math Kernel Library, kortweg MKL. Het is bekend dat dit erg traag is op de Zen-architectuur door gebrek aan optimalisaties. Als het programma ziet dat er een non-Intel-processor gebruikt wordt, dan schakelt het automatisch de gebruikte instructiesets uit en wordt de sse-instructieset gebruikt. De nieuwe Zen-cpu's van AMD hebben volledige ondersteuning voor de instructiesets, en moeten er dus in theorie gewoon gebruik van kunnen maken.

De oplossing ligt in het forceren van het gebruik van de instructiesets. Door (in Windows) een .bat-bestand te maken met de volgende informatie, zal een compatibele AMD-processor de instructies gewoon kunnen gebruik in Matlab:

@echo off set MKL_DEBUG_CPU_TYPE=5 matlab.exe

Hij legt ook uit hoe hetzelfde te bereiken is op Linux, en hoe de aanpassing permanent te maken is. Een Ryzen 5 2600X scoorde door het aanzetten van de instructiesets tussen de 17% en 258% beter, en volgens de discussie op Reddit is het verschil voor Ryzen 3000-processors met de Zen 2-architectuur nog groter. Bij die modellen is het opwaarts potentieel zelfs tot 400%.

Bron: Nedflanders1976 (Reddit)

« Vorig bericht Volgend bericht »
0
*