Разница между LLCMisses и CacheMisses на счетчиках оборудования

В чем разница между LLCMisses и CacheMisses?

0 ответов

Значение, возвращаемое для обоих счетчиков, обычно должно быть одинаковым.

Счетчики, доступные в BenchmarkDotNet, предоставляются инфраструктурой Windows ETW. К сожалению, насколько мне известно, Microsoft не предлагает какой-либо конкретной информации ни по одному из них, но мы можем разумно сделать некоторые выводы из тех, которые мы видим.

В системах Intel, для которых я видел полные списки источников PMC, список заканчивается 8 записями с последовательными идентификаторами. Первые семь из этих восьми (UnhaltedCoreCycles, InstructionRetired, UnhaltedReferenceCycles, LLCReference, LLCMisses, BranchInstructionRetired, BranchMispredictsRetired) почти точно соответствуют названиям и порядку семи счетчиков событий Intel Architectural Performance Event (подробности см. в главе "Мониторинг производительности" Руководства разработчика программного обеспечения Intel).

Последний из 8, LbrInserts, вероятно, относится к функции мониторинга производительности Intel Last Branch Record. Таким образом, представляется разумным предположить, что эти источники напрямую сопоставляются с конкретными счетчиками x86, и они не будут присутствовать на архитектурах без них.

Из других 5 перечисленных источников TotalIssues возвращает те же значения, что и InstructionRetired; BranchInstructions совпадения BranchInstructionRetired, CacheMisses совпадения LLCMisses, BranchMispredictions совпадения BranchMispredictsRetired, а также TotalCycles совпадения UnhaltedCoreCycles.

Предположительно, в других архитектурах ЦП определены свои собственные источники, специфичные для архитектуры, причем эти источники сопоставлены с разными счетчиками, специфичными для архитектуры, например BranchMispredictions на ARM может соответствовать BR_MIS_PRED counter, который не имеет той же семантики, что и Intel Branch Mispredicts Retired, но все же представляет концепцию неверного предсказания ветвей.

Итак, фактический ответ таков: если вы распространяете программное обеспечение с предопределенным значением, вы выбираете LLCMissesесли вам нужен конкретный смысл счетчика Intel. Если вам просто нужна концепция промаха кеша, вы выбираетеCacheMissesтак что он также может работать на других архитектурах с другими счетчиками производительности. И если вы просто запускаете его локально, не имеет значения, какой вы выберете.

Другие вопросы по тегам