История изменений
Исправление Deleted, (текущая версия) :
gem5 должен достаточно хорошо эмулировать «железо». В зависимости от эмулируемой модели CPU может быть доступен один из таймеров. Соответственно, этот таймер можно считать до и после выполнения бенчмарка. Но универсальное решение может быть достчточно муторным, как пример.
На всякий я уточню, что если gem5 хорошо и честно эмулирует аппаратуру и вы запустите под ним linux, то более-менее штатно должен быть доступен интерфейс к perf-счетчикам в ядре. Как минимум стоит постараться добиться наличия этих счетчиков посредством конфигурирования gem5 и гостевого ядра.
Так вот, при работающих в гостевой системе perf-счетчиках, либо одного из «счетчика тактов» (в специфических регистрах CPU), вы сможете использовать mera.c
как готовое работающее решение. Собственно вы в любом случае можете его использовать, но при недоступности честно-эмулируемых аппаратных счетчиках у вас будет результат только от clock_gettime()
.
Исправление Deleted, :
gem5 должен достаточно хорошо эмулировать «железо». В зависимости от эмулируемой модели CPU может быть доступен один из таймеров. Соответственно, этот таймер можно считать до и после выполнения бенчмарка. Но универсальное решение может быть достчточно муторным, как пример.
На всякий я уточню, что если gem5 хорошо и честно эмулирует аппаратуру и вы запустите под ним linux, то более-менее штатно должны быть доступен интерфейс к perf-счетчикам в ядре. Как минимум стоит постараться добиться их наличия посредством конфигурирования gem5 и гостевого ядра.
Так вот, при работающий в гостевой системе perf-счетчиках, либо одного из «счетчика тактов» (в специфических регистрах CPU), вы сможете использовать mera.c
как готовое работающее решение. Собственно вы в любом случае можете его использовать, но при недоступности честно-эмулируемых аппаратных счетчиках у вас будет результат только от clock_gettime()
.
Исходная версия Deleted, :
gem5 должен достаточно хорошо эмулировать «железо». В зависимости от эмулируемой модели CPU может быть доступен один из таймеров. Соответственно, этот таймер можно считать до и после выполнения бенчмарка. Но универсальное решение может быть достчточно муторным, как пример.