The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Проект Minotaur развивает оптимизатор векторных инструкций для LLVM "
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Проект Minotaur развивает оптимизатор векторных инструкций д..." +1 +/
Сообщение от n00by (ok), 17-Июл-23, 12:36 
>> Есть, начиная с 16-ти разрядных 8086.
>> rep movs
>> В какие-то периоды времени она работала медленнее, чем цикл с предвыборкой из
>> кеша (prefetchnta), но давно ускорили.
> Зачем тогда avx используют для копирования?
> И разве это не просто способ повторения копирования одного слова?

Не знаю, зачем. Может маркетинг, или очередной выигрыш на уровне погрешности измерений.

Вот цитата 64-ia-32-architectures-optimization-manual.pdf

2.6.6 REP String Enhancement

REP prefix in conjunction with MOVS/STOS instruction and a count value in ECX are frequently used to
implement library functions such as memcpy()/memset().
...
Fast string (ECX >= 76: excluding REP MOVSB): the processor implementation provides hardware
optimization by moving as many pieces of data in 16 bytes as possible. The latency of REP string
latency will vary if one of the 16-byte data transfer spans across cache line boundary:
...
In order for REP string to operate in “fast string” mode, previous microarchitectures requires address
alignment. In Intel microarchitecture code name Nehalem, REP string can operate in “fast string”
mode even if address is not aligned to 16 bytes.

Обратите внимание на "аппаратная оптимизация" (hardware optimization).

Проблема со скоростью копирования была во времена Athlon XP и разобрана в http://files.rsdn.ru/23380/AMD_block_prefetch_paper.pdf
Смысл в том, что память читается не побайтно, а кратно размеру линии кэша, и лишнего загрязнения кэша желательно избегать.
В следующем поколении Intel оптимизировали REP MOVSB и она догнала по скорости оптимизированные циклы.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Проект Minotaur развивает оптимизатор векторных инструкций для LLVM , opennews, 16-Июл-23, 10:43  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру