Техника оптимизации под линуха

Векторизация


Начиная с PentiumMMX, в x86-процессорах появилась поддержка векторных команд (они же "мультимедийные"). К сожалению, в ANSI Си векторные операции отсутствуют, а нестандартные языковые расширения создают проблему переносимости, поэтому вся забота по векторизации циклов ложится на компилятор. Он должен проанализировать исходный код и определить какие операции могут выполняться параллельно, а какие нет.

Допустим, исходный цикл выглядел так:

for(i=0; i<XXL; i++)

      a[i] += b[i];



Содержание раздела