float res[size], a[size], b[size]
//Several initialization is done
for(int i=0; i<size; i++) res[i] = a[i]*b[i];
我想知道如何测量浮动操作的数量。
机器:型号名称:Intel(R) Core(TM)2 Quad CPU @ 2.93GH
编译器:'gcc 版本 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3)'
架构:x86_64。
人们说从 gcc 4 开始将自动启用 sse 选项。同时,也有评论说 sse 不支持乘法和除法。
如果我只是编写上面的代码,我不知道是否启用了 sse。任何人都可以告诉我如何计算浮动操作的数量?
更何况,如果用 float 代替 double 会怎样?
我想知道等式是否是:
浮点数:2.93 * 4 双精度数:2.93 * 2
实际上,我发现 x86_64 中还有 8 个新寄存器。这会导致一次 8 个浮点操作和 4 个双重操作吗?