etc:common_activities:gcc_vectorization
Table of Contents
Векторизация в gcc
Under construction
Определения
- Вектор данных – упорядоченный набор данных в памяти, находящихся на равных расстояниях
- Векторизация программы – Поиск фрагментов программы, которые можно обработать при помощи векторных команд1).
Документация gcc
- http://gcc.gnu.org/projects/ – проекты внутри gcc
- http://gcc.gnu.org/contribute.html – правила для контрибьюторов
- http://gcc.gnu.org/onlinedocs/gccint/ или info gccint – документация на внутренности gcc
- http://gcc.gnu.org/wiki/HomePage – gcc wiki
- http://gcc.gnu.org/wiki/VectorizationTasks – задачи проекта автовекторизации
План, первая стадия
- составить список того, что мы можем сделать из того, в чем нуждается проект
- составить список того, что своего полезного мы можем предложить (проверить, что этого еще нет, оно возможно и имеет смысл)
Мысли по поводу
- не векторизуется взятие следа матрицы из 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)
- изучить предложенное решение для PPC;
- [+] найти использованные инструкции PPC;
- понять, как представляется предложенное решение на ассемблере PPC;
- реализовать аналог для IA64
- http://ski.sourceforge.net/ – это эмулятор IA64
Ход разборок
- исходники из 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