Я просмотрел в Интернете документацию, касающуюся вычислительных затрат различных параметров модели с плавающей запятой в 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: точный и / fp: быстрый?
Следующие ссылки могут быть полезны:
http://msdn.microsoft.com/en-us/library/aa289157%28v=vs.71%29.aspx#floapoint_topic3
PS: я знаю, что использование / fp: fast имеет свои риски (см. Мой предыдущий вопрос на Возможная потеря точности между двумя различными конфигурациями компилятора). То, что я пытаюсь определить, это дополнительные вычислительные затраты, которые я могу ожидать увидеть, если я переключу модель с плавающей запятой с / fp: точный на / fp: быстрый.
Задача ещё не решена.
Других решений пока нет …