LINUX.ORG.RU

Что лучше SIMD или FPU?


0

0

На архитектуре amd54 под фряхой7 по умолчанию компилер генерит код с SIMD оптимизацией, так например -mno-sse непрокатит прокатит только -mfpmath=387 для полного отключения SEE(2,3). Собственно вопрос - что лучще (с точки зрения скорости работы кода) использовать на пройессоре Intel Q6600 в 64 битном режиме FPU или SIMD?

Про 64 бита прошу не наезжать ибо они мне по делу нужны для обработки 7-8 гигов данных от эксперимента, гораздо приятнее весь хлам иметь в памяти.

ЗЫ: какой выигрыж несут пенрины с из SSE4? И есть ли поддержка этой фичи в компиляьоре? Опыт сравнения сгенереных ассемблеров показал что больше всего юзается sse, sse2 от sse3 нашел только пату каманд, mmx b 3dnow (знаю что у меня не амд но для интереса) ненашел вовсе.

anonymous

intel рекомендуют использовать если возможно sse вместо fpu, sse все же с регистрами работают а fpu со стеком и в sse есть команды быстрого копирования данных минуя кэш.

koTuk
()
Ответ на: комментарий от koTuk

> sse все же с регистрами работают а fpu со стеком и в sse есть команды > быстрого копирования данных минуя кэш.

учить матчасть!
стек FPU - есть набор STx _регистров_

rei3er
()
Ответ на: комментарий от rei3er

>учить матчасть!
>стек FPU - есть набор STx _регистров_

Ну тогда попробуйте выполнить команду с произвольным _регистром_ :) не поместив его на вершину стэка.

koTuk
()
Ответ на: комментарий от koTuk

надо было сразу уточнять, что имеется в виду стек _регистров_ ;)

rei3er
()
Ответ на: комментарий от koTuk

А на сколько SIMD быстрее FPU при вычислениях с плавающей точкой? Я ведь правильно понимаю что вычисления с double gcc способен либо на fpu либо sse прокомпилировать?

anonymous
()
Ответ на: комментарий от anonymous

Зависит от задачи - если единичные операции то скорей всего вообще разницу не заметите, а например при работе с матрицами можно в разы скорость увеличить (одна инструкция - много данных), а используя быструю загрузку-выгрузку регистров минуя кеш можно большие блоки данных эффективно копировать.

koTuk
()
Ответ на: комментарий от koTuk

А сколь эффективна упаковка чисел с плавоющей точкой в sse2 и обратно по отношению к fpu? Есть вообще какие нибудь тесты позволяющие помереть sse vs fpu

anonymous
()
Ответ на: комментарий от anonymous

Лучший тест - реальная задача. Напишите и пробуйте с разными параметрами оптимизации.

koTuk
()
Ответ на: комментарий от koTuk

> Но мне кажется на C это вообще нереально сделать - надо на асме.

В Intel C/C++ встроено.

mv ★★★★★
()
Ответ на: комментарий от anonymous

> А сколь эффективна упаковка чисел с плавоющей точкой в sse2 и обратно по отношению к fpu? Есть вообще какие нибудь тесты позволяющие помереть sse vs fpu

В SBCL перешли с FPU по-умолчанию на SSE после того, как услышали шум, что "в джава вот перешли, и там быстрее стало" ;)

mv ★★★★★
()

SIMD -- быстрее. FPU -- точнее. Выбирать Вам.

Dselect ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.