All streams
Search
Write a publication
Pull to refresh
4
1.6
Send message

Если инструкции декодированы и переданы в back end на одном такте, то дальше определить, какая из них первая, как вторая, можно только при явных ограничениях на порядок. В слабой модели памяти ограничений нет - кто проползёт быстрее по пайплайну, тот и пойдёт первым к контроллеру памяти (ну или какому то другому в случае MMIO), хочется порядка - расставляйте fence явно.

Алгоритм работает только тогда, когда a чем-то лучше для процессора, чем b.

Ну банально кинули обе микрооперациии загрузки одновременно на два разных load/store порта, но в первом потом пошли столлы из за кеш миссов.

Чаще таких людей повышают (что, в принципе, отдаляет их от принятия технических решений и хоть как то решает проблему с эффективностью).

Эльбрус как векторная числобробилка реально хорош

В HPC чаще всего простые циклы с минимумом сложных ветвлений. Вопрос как оно себя на каком нибудь парсинге XML поведёт.

Это только когда ветка встречается первый раз, дальше предсказание работает на основе информации в BTB.

Динамическое предсказание нормально обработает случай, когда у нас на одних входных данных один паттерн переходов, на других - другой, и нам сегодня приходят одни данные, а завтра другие. Чем поможет компилятор - не понимаю.

-mtune влияет только на скедулинг кода, но не даёт использовать инструкции, которых может не быть на другом железе (скажем, AVX или AVX512).

Через omp simd можно векторизовать (особенно если хочется использовать GPU

OMP Offload явно отдельная тема, там кроме векторизации много нюансов ) Но и на CPU выигрыш от omp simd может быть заметный - хотя соглашусь, что это тоже тема для отдельной статьи.

так как мы занимаемся параллелизацией.

А про выставление affinity в следующей серии расскажете? Оно, конечно, на многосокетной системе важнее, но и на клиентской машинке перекидывание потока с ядра на ядро не так безобидно.

Кроме векторизации там ещё много всего есть (сходу не скажу, например, включает ли -O3 IPO/LTO, можно с -ip/ipo поиграться). И в любом случае в последнее время рекомендуется векторизовать явно через omp simd. Сталкивался с тем, что с новой версией icc автовекторизация слетала, думаю в фортране то же самое. Ну и -march всё таки стоит обоим компиляторам сказать, а то сгенерят какой нибудь древний SSE.

PS В современном gcc "Vectorization is enabled at -O2 which is now equivalent to the original -O2 -ftree-vectorize -fvect-cost-model=very-cheap" https://gcc.gnu.org/gcc-12/changes.html

$ gfortran life_seq.f90 -o life_seq_g -O3 -ftree-vectorize -fopt-info-vec -flto

$ ifort life_seq.f90 -o life_seq -O3

Для честности надо было гну компилятору тоже только -O3 оставить. Или заняться подбором ключей для интеловского - отдельное увлекательное занятие )

В сухом остатке - правильно понимаю, что ввели что-то типа Principal Engineer/Fellow в Гугле,Интеле и т.п.?

У AMD все ядра будут основаны на архитектуре Zen 4

Да, в текущей версии документа в битах 27:24 только одно валидное значение - но зачем то же это поле ввели...

Как из под putty во встроенном редакторе cut/paste использовать?

теоретически копипаст должен работать в разных программах, даже если клиенты находятся на разных компьютерах и подключены к одному X-серверу через интернет

Написано, как будто это какая экзотика. Нормально штатно работает.

презентовала технологию RTX Remix, позволяющую поднять качество графики в старых играх

Подозреваю, что с Darklands оно не поможет - а так это как раз описанный случай, подобного игрового мира на стыке средневековой реальности и фэнтези не было, но вот из-за графики воспринимается тяжело.

12 ...
152

Information

Rating
1,446-th
Registered
Activity