beldmit: (Программизм)
Dmitry Belyavskiy ([personal profile] beldmit) wrote2020-09-02 12:20 pm

Ещё пачка ссылок. Оптимизация под Intel.

Уволок из диалога с Алексеем Тутубалиным в Фейсбуке

На всякий случай: я не считаю, что сейчас надо заморачиваться именно на ассемблер, большинство C-шных компиляторов сейчас умеют так называемые compiler intrinsics, которые по сути обычные функции с C-шным интерфейсом, но компилируются в ассемблер и работают быстро.

Но, собственно, описание лучше всего на сайте Intel, и там именно ассемблерные команды.

Intel Intrinsics Guide. Очень удобно, можно фильтровать по наборам инструкций. Надо понимать, что часть наборов у AMD и у Intel отличаются. Заморачиваться ли в этом месте вообще на интринсики - дело вкуса.

Intel® 64 and IA-32 Architectures Software Developer Manuals

Как пофиксить торможение при переключении между использованием AVX и SSE

Optimizing subroutines in assembly language. An optimization guide for x86 platforms от Агнера Фога.

Его же сайт, кусок про оптимизацию.
izard: (Default)

[personal profile] izard 2020-09-02 04:18 pm (UTC)(link)
Отличная подборка. Кстати, Патрик - автор статьи про переключение между avx и sse - еще и автор и мэйнтейнер intrinsics guide.
izard: (Default)

[personal profile] izard 2020-09-05 11:45 am (UTC)(link)
Почти, главная засада - как в AVX2 не хватает горизонтальных перестановок между 128 битными половинками. Только в AVX512 появились.