Компиляция для оптимизации операций с плавающей точкой

Некоторые опции оптимизации операций над вещественными числами, применяемые по умолчанию, можно изменить с целью повысить производительность программ, выполняющих большое число таких операций.

Некоторые из этих опций могут повлиять на соответствие стандартам операций над вещественными числами. Применение таких опций в принципе может повлиять на результаты, однако в большинстве случае оно повышает точность вычислений.

Рекомендации

Ниже приведены некоторые рекомендации:

  • В случае программ с одинарной точностью операций, предназначенных для платформ семейство POWER и POWER2, вы можете повысить производительность, не снижая точность, с помощью следующих опций:
    -qfloat=fltint:rsqrt:hssngl

    Если программа с одинарной точностью не очень активно работает с памятью (например, программа не запрашивает больше данных, чем умещается в кэше), то вы можете повысить точность вычислений, сохранив или повысив производительность, с помощью следующих опций:

    -qfloat=fltint:rsqrt -qautodbl=dblpad4

    Для программ, не содержащих переменных одинарной точности, следует указывать только опцию -qfloat=rsqrt:fltint. Учтите, что опция -O3 без опции -qstrict автоматически задает режим -qfloat=rsqrt:fltint.

  • Программы с одинарной точностью обычно более эффективны, чем программы с двойной точностью, поэтому замена типа REAL (по умолчанию) на тип REAL(8) может снизить производительность. Поддерживаются следующие подопции -qfloat: