DPPS на более старой версии GCC - PullRequest
       13

DPPS на более старой версии GCC

1 голос
/ 16 октября 2010

Hei!

Мне нужно оптимизировать некоторый код умножения матриц в c, и я делаю это, используя векторные инструкции SSE.Я также обнаружил, что существует SSE4.1, в котором уже есть инструкция для dot-product, dpps.

Проблема в том, что на компьютере должно работать это программное обеспечение, установлена ​​старая версия gcc (4.1.2), который не поддерживает SSE4.1, но имеет процессор, который его поддерживает (не спрашивайте меня, почему версия gcc старше, чем процессор ...).Поэтому я не могу использовать функцию _mm_dp_ps.

Я немного поигрался с добавлением ассемблерного кода в c.Проблема в том, что я никогда раньше не использовал ассемблерный код, так что это действительно сбивает с толку.Также более эффективно писать весь код, который имеет дело с векторными инструкциями на ассемблере?

Итак, я спрашиваю здесь, есть ли другие способы, как использовать инструкцию dpps, и стоит ли ее вообще использовать?

1 Ответ

2 голосов
/ 16 октября 2010

Честно говоря, я не вижу проблемы.Из вашего описания кажется, что машина, на которой должен выполняться финальный код, поддерживает SSE4.1 и DPPS.Следовательно, после компиляции исходного кода, включая встроенный (или сборочный), его можно выполнить на этом компьютере.Вам нужно будет только скомпилировать свой код с более новой версией компилятора, либо установив более новую версию на машину, о которой вы говорите, либо скомпилировав ее на другом компьютере, а затем скопировав исполняемый файл на компьютер, который потребуетсязапустить на.

Стоит ли оптимизация с DPPS усилиями, которые будут зависеть от вашего кода (т. е. насколько велик потенциал для оптимизации - вы должны тщательно проанализировать, чтобы выяснить, где ваши узкие места)есть) и насколько важна производительность в данном конкретном случае (т. е. стоит ли ваше время ?; время - деньги)

Очевидно, что если у вас мало опыта сборки, реализация вашей рутины вasm, или, может быть, даже просто написание собственной функции-оболочки asm около DPPS, становится менее привлекательным.(Но это, безусловно, можно сделать.)

...