Measuring executed floating-point operations on Haswell

Measuring executed floating-point operations on Haswell

Hi,

I'm trying to measure the amount of floating-point operations executed on a processor with Haswell microarchitecture using performance counters under Linux.
So far, I managed to measure the amount of (single precision) float multiplications using the UOPS_ISSUED.SINGLE_MUL performance event. However, this event only counts the amount of float multiplications while ignoring float additions, comparisons as well as any operations involving doubles.
I also tried accessing the FP_COMP_OPS_EXE.* events (such as FP_COMP_OPS_EXE.SSE_FP_SCALAR_SINGLE) from the SandyBridge and IvyBridge microarchitectures via their raw event codes using the perf tool under Linux. The resulting counter values were always 0.

Is there any way to measure the amount of float additions, comparisons, divisions as well as operations on doubles on the Haswell microarchitecture?

Thanks in advance

publicaciones de 4 / 0 nuevos
Último envío
Para obtener más información sobre las optimizaciones del compilador, consulte el aviso sobre la optimización.
Imagen de iliyapolak

Usually while measuring performance on VTune  code must run longer the clock interrupt period( IIRC on Windows it should be around ~1ms-3ms).

What is the running time of your code?

Quote:

iliyapolak wrote:

Usually while measuring performance on VTune  code must run longer the clock interrupt period( IIRC on Windows it should be around ~1ms-3ms).

What is the running time of your code?

The running time of the code is around 10.5 seconds and it executes (judging from the C code) 2 billion float additions, multiplications, divisions and comparisons each.

Imagen de iliyapolak

Probably compiler issued x87 FP instructions only.

Can you use VTune for profiling?

http://software.intel.com/en-us/articles/estimating-flops-using-event-based-sampling-ebs/

Inicie sesión para dejar un comentario.