LLVM špatně optimalizovalo celočíselné dělení na procesorech AMD

10. 5. 2024

Sdílet

AMD Ryzen Autor: Brian Wong, podle licence: CC BY-SA 2.0
AMD Ryzen

Uživatel Systemcluster z Tokia nahlásil chybu, kdy kód přeložený Clangem pro zenver4 běží na Zen4 o 25 % pomaleji než kód optimalizovaný obecně pro x86-64-v4 nebo x86-64. V kódu je Int64 dělení.

Ukázalo se, že v případě procesoru AMD není zapnuta kontrola, jestli nejde použít rychlejší Int32 dělení. Tak je to udělané pro Intel i pro x86-64. Oprava se týká všech procesorů AMD od architektury Barcelona (K10) až do současné Zen4.

Stejný autor si všiml další chyby, kdy kód optimalizovaný pro zenver4 či skylake je 4× pomalejší než například pro zenver3. Na této chybě se ještě pracuje.

(zdroj: phoronix)

Našli jste v článku chybu?

Autor zprávičky

První linux nainstaloval kolem roku 1994 a u něj zůstal. Později vystudoval fyziku a získal doktorát.