По поводу AIDA64 и Arrow bess прав. Не учитывают там политку инклюзивности/эксклюзивности огромного L2 к LLC. Имхо. Оттого такие цифры. Не могут отделить мух от котлет. Так думаю.
Если есть зависимость не от порядка а от именно значения обрабатыааемых данных-то тут предсказание упадет. Чтобы понять насколько это критично, алгоритм прогоняется с данными которые имеют максимальную возможную энтропию (наиболее случайные данные) для области применения. Например при анализе текста это наихудший известный текст на заданном языке изобилующий ошибками/опечатками, где значимо нарушены веса гласных/согласных, границы слов. Именно для области применения. Это не значит что там должны быть все буквы английского алфавита как белый шум-именно в области применения. И сравниваешь насколько снизится скорость обработки. Если существенно - придется переписывать с условной передачей данных. Выше я показал: 11% миспредикшена снизят скорость вдвое. Придется разобрать все методы, найти горячие точки и переписать их (используя вставки ASM'а в C++ код) с оптимизацией на CMOV. Ну это если у тебя уже лучший алгоритм на ЯВУ(в противном случае оптимизация начинается с подбора алгоритма)
это вообще как возможно? статический код с известным результатом во время компиляции?
Зависимость порядка/последовательности обработки обычно не страшна для качества предсказания условных переходов. Паттерны ее обработают и результат будет хороший или отличный(95% что именно отличный) . Если есть зависимость не от порядка а от именно значения обрабатыааемых данных-то тут предсказание упадет. Чтобы понять насколько это критично, алгоритм прогоняется с данными которые имеют максимальную возможную энтропию (наиболее случайные данные) для области применения. Например при анализе текста это наихудший известный текст на заданном языке изобилующий ошибками/опечатками, где значимо нарушены веса гласных/согласных, границы слов. Именно для области применения. Это не значит что там должны быть все буквы английского алфавита как белый шум-именно в области применения. И сравниваешь насколько снизится скорость обработки. Если существенно - придется переписывать с условной передачей данных. Выше я показал: 11% миспредикшена снизят скорость вдвое. Придется разобрать все методы, найти горячие точки и переписать их (используя вставки ASM'а в C++ код) с оптимизацией на CMOV. Ну это если у тебя уже лучший алгоритм на ЯВУ(в противном случае оптимизация начинается с подбора алгоритма)
Исправлено: mrzet, 23.01.2025 00:31