Na początku tego miesiąca zauważyłem, że zmiana harmonogramu dla Linuksa została umieszczona w kolejce do harmonogramu/rdzenia przed cyklem Linuksa 5.18, który jest ma pomóc procesorom AMD EPYC i innym wybranym procesorom Zen w różnych obciążeniach. Zmiana jest w toku od kilku miesięcy i dotyczy dostosowania dozwolonego nierównowagi NUMA w przypadku wielu LLC. Przeprowadziłem teraz kilka własnych testów porównawczych na sprzęcie EPYC i rzeczywiście jeszcze bardziej podkręcam wydajność jądra Linuksa.
Łatka mówi o niezłym wzroście wydajności… Teraz testuję po mojej stronie.
Ta zmiana w kolejce do”sched/core”przed przyszłomiesięcznym oknem scalania Linuksa 5.18 nie jest zmianą specyficzną dla AMD, ale taką, która akurat przynosi korzyści procesorom Zen ze względu na ich układ pamięci podręcznej. Mel Gorman, który jest autorem łatki, wyjaśnił: „[Zmiana harmonogramu jądra od 2020 r.] pozwoliła na nierównowagę między węzłami NUMA, tak że komunikowanie się zadań nie zostałoby rozerwane przez moduł równoważenia obciążenia. Działa to dobrze, gdy istnieje relacja 1:1 między LLC i węzła, ale może być nieoptymalne dla wielu LLC, jeśli niezależne zadania przedwcześnie wykorzystują procesory współdzielące pamięć podręczną.Zen* ma wiele LLC na węzeł z lokalnymi kanałami pamięci, a ze względu na dozwoloną nierównowagę znacznie trudniej jest dostroić niektóre obciążenia, aby działały optymalnie niż jest sprzęt, który ma 1 LLC na węzeł. Ta poprawka pozwala na istnienie braku równowagi do punktu, w którym LLC powinny być zrównoważone między węzłami.”
Może potwierdzić duży wzrost wydajności w serii EPYC 7003 w wielu różnych obciążeń roboczych z najnowszymi zmianami harmonogramu/rdzenia TIP.
Własne testy porównawcze Mel podczas pracy nad tą poprawką przyniosły poprawę do 272% w teście pamięci Stream, a także inne znaczące korzyści, takie jak 10% lepsza wydajność w Coremarku i max minimalnie do 17%, wydajność SPECjbb Java wzrosła aż o 18%, żenująco równoległy benchmark NPB był o około 17% szybszy i inne godne uwagi wygrane. Biorąc pod uwagę zgłoszone bardzo obiecujące wyniki, przeprowadziłem kilka własnych testów lokalnie, a liczby, które widzę, są równie ekscytujące — zwłaszcza w przypadku tej zmiany harmonogramu jądra Linuksa, która zawiera tylko około 50 linijek nowego kodu!
Najpierw niektóre testy porównawcze przeprowadzone z serwerem AMD EPYC 75F3 2P zbudowanym na płycie głównej ASRockRack ROME2D16-2T z systemem Ubuntu 21.10. Wydajność została porównana między Linuxem 5.17 Git, a następnie sched/core Git z poprawką „sched/fair: Dostosuj dozwoloną nierównowagę NUMA, gdy SD_NUMA obejmuje wiele LLCs”. Użyto tego samego Kconfig jądra między obydwoma jądrami.