Здравствуйте, rm2, Вы писали:
rm2>вот тебе таблица, ее думаю достаточно: https://habr.com/ru/company/otus/blog/343566/
Смотрю наихудшее — если из памяти рид. 100-150 циклов, может кажется много, но из памяти рид не на 1 операцию, там выбирается блок, и если там будет далее последовательное чтение то там могут быть данные на десятки вычислений. и дальнейшая последовательная выборка не настолько медленная. И все эти затраты в итоге станут ничем.
Просто нужно подумать, как реально достигается даже теоретически максимально возможная производительность? Тот же linpack — там же используется при полном тесте вообще вся память, т.е. read из памяти непрерывный и на весь объем в гигабайты. А если есть такие "жрущие" операции, то никак не достичь заявленной производительности, просто частота процессора*количество потоков*количество инструкций за такт. Т.е. как в реальном тесте на перемножение матриц достигают предельных величин производительности процессора? Ведь огромные затраты должны сожрать ну хотябы 30%, а если доступ к памяти это 100-150 в раз медленнее других операций, чем просто инструкция, то должно ждать вообще фиаско! Однако процессоры в реальных задачах могут демонстрировать производительность которая теоретически и заложена в виде частоты*ядра*инструкций за такт. И плевать на "медленный" доступ к памяти.