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