SIMD на массиве пар? - PullRequest
       36

SIMD на массиве пар?

2 голосов
/ 16 февраля 2009

Я делаю некоторую работу, где требуется SIMD, и мне нужно выполнять операции над массивом значений типа double Поддерживает ли это какая-либо из основных архитектур? Я видел только операции с плавающей запятой.

Заранее спасибо, Stefan

Ответы [ 4 ]

3 голосов
/ 16 февраля 2009

Да, x86 может сделать это с помощью инструкций SSE2. Ячейка тоже, хотя ее производительность довольно ужасна при выполнении вычислений с двойной точностью.

1 голос
/ 16 февраля 2009

Вот встроенные функции SEE2, поддерживаемые компилятором C ++ в VS2008.

Как отметил Джальф, поддержка двойной точности процессорами CELL для SIMD значительно снижает производительность (я полагаю, что более поздние итерации чипа, не используемого в PS3, значительно улучшили поведение).

Что касается основного потока, SSE2 появился в Pentium 4 в 2001 году, поэтому он широко распространен в индустрии x86. согласно опросу Steam 95% населения имеют SSE2, так что я думаю, что это безопасно для цели.

1 голос
/ 16 февраля 2009

ARM VFP также может делать удвоения.

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

0 голосов
/ 16 февраля 2009

CUDA, работающая с вычислительной способностью 1.3 или выше, тоже может это сделать. Более новые карты GTX 2xx могут сделать это.

...