Intel Advisor оптимальные флаги и настройки
Я читаю это руководство по векторизации кода с помощью Intel Advisor. В частности, на этой странице они предлагают:
Создайте целевой пример приложения в режиме выпуска... параметры компилятора: -O2 -g
И следующее:
Чтобы создавать собственные приложения для получения наиболее точных и полных результатов анализа Vectorization Advisor, создайте оптимизированный двоичный файл в режиме выпуска с использованием следующих параметров.
-g -O2 (or higher) -qopt-report=5 -vec -simd -qopenmp
Теперь у меня есть пара вопросов:
- Я думал, что в режиме выпуска мы не производим никакой отладочной информации (которая создается в "режиме отладки"), поэтому нет
-g
должны быть включены - Самое странное, что в Makefile, приведенном для примеров кода (
vec_samples
в/opt/intel/advisor_*/...
) использует только-g -O2
почему они не включают все другие варианты. Зачем?
1 ответ
Соответствующей точкой входа в новые учебники Intel Advisor является " Начало работы", где вы можете выбрать и выбрать подходящие учебные пособия. Подучебник по векторизации для Linux можно найти здесь. Это точно говорит о том, что:
-qopt-report = 5: необходим для версии 15.0 компилятора Intel; не требуется для версии 16.0 и выше
Что касается -vec, -simd, -openmp, учебник слегка путает флаги, необходимые для правильной работы советника (-g, -O2, опционально -opt-report), с флагами, необходимыми для "правильной" работы компилятора (-vec, - simd и -openmp). Последние - просто флаги, управляющие генерацией векторного кода компилятора, они не имеют ничего общего с возможностями профилирования Advisor, так что вы можете или не можете их использовать.
Чтобы дать вам более глубокое понимание: в Advisor есть важная функция, которая называется Intel Advisor Survey "Интеграция компиляторов". Эта функция использует данные, относительно похожие, но не идентичные opt-report. Чтобы эта функция работала, вам нужно
- Использование бета-версии Intel Coimpiler 14.x, 15.x, 16.x или 17.x
- -g (включить отладочную информацию) и -O2 или выше (включить некоторую оптимизацию)
- Необязательно (только для Intel Compiler 15.x) -qopt-report5
Все остальные функции в Intel Advisor работают одинаково хорошо независимо от версии компилятора (пункт 1 выше) или opt-report и версий (пункт 3 выше), но все они требуют -g (часть варианта 2 выше). -O2 не требуется для некоторых функций, но, как правило, бесполезно иметь дело с скомпилированными двоичными файлами -O0 или -O1 при анализе аспектов производительности.