Üks rida muutus GCC-s tõi kaasa 12% kiirus suurenemise ühes testis ja 14% aeglustumise teises.

Intel'i insener tegi GCC kompilaatorite kogumisse ühe rida muutuse, mis suurendab vale haru prognoosi kaalu x86 protsessoritel. Muutus võimaldas suurendada genereeritud koodi jõudlust testis 544.nab_r 12,7% ulatuses, kui optimeerimised „-O2 -mtune=graniterapids“ on sisse lülitatud Intel Granite Rapids/Xeon 6 protsessorile ja 12,1% ulatuses, kui optimeerimised „-O2 -mtune=znver5“ on sisse lülitatud AMD Zen5 protsessorile.

Kaalu muutmine «COSTS_N_INSNS (2)» -lt «COSTS_N_INSNS (2) + 3» suurendab prognoosi vea significance 2-lt 5 tingimuslikule käsule, mis peegeldab paremini kaasaegsete protsessorite käsu torustike (pipeline) omadusi, kus vale haru prognoosimist on kallim. Kaalu muutmine toob kaasa GCC väljendite like «if» ümbervormimise tingimuslike käskudena, nagu CMOV, välistades vale haru prognoosimise tõttu torustiku seisundi lähtestamise vajadusest tingitud peatused. Varasemalt oli kaalu «COSTS_N_INSNS (2) + 3» näidatud GCC-s ainult Intel Ice Lake ja Alder Lake protsessorite jaoks, kuid nüüd on see seadistatud x86 protsessorite üldisele (generic) profiilile.

On tähelepanuväärne, et pärast patši vastuvõtmist ilmus regressioon, mis põhjustas testimist „Hint“ aeglustumise 30% võrra ühe GCC arendaja masinas, kui kompileerimise valikuteks olid «-march=generic -mtune=znver5» ja «-march=generic -mtune=graniterapids». SPEC2017 ja SPEC2026 testide jõudlus jäi pärast muudatust samale tasemele. Regressiooni olemasolu on kinnitanud algse commit'i autor, kelle andmetel aeglustus Hint test 14% võrra, kui kompileerimise valikuteks olid «-O2 -mtune=generic -march=x86-64-v3».

Aegluse põhjuseks on see, et Hint testikoodis on vaid üks tingimuslik konstruktsioon, mille GCC ümber muudab CMOV-põhiseks esituseks. See konstruktsioon toimub piisavalt harva (3% tõenäosus) ja selle optimeerimine ei mõjuta jõudlust. Samas muutus koodi genereerimise režiim põhjustas kõrvalmõju, mis aeglustas sagedamini toimuva koodi täitmist.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster