Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:common_activities:gcc_vectorization

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

Определения

  • Вектор данных – упорядоченный набор данных в памяти, находящихся на равных расстояниях
  • Векторизация программы – Поиск фрагментов программы, которые можно обработать при помощи векторных команд1).

Документация gcc

План, первая стадия

  • составить список того, что мы можем сделать из того, в чем нуждается проект
  • составить список того, что своего полезного мы можем предложить (проверить, что этого еще нет, оно возможно и имеет смысл)

Мысли по поводу

  • не векторизуется взятие следа матрицы из CLib. говорит, unhandled data-ref. можно разбираться с детектором зависимостей по данным или добавить прагму указывающую, что зависимости нет;

План, вторая стадия

Разобраться с задачей “Model missing vec_extract_even/odd (needed for interleaving loads) for ia64. See details in PR30211.” (http://gcc.gnu.org/wiki/VectorizationTasks)

Ход разборок

  • исходники из CVS из ветки autovect-branch не векторизуют простых примеров; версии 4.1.2 и 4.2.1 это делают; варианты дальнейших действий:
    • работать с головой ствола;
    • работать со срезом ствола на дату публикации патча;
    • искать объяснения?
1)
Пакет расширений SSE, SSE2, SSE3, SSSE3
etc/common_activities/gcc_vectorization.txt · Last modified: 2008/09/01 01:11 by zps