Ми настійно рекомендуємо всім нашим користувачам починати з -O3 -xHost -ipo
ifort 11 і ifort 12. Якщо існують особливі перетворення з плаваючою точкою, включені O3, які впливають на точність деяких ваших обчислень, ви можете вимкнути їх спеціально -fp-model precise -fp-model except
(або, що більш різко, -fp-model strict
) при збереженні інших оптимізацій O3 дозволяє, наприклад, блокування циклу для кешу, злиття циклу та розкручування та оптимізацію доступу до пам'яті.
Я б радив спробувати модель моделі з плаваючою комою на окремих файлах і з'ясувати, де це має значення, а не вимикати її в усьому світі; це може бути відбиток на швидкості ~ 15%, і ви хочете мати можливість утримувати це там, де це не впливає на ваші розрахунки. Якщо ви не впевнені, на що впливає точність, ви можете грати, включаючи та вимикаючи прапорці з плаваючою комою для цих файлів або граючи з режимами округлення .
Нещодавно ми коротко поговорили з нашими користувачами про оптимізаційні прапори, зосередившись на компіляторах gnu та Intel для x86; слайди з цієї розмови ви можете побачити тут .
Між іншим, поки ми говоримо про вибір прапорів оптимізації для вашого коду, раз у раз також варто подивитися на вихід -vec-report, щоб побачити, де компілятор намагався векторизувати цикл, а не зміг; іноді в циклі можуть бути внесені невеликі зміни, які можуть призвести до можливої векторизації (що може бути в 4 рази). Аналогічно для більш загального -opt-звіту .