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.

Image
Paweł Maziarz

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
MATLAB - zarządzanie zmiennymi środowiskowymi systemu

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.

MATLAB - wzrost wydajności na procesorze AMD Ryzen
MATLAB - wzrost wydajności na procesorze AMD Ryzen

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ć:

Wybrane dla Ciebie
ZANIM WYJDZIESZ... NIE PRZEGAP TEGO, CO CZYTAJĄ INNI!