0

我在网上搜索了有关 Microsoft Visual Studio 2013 中不同浮点模型选项的计算费用的文档,但到目前为止,我的搜索没有结果。我想知道的是,对于不同的数学运算, /fp:precise 比 /fp:fast 的计算成本高多少?一些示例操作是(显然,这些不是我实际使用的操作,只是为了清楚起见我在几分钟内写的示例,代码可能不是很好):

对于所有示例:

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 有其风险(请参阅我之前的问题可能在两种不同的编译器配置之间失去精度)。我要确定的是,如果我将浮点模型从 /fp:precise 切换到 /fp:fast,我可以期望看到额外的计算开销。

4

0 回答 0