Некоторые простейшие принципы автовекторизации

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

 

   В предлагаемой статье обсуждаются  основные идеи векторизации, а так-же ограничения, которые имеет автовекторизатор, вытекающие из необходимости компилятора действовать консервативно и осуществлять перестановочные оптимизации только в том случае, если полностью доказана их корректность. Существуют возможности для передачи компилятору дополнительной информации, позволяющей компилятору решать задачи автовекторизации приложения более успешно. Поэтому опытному пользователю необходимо анализировать отчет автовекторизатора о его работе и "сотрудничать" для получения наилучшего результата. Я попытался проанализировать простейшие возможности автовекторизаторов нашего компилятора и компилятора gcc4.7.2, оценить их склонность к "сотрудничеству" и описать простейшие факторы влияющие на эффективность автовекторизации.

 

  Статья размещена в корпоративном блоге на www.habrahabr.ru : http://habrahabr.ru/company/intel/blog/171439/

For more complete information about compiler optimizations, see our Optimization Notice.