Я хочу использовать gem5 с некоторыми из моих работ, и у меня есть очень общий вопрос относительно его возможностей.
Мой вопрос, используя gem5, могу ли я получить статистику по поведению / использованию системных ресурсов отдельными потоками, либо в режиме SE, либо в режиме FS. Например, если в моем приложении запущено 2 потока, могу ли я увидеть, что поток 1 использует циклы X в ЦП 1, циклы Y в ЦП 2 и т. Д., А поток 2 использует циклы Z в ЦП 3 и т. Д. Если это возможно, это также распространяется на использование кэша, использование памяти и т. д.?
Я видел следующие вопросы: Доступ к логическому (программному) идентификатору потока в gem5 , но я думаю, что использование статистики аппаратных потоков подойдет для нашего варианта использования.
Я вижу, что класс ThreadState в src / cpu / thread_state.hh имеет следующие поля:
/** Number of instructions committed. */
Counter numInst;
/** Stat for number instructions committed. */
Stats::Scalar numInsts;
/** Number of ops (including micro ops) committed. */
Counter numOp;
/** Stat for number ops (including micro ops) committed. */
Stats::Scalar numOps;
/** Stat for number of memory references. */
Stats::Scalar numMemRefs;
Это похоже на то, что я мог бы использовать. Кто-нибудь знает, могут ли эти статистические данные быть легко выведены на поток в файле статистики?
Спасибо!