Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:common_activities:gcc_vectorization

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
etc:common_activities:gcc_vectorization [2007/12/14 00:41] jcmvbkbcetc:common_activities:gcc_vectorization [2008/09/01 01:11] (current) zps
Line 1: Line 1:
 ====== Векторизация в gcc ====== ====== Векторизация в gcc ======
  
 +
 +<note important> Under construction</note>
 +
 +
 +[[.:gcc_vectorization:gaps_stores |  Vectorization of accesses with gaps]]
 +
 +===== Определения ======
 +  * Вектор данных -- упорядоченный набор данных в памяти, находящихся на равных расстояниях
 +  * Векторизация программы -- Поиск фрагментов программы, которые можно обработать при помощи векторных команд((Пакет расширений SSE, SSE2, SSE3, SSSE3)).
 +
 +===== Документация gcc =====
   * http://gcc.gnu.org/projects/ -- проекты внутри gcc   * http://gcc.gnu.org/projects/ -- проекты внутри gcc
   * http://gcc.gnu.org/contribute.html -- правила для контрибьюторов   * http://gcc.gnu.org/contribute.html -- правила для контрибьюторов
Line 8: Line 19:
   * http://gcc.gnu.org/wiki/VectorizationTasks -- задачи проекта автовекторизации   * 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;
 +    * понять, как представляется предложенное [[.:gcc_vectorization:autovect_ppc | решение на ассемблере PPC]];
 +  * реализовать аналог для IA64
 +    * http://ski.sourceforge.net/ -- это эмулятор IA64
 +    * [[.:gcc_vectorization:toolchain_ia64 | toolchain для компиляции под ia64]];
 +
 +==== Ход разборок ====
 +  * исходники из CVS из ветки autovect-branch не векторизуют простых примеров; версии 4.1.2 и 4.2.1 это делают; варианты дальнейших действий:
 +    * работать с головой ствола;
 +    * работать со срезом ствола на дату публикации патча;
 +    * искать объяснения?
etc/common_activities/gcc_vectorization.1197582073.txt.gz · Last modified: 2008/01/03 02:32 (external edit)