Im Linux-Kernel wurde die Implementierung des CRC32C-Algorithmus optimiert

FĂŒr die Aufnahme in den zukĂŒnftigen Zweig des Linux-Kernels 6.13 wurde ein Patch mit einer ĂŒberarbeiteten Implementierung des CRC32C-PrĂŒfzahlenalgorithmus vorgeschlagen. Der Code der CRC32C-Implementierung wurde um etwa das 10-Fache reduziert (von 4546 auf 418 Bytes). Bei deaktiviertem Retpoline-Schutz vor Spectre-Angriffen betrĂ€gt der Leistungszuwachs mit der neuen Implementierung 11,8 % auf AMD Zen 2-Prozessoren, 6,4 % auf Intel Emerald Rapids und 4,8 % auf Intel Haswell. Bei aktiviertem Retpoline ist der Leistungszuwachs deutlicher und erreicht 66,8 % auf Systemen mit Intel Emerald Rapids-Prozessoren, 35,0 % auf Intel Haswell und 29,5 % auf AMD Zen 2. retpoline enabled | 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 disabled: | 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% |

Die ursprĂŒngliche Variante von CRC32C umfasste 128 unrollte Schleifen, was zu einem ziemlich großen Code fĂŒhrte. Da moderne Prozessoren mit der UnterstĂŒtzung fĂŒr die nicht sequenzielle AusfĂŒhrung von Instruktionen (out of order) Befehle parallel ausfĂŒhren können, erwies sich eine derartige Optimierung der Sprungbefehle in Schleifen als ĂŒberflĂŒssig und fĂŒhrte lediglich zu einem ĂŒbermĂ€ĂŸig großen Code. Anstelle von 128 Iterationen wurden im neuen Ansatz nur 4 beibehalten, was nicht nur den Codeumfang erheblich reduzierte, sondern auch die AusfĂŒhrung der Operation beschleunigte.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster