05-19-2009 10:26 AM
I've read that one SSE register contains 128 bits, however a double uses 64 bits. If I count the SSE operations and I get e.g. 10.000, does this mean, that there are 20.000 floating point operations? For me, it is interesting, how many flops had happend, so I sum up the events FP_X87 and FP_SSE, but I don't know how to interpret the FP_SSE values.
05-19-2009 12:03 PM
Unfortunately, there are cases where an SSE parallel operation is performed on a single operand for consistency or to optimize register renaming. You wouldn't be able to count those in VTune, unless you refer to your source code to check whether it is serial (including remainder loops for vectorized code) or true useful parallel operations in vectorized code.
05-20-2009 04:18 AM
I am not interested in how many operations were parallel. I like to know the absolut and relative number of floating point operations executed during a run of a special program. Therefore ich count the events FP_COMP_OPS_EXE.SSE_FP and FP_COM_OPS_EXE.X87. The sum ot fhese two events should be the absulut number of floating point operations executed. And to get the relative number, I divided this sum by INST_RETIRED.ANY events.
At the moment, I don't care about parallelism - sometimes I start the program with only one thread.
05-20-2009 06:20 AM