我已经在网上搜索了有关Microsoft Visual Studio 2013中不同浮点模型选项的计算开销的文档,但到目前为止,我的搜索一直没有结果。我想知道的是,对于不同的数学运算,/ fp:精确度比/ fp更快,计算成本是多少?一些示例操作(显然,这些不是我正在使用的实际操作,但只是为了清楚起见,我在几分钟内编写的示例,代码可能不是很好):
对于所有例子:
double array1[100]; // then fill this with a bunch of numbers somehow
double array2[100]; // then fill this with a different bunch of numbers somehow
示例1(添加一堆随机双打):
double sum = 0;
for (int i = 0; i < 100; i++)
{
sum += array1[i];
}
示例2(减去一堆随机双打):
double diff = 0;
for (int i = 0; i < 100; i++)
{
diff -= array1[i];
}
示例3(乘以两个双打):
double prod;
for (int i = 0; i < 100; i++)
{
prod = array1[i] * array2[i];
}
示例4(除以两个双打):
double quot;
for (int i = 0; i < 100; i++)
{
quot = array1[i] / array2[i];
}
其他示例包括这些操作的组合。有没有办法可以使用Microsoft Visual Studio 2013通过运行浮点模型设置为/ fp:precise和/ fp:fast的相同代码来确定计算开销?
以下链接可能会有所帮助:
http://msdn.microsoft.com/en-us/library/aa289157%28v=vs.71%29.aspx#floapoint_topic3
PS:我知道使用/ fp:fast有风险(请参阅我在Possible loss of precision between two different compiler configurations的先前问题)。我想要确定的是,如果我将浮点模型从/ fp:precise切换到/ fp:fast,我可以期待看到额外的计算费用。