векторизация кода C ++ для повышения производительности STL - PullRequest
1 голос
/ 26 марта 2011

Я делаю вычисления для значений, содержащихся в нескольких больших векторных контейнерах STL, в приложении, построенном с использованием компилятора C ++ / Linux / GCC / Windows XP / Intel

Стоит ли исследовать возможность оптимизации с векторизацией, изменяя атрибуты aligmentили используя функции библиотеки Intel, и т. д. - или автоматически позаботится компилятор?

1 Ответ

0 голосов
/ 26 марта 2011

Обычно компилятор позаботится об этом с соответствующими настройками, поэтому вам придется немного подправить.

Тем не менее, если вы ориентируетесь на конкретное оборудование, вам лучше убедиться, что компилятор действительно использует преимущества такой системы. Например, известно, что компилятор Intel является отличным оптимизатором для своих процессоров.

Теперь иногда бывает также полезно векторизовать вручную. Фактически это похоже на любую оптимизацию: сначала создайте простую читаемую версию с эффективным алгоритмом. Затем оптимизируйте код с помощью профилировщика. Профилировщик сообщит вам, где сосредоточить свои усилия.

Если вы знаете, что у вас будет одна конкретная функция, пересекающая членов, и у вас есть опыт работы с сгенерированным кодом (из компилятора) для такого рода функций, вы можете начать применять некоторую оптимизацию с самого начала, но убедитесь, что вы уже знать, что будет сгенерировано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...