Универсального набора весов не существует.
Различные реальные рабочие нагрузки имеют разные узкие места или разные веса.
Не существует единого числаэто может сказать вам, насколько быстрым является компьютер. Возможно (и происходит в реальной жизни), что программа X работает быстрее на компьютере A, чем B, но программа Y работает быстрее на компьютере B.
Выборнабор весов для микробенчмарков полностью сводится к тому, что вы хотите, чтобы ваш номер означал, и для какой рабочей нагрузки вы хотите, чтобы он был приблизительным показателем.
например, плотныйMatmul обычно может насытить пропускную способность исполнительного блока FMA, потому что он (O ^ 3) работает над N ^ 2 данными. С осторожной блокировкой кеша вы можете получить в основном попадания в кеш L1d и избежать более чем одной векторной нагрузки SIMD на FMA. Пропускная способность DRAM / кеша должна быть достаточно высокой, чтобы поддерживать ее, но большинство хранилищ / перезагрузок попадают в кэш L1d (что, конечно, также должно быть в состоянии поддерживать).
Но другие рабочие нагрузки могут стать узким местомпропускная способность памяти или задержка, и не заботится о пропускной способности FPU вообще. например, AMD Ryzen 1 может выполнять 1x 128-битную FMA за такт, в то время как Intel Haswell и более поздние могут делать 2x 256-битную FMA за такт. Но Ryzen быстрее или почти равен тактовой частоте для некоторых других рабочих нагрузок.
И в многоядерных системах некоторые программы являются однопоточными и заботятся только о одноядерной пропускной способности, в то время как другие хорошо масштабируются и получаютбольшое ускорение на машине с большим количеством медленных ядер. Или же они могут заботиться о задержке между ядрами и общей пропускной способности памяти.