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

4 posts / novo 0
Último post
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.

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?

Citation :

iliyapolak a écrit :

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.

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/

Deixar um comentário

Faça login para adicionar um comentário. Não é membro? Inscreva-se hoje mesmo!