AMD публикува нов пач за GNU Compiler Collection (GCC), предназначен да подобри оптимизацията за x86_64 код. Оптимизацията, наречена Разширена Оптимизация на Зареждане, е разработена да бъде от полза за код, където по-тесен тип данни се зарежда и след това се използва в аритметична операция с по-широк тип данни.
Пачът, представен от Sridevi от екипа за компилатори на AMD, се отнася до ситуация, в която GCC в момента използва инструкции `vextract`. Sridevi обясни, че пачът ще позволи на GCC вместо това да използва разширени зареждания със ZMM регистри, което потенциално ще постигне по-добра производителност. Пачът идентифицира модел „зареждане + преобразуване“ в SLP дървото и стеснява типа на вектора за зареждане, ако целта поддържа функционалност за обединено зареждане и разширение. Функцията `vect_optimize_slp_widening_loads` извършва тази оптимизация във файла `tree-vect-loop.cc`.
Тази оптимизация не е специфична за процесорите Zen на AMD, а се прилага към по-широката x86_64 архитектура. AMD наскоро се насочи към включването на нова поддръжка за компилатори, включително поддръжка за Zen за GCC и LLVM/Clang, по-рано в процеса на разработка. Преди това голяма част от тази работа се извършваше от партньори като SUSE след пускането. Пачът в момента е в процес на преглед за включване в GCC 17. С представянето на пача не бяха включени показатели за производителност.
Прочетете оригиналното отразяване
💬 Коментари
📜 Правила за коментари