Aiemmin tässä kuussa huomasin Linuxin ajoittajan muutoksen jonossa sched/core-jaksoon ennen kuin Linux on 5.18. odotetaan auttavan AMD EPYC-prosessoreja ja muita valittuja Zen-prosessoreja erilaisissa työkuormissa. Muutos on työskennellyt useita kuukausia, ja se koskee sallitun NUMA-epätasapainon säätämistä useiden LLC:iden kattaessa. Olen nyt suorittanut joitain omia benchmark-testejäni EPYC-laitteistolle, ja se todellakin parantaa Linux-ytimen suorituskykyä entisestään.
Korjaustiedosto kertoo hienoista suorituskyvyn lisäyksistä… Nyt testaan puolellani..
Tämä muutos, joka on jonossa”sched/core”ennen ensi kuun Linux 5.18-yhdistämisikkunaa, ei ole AMD-kohtainen muutos, vaan muutos, josta on hyötyä Zen-prosessoreille niiden välimuistin asettelun vuoksi. Korjauksen kirjoittanut Mel Gorman selitti:”[Ytimen ajoittimen muutos vuodesta 2020] mahdollisti epätasapainon NUMA-solmujen välillä siten, että kommunikaatiotehtävät eivät katkenneet kuormantasaajan toimesta. Tämä toimii hyvin, kun LLC:n välillä on 1:1-suhde. ja solmu, mutta se voi olla epäoptimaalinen useille LLC:ille, jos itsenäiset tehtävät käyttävät ennenaikaisesti prosessoreja, jotka jakavat välimuistin. Zen*:ssa on useita LLC:itä solmua kohden paikallisten muistikanavien kanssa, ja sallitun epätasapainon vuoksi on paljon vaikeampaa virittää joitakin työkuormia toimimaan optimaalisesti kuin se on päällä laitteisto, jossa on 1 LLC solmua kohden. Tämä korjaustiedosto mahdollistaa epätasapainon olemassaolon pisteeseen, jossa LLC:t pitäisi tasapainottaa solmujen välillä.”
Voi vahvistaa EPYC 7003-sarjan suorituskyvyn suuren parantumisen useissa eri vaihtoehdoissa työkuormat uusimmilla TIP-aikataulu-/ydinmuutoksilla.
Melin omat vertailuarvot tämän korjaustiedoston parissa paransivat Stream-muistin vertailuarvoa jopa 272 % ja myös muita merkittäviä voittoja, kuten 10 % parempi suorituskyky Coremarkissa ja max enintään 17 %, SPECjbb Java-suorituskyky kasvoi jopa 18 %, NPB:n kiusallisen rinnakkainen vertailuindeksi oli noin 17 % nopeampi ja muita merkittäviä voittoja. Raportoitujen erittäin lupaavien tulosten vuoksi olen suorittanut joitain omia testejäni paikallisesti, ja näkemäni luvut ovat yhtä jännittäviä – varsinkin tässä Linux-ytimen ajastimen muutoksessa, joka on vain noin 50 riviä uutta koodia!
Ensinnäkin on joitain vertailuarvoja, joita suoritettiin AMD EPYC 75F3 2P-palvelimella, joka on rakennettu ASRockRack ROME2D16-2T-emolevyn ympärille ja jossa on Ubuntu 21.10. Suorituskykyä verrattiin Linux 5.17 Gitin ja sitten sched/core Gitin välillä, jolla on”sched/fair: Säädä sallittua NUMA-epätasapainoa, kun SD_NUMA kattaa useita LLC:itä”. Molempien ytimien välillä käytettiin samaa ydintä Kconfig.