MATLAB faworyzuje procesory Intel - zobacz jak przyspieszyć aplikację na procesorach AMD
Okazuje się, że MATLAB nie jest zoptymalizowany pod nowe procesory AMD. W prosty sposób można przyspieszyć jego działanie 2- lub nawet 3-krotnie.
MATLAB to środowisko programistyczne do wykonywania obliczeń naukowych i inżynierskich, oraz do tworzenia symulacji komputerowych. Z aplikacji korzystają nie tylko firmy zajmujące się badaniami, ale też uniwersytety i instytuty badawcze. Do tej pory nie działała ona jednak najlepiej z procesorami AMD.
Dlaczego MATLAB działa lepiej na procesorach Intel?
MATLAB przy niektórych operacjach korzysta z bibliotek Intel MKL (Math Kernel Library), które - jak łatwo można się domyślić - zostały zoptymalizowane pod procesory Intel.
Programiści poszli tutaj na „łatwiznę” i zaprogramowali aplikację do wykrywania producenta układu znajdującego się w komputerze – w przypadku modeli Intel pozwala ona korzystać z zaawansowanych instrukcji SSE3, SSE4, AVX i AVX2, natomiast w przypadku modeli AMD automatycznie przełącza się na starszy, mniej efektywny zestaw instrukcji SSE.
Jak poprawić szybkość działania MATLAB na procesorach AMD?
Użytkownik serwisu Reddit o pseudonimie Nedflanders1976 zauważył, że jest na to sposób i można zmusić aplikację do korzystania z bardziej zaawansowanego zestawu instrukcji (tym bardziej, że nowe procesory AMD już oferują nowoczesne instrukcje SSE3, SSE4, AVX i AVX2). W tym celu przygotował prosty plik wsadowy:
@echo off set MKL_DEBUG_CPU_TYPE=5 call "%MKLROOT%\bin\mklvars.bat" MKL_DEBUG_CPU_TYPE=5 matlab.exe |
Wymuszenie korzystania z nowszych instrukcji można też ustawić na stałe poprzez zarządzanie zmiennymi środowiskowymi w systemie operacyjnym - wystarczy tutaj dopisać parametr „MKL_DEBUG_CPU_TYPE=5”. Zaletą takiego rozwiązania jest fakt, iż będzie ono dotyczyć wszystkich otwartych instancji programu (a nie tylko otworzonych poprzez plik wsadowy).
Warto jednak podkreślić, że metoda sprawdzi się tylko w przypadku procesorów Ryzen i Ryzen Threadripper. Nie będzie ona działać na procesorach Intel i starszych modelach AMD.
MATLAB - wzrost wydajności na procesorach AMD
Według testów użytkownika Nedflanders1976, metoda rzeczywiście poprawia działanie aplikacji na nowych procesorach AMD. Poparł to swoimi testami wydajności na 6-rdzeniowym/12-wątkowym procesorze AMD Ryzen 5 2600X.
W zależności od zastosowania, wzrost wydajności wynosi od 17 do 258% (zwykle różnica jest mniej więcej 2-krotna). Jeżeli korzystacie z MATLABA i macie procesor AMD, warto wypróbować metodę od Nedflanders1976.
Źródło: Reddit @ Nedflanders1976
Warto również zobaczyć:
- AMD Ryzen 9 3950X w naszym rankingu CPU
- Intel TAA - poprawka bezpieczeństwa obniża wydajność procesorów
- Ekstremalne podkręcanie procesora Ryzen 9 3950X - uzyskano nowy rekord taktowania
Komentarze
23O tym że Microsoft wziął wtedy łapówkę od intela i na drodze oszustwa, po cichu uwalał wydajność wyszło na jaw około ~2005 roku, rykoszetem przy okazji innego śledztwa na tle korupcyjnym prowadzonym przeciw Microsoft-owi.
Swoją drogą, jaką naprawdę moc mają CPU AMD? Ile by przyśpieszyły, gdyby soft był optymalizowany pod AMD, a nie intela?
A poza tym to antymonopole coś chyba mocno przespali.