Компилятор Intel ICC -O флаги и -qopt-отчет
Я сейчас работаю над HPC, и у меня есть вопрос, касающийся компилятора icc.
То, что я хочу сделать, - это посмотреть, что происходит, когда я изменяю уровни оптимизации с помощью [O0..O3]. Мне нужны данные о векторизации, о том, был ли код встроен и т. Д. -qopt-report
флаг.
Я решил использовать наивысший уровень детализации для отчета, который
-qopt-report5 (I think this is the correct way to use it)
однако при уменьшении уровня O отчет постепенно уменьшается, пока не становится пустым при использовании -O0
флаг:
icc -O0 -qopt-report5 -c test1.c
Я продолжу искать, но если кто-то заметит, что я умру с ума, я был бы признателен за указание на использование этих флагов вместе!
Заранее спасибо за любые подсказки. Ура, Марк.
1 ответ
-qopt-report5 всегда отключен, когда вы используете -O0. Это "по определению", потому что opt-report == "отчет по оптимизации" и O0 == "нет оптимизации", поэтому не о чем сообщать.
Как правило, автоматическая векторизация включена, начиная с уровня оптимизации O2, поэтому, если вы хотите изучить аспекты векторизации, вам необходимо использовать как минимум комбинацию "-O2 -opt-report5" или "выше".
Если вы хотите соотнести "пики" производительности и "отчет по оптимизации", рассмотрите возможность использования Intel "Vectorization Advisor" (подробнее читайте здесь, загрузите сейчас с этого места: https://software.intel.com/en-us/advisor_getting_started_intro)