2015-05-19 13 views
2

Я пытаюсь оценить FLOPS для моего приложения с помощью Intel VTune Amplifier, и я использую этот пост здесь в качестве ориентира: https://software.intel.com/en-us/articles/estimating-flops-using-event-based-sampling-ebs/FLOP измерения

Проблема в том, что я не могу найти событие FP_COMP_OPS_EXE в VTune графический интерфейс. Когда я запускаю amplxe-cl с этой конфигурацией событий, я получаю следующую ошибку:

amplxe: Ошибка: недопустимое событие FP_COMP_OPS_EXE.X87 отброшено.

Я работаю на CentOS и мой процессор Intel Xeon

Любая помощь будет оценена

ответ

1

доступные события набор может переключаться между процессорами поколения. Важно точно знать ваше имя процессора. события вы упоминали существует для Intel Xeon v2 (на основе Ivybridge), и вы можете использовать следующую формулу для определения числа операций с плавающей точкой: FP_COMP_OPS_EXE.SSE_SCALAR_SINGLE + 4 * FP_COMP_OPS_EXE.SSE_PACKED_SINGLE + 8 * SIMD_FP_256.PACKED_SINGLE + FP_COMP_OPS_EXE.SSE_SCALAR_DOUBLE + 2 * FP_COMP_OPS_EXE.SSE_PACKED_DOUBLE + 4 * SIMD_FP_256.PACKED_DOUBLE + FP_COMP_OPS_EXE.X87

Для процессоров на базе Haswell (Xeon v3) там нет таких событий и расчет FLOPs не представляется возможным там.

В Бродуэлла основе формула будет следующей: FP_ARITH_INST_RETIRED.SCALAR_SINGLE + 4 * FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE + 8 * FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE + FP_ARITH_INST_RETIRED.SCALAR_DOUBLE + 2 * FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4 * FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + INST_RETIRED.X87

+0

Спасибо за ответ. Но у меня до сих пор нет подобных событий, о которых вы упоминали. События, которые я могу добавить к моему анализу, - это количество отставных инструкций (INST_RETIRED.ANY) И единственными событиями, которые у меня есть для FP, являются FP_ASSIST для X87 и для SIMD –

+0

Если ваш Xeon базируется на базе Haswell, это просто не означает, t имеют события для расчета FLOP. Каково полное имя процессора для вашей системы? – rdb77