Procesory

MATLAB faworyzuje procesory Intel - zobacz jak przyspieszyć aplikację na procesorach AMD

opublikowano przez Paweł Maziarz w dniu 2019-11-18

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

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

marketplace

Komentarze

23
Zaloguj się, żeby skomentować
avatar
Dodaj
Komentowanie dostępne jest tylko dla zarejestrowanych użytkowników serwisu.
  • avatar
    To pokazuje tylko jak wygląda optymalizacja programów i zapewne gier dla Intela i AMD. Pokazuje to też jaki potencjał drzemie w procesorach AMD.
    Zaloguj się
    22
  • avatar
    Jakbym czytał o Windows98 który w momencie wykrycia procesora innego niż intelowski, kompletnie ignorował nowatorskie wówczas instrukcje MMX co skutkowało sztucznym zduszeniem wydajności na układach AMD i VIA, zwłaszcza w obsłudze multimediów.
    O 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.
    Zaloguj się
    17
  • avatar
    To jest dopiero przekręt! Niestety nikt za to nie pójdzie siedzieć. Bo za duża kasa za tym stoi. Jakby urzędy antymonopolowe działały, to za takie coś, posypały by się miliardowe kary.
    Swoją drogą, jaką naprawdę moc mają CPU AMD? Ile by przyśpieszyły, gdyby soft był optymalizowany pod AMD, a nie intela?
    Zaloguj się
    14
  • avatar
    Déjà vu?

    A poza tym to antymonopole coś chyba mocno przespali.
  • avatar
    Taka ciekawostka. Jak na moim wydziale zorganizowano spotkanie z blisko 100 firmami z branży IT z którymi wydział współpracuje, to tylko jedna wskazała Matlaba jako dedykowano środowisko pracy, a 4 wyraziły zainteresowanie ewentualnym wdrożeniem Matlaba w swojej firmie. W ogóle padały sugestie by nie uczyć Matlaba ze względu na zaporową politykę cenową i licencyjną dystrybutora oprogramowania.
  • avatar
    Spoko, tylko ile osób wykorzystuje Matlaba w pracy. Już nie mówiąc o tak szczególnych warunakch, gdzie szybkość działania się liczy. Oczywiście optymalizacja każdego programu jest ważna.
    Zaloguj się
  • avatar
    i dlatego rozgarnięty człowiek kupi intela, bo nie wie co go jeszcze spotka. Połowa 2018 roku to dopiero sprzętowy emulator dla androida pod AMD. Deweloper wciąż patrzy na procentowy udział procesorów w rynku
    Zaloguj się
    -4