Linuxi kernelis on optimeeritud CRC32C algoritmi teostus

Linux 6.13 tulevase tuuma haru koostisse on pakutud patch, mis sisaldab ĂŒmber tehtud CRC32C kontrollsummade leidmise algoritmi. CRC32C koodi maht on vĂ€henenud umbes 10 korda (4546 baitilt 418 baidini). Retpoline kaitse mittetoimimise korral on uusi teostuse kasutamisega saavutatud jĂ”udluse tĂ”us, mis ulatub 11,8% -ni AMD Zen 2 protsessoritel, 6,4% -ni Intel Emerald Rapids'il ja 4,8% -ni Intel Haswell'il. Kui retpoline on sisse lĂŒlitatud, on jĂ”udluse tĂ”us mĂ€rgatavam ja ulatub 66,8% -ni Intel Emerald Rapids'i sĂŒsteemides, 35,0% -ni Intel Haswell'il ja 29,5% -ni AMD Zen 2-l. retpoline lubatud | 512 | 833 | 1024 | 2000 | 3173 | 4096 | ———————+——-+——-+——-+—— +——-+——-+ Intel Haswell | 35,0% | 20,7% | 17,8% | 9,7% | -0,2% | 4,4% | Intel Emerald Rapids | 66,8% | 45,2% | 36,3% | 19,3% | 0,0% | 5,4% | AMD Zen 2 | 29,5% | 17,2% | 13,5% | 8,6% | -0,5% | 2,8% | retpoline keelatud: | 512 | 833 | 1024 | 2000 | 3173 | 4096 | ———————+——-+——-+——-+—— +——-+——-+ Intel Haswell | 3,3% | 4,8% | 4,5% | 0,9% | -2,9% | 0,3% | Intel Emerald Rapids | 7,5% | 6,4% | 5,2% | 2,3% | -0,0% | 0,6% | AMD Zen 2 | 11,8% | 1,4% | 0,2% | 1,3% | -0,9% | -0,2% |

CRC32C algne variant sisaldas 128 lahtist tsĂŒklit (unroll), mis viis ĂŒsna suure koodini. Kuna kaasaegsed protsessorid vĂ€liste kĂ€skude tĂ€itmise toetusega (out of order) suudavad kĂ€ske paralleelselt tĂ€ita, osutus selline tsĂŒklite hĂŒppamise kĂ€su optimeerimine liigseks ja viis vaid liialt suure koodini. Uues variandis on 128 korduse asemel jĂ€etud sisse vaid 4, mis ei vĂ€hendanud mitte ainult koodi mahtu, vaid kiirendas ka toimingute 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