underworlddemon писал: именно с векторизацией ? т.е. 4 float за 1 команду высчитывать ?
Да, именно векторизация, ассемблер.
Пробовал и интринсики, но они гораздо менее эффективны оказываются, т.к. не всегда получается реюзать регистры.
Команда (ты про gcc -msse?) вроде просто включает поддержку интринсиков.
underworlddemon писал: принудительно, да ещё и выровнено - это уже не так просто, чтобы компилятор сам смог
Об этом и речь.
Такие вещи, как оптимизация боттлнеков, лучше компилятору не доверять. Это одна из тех немногих вещей в современном программировании, где реально нужен человеческий мозг.
XaeroX писал: Это одна из тех немногих вещей в современном программировании, где реально нужен человеческий мозг.
ну матлибы как раз и позволяют упростить некоторым образом работу ибо берут это на себя и минимизируют ошибки\опечатки (за счёт минимизации кода)
ведь о многих низкоуровневых вещах позаботились на уровне самой библиотеке и думать о них уже не надо (ну только проверить правильность )
обновляем библиотеку = обновляем оптимизации под железо
т.е. не надо вручную переписывать, достаточно скомпилировать с новым флагом
underworlddemon писал: но думаю про векторизацию и ассемблерные вставки ты не заморачивался
так я же говорю - узкое место, оно не там.
вы все прекрасно знаете, что ксаш бодрее халфы при прочих равных условиях. На самой обычной матлибе. Даже если прикрутить туда супер быструю матлибу, сам ксаш уже быстрее не станет, хоть убейся. Потому что боттлнек в использовании глбегин. А оптимизировать это место я не могу, поскольку начнутся проблемы со всякими хлфхами-параноями, вернее всего. Точнее так: тупая замена глбегин на арреи вполне возможна, но прироста от такого подхода не будет. Там придется капитально перепахать рендерер. Ну и как следствие - похерить всю совместимость. Поэтому я подобные фокусы практикую исключительно в ксаш-модах, благо архитектура движка позволяет.
underworlddemon писал: инструменты для отслеживания узких мест в нагрузке на графику и\или проц
т.е. расширенные мониторинги производительности программ
*чешет репу*
да я и так все узкие места знаю. Мониторинг хорош, когда объем кода настолько велик, что не охватывается одним человеком, и с какого-то момента команда перестаёт понимать, что там собственно вообще происходит.