Egyetlen x86-os GCC módosítás +12%-os teljesítménynyereséget hoz a modern Intel és AMD CPU-knak

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

Lili Cui, az Intel szoftvermérnöke rájött, hogy nagyon is megéri növelni az általános x86 hangolásban használt hibás elágazás költségét a GCC fordítóban. Mivel a modern CPU-k mélyebb pipeline-nal dolgoznak, a hibás elágazás-előrejelzés jóval drágább, ezért ha a generikus hangolási táblában növelik ennek a költségét, az segít elkerülni a pipeline megakadást a félrejósolt elágazások miatt. Ez azoknak fontos, akik csak az általános x86/x86_64 hangolást használják, és nem fordítanak konkrét CPU-ra, például -march=native opcióval.

Mindössze az elágazás-hibapredikció skáláját kellett háromszorosára emelni, és így Granite Rapids esetén 12,7%-os, AMD Zen 5 esetén pedig 12,1%-os teljesítménynövekedést mértek. Ez a SPEC CPU 2017 544.nab_r Nucleic Acid Builder (NAB) tesztjére vonatkozik. Más teljesítményadatot nem osztottak meg a Git commit/patch kapcsán, de már önmagában az is nagyon vonzó, hogy legalább egy SPEC CPU tesztben 12%-os nyereséget hoz – főleg úgy, hogy mindössze egyetlen kódsort módosítottak. Érdekes lesz látni, hogyan hat ez más feladatokra.

Ezt a módosítást összefésülték a GCC Git ágba, és benne lesz a jövőre érkező GCC 17 stabil kiadásban.