Я использую расширения SSE, доступные в процессоре Core2Duo (компилятор gcc 4.4.1).Я вижу, что доступно 16 регистров, каждый из которых имеет длину 128 бит.Теперь я могу разместить 4 целых значения в одном регистре и 4 в другом, используя встроенные функции, я могу добавить их в одну инструкцию.Очевидным преимуществом является то, что мне требуется только 1 инструкция вместо 4.
Мой вопрос: «Это все для SIMD?».Пусть у меня есть a1, a2, a3, a4, a5, a6, a7, a8 и b1, b2, b3, b4, b5, b6, b7, b8.Пусть A1, A2 - векторные регистры.Теперь A1 <<< (a1, a2, a3, a4) и B1 <<< (b1, b2, b3, b4) и add (A1, B1) выполнят сложение векторов. </p>
ПустьA2 <<< (a5, a6, a7, a8), B2 <<< (b5, b6, b7, b8).Существует ли инструкция добавления, которая может одновременно добавлять (A1, B1) и добавлять (A2, B2). </p>
Сколько векторных функциональных блоков доступно в core2duo и где я могу получить эту информацию?
Любой другой источник информации, связанной с ними, высоко ценится.