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