[c++] sse, mmx, etc

Maurog

дайте плиз линки на описания того, как можно ассемблеровскими вставками оптимизировать свой си-код (в общем инетересует в какие регистры и что надо запихнуть и какой командой индуцировать вызов функции из sse2)
хочется при наличие sse2 (к примеру) в коде написать
#ifdef HAVE_SSE2
asm {
...
}
#endif
в коде используются всякие ФФТ, свертки и матричные операции.
дополнительно интересует:
1. сложно ли будет таким образом оптимизировать код?
2. стОит ли это делать самому или возложить это на компиляторы, добавив ключики для оптимизации сырцов (под sse2 к примеру)? используются CC (sparc gcc (linux VC6.0 (win)

vall

в gcc автовекторизация AFAIK пока в планах.
на sparc SSE и MMX нет
лучше писать самому конечно.

Marinavo_0507

> в коде используются всякие ФФТ, свертки и матричные операции
для этого полно готовых оптимизированных библиотек, разве нет?

Maurog

в манах гцц есть ключики касательно sse, mmx
на линуксе intel xeon
какие фишки есть у спарков?

Maurog

разве да, но нам нельзя использовать внешние либы.

Realist

Думаю, круче всего сделать так: возложить на компилятор, почитать ассемблер, который он генерирует, убедится, что ничего существенно улучшить нельзя. То, что может быть сделано автоматически, должно делаться автоматически.

rosali

Есть еще icc. Он SSE генерирует. SSE2 это вообще целочисленная арифметика, тебе это надо? Сами instruction set-ы легко найти в гугле. И еще, можно вместо ifdef лучше писать if, есть такая инструкция cpuid.

Chupa

> SSE2 это вообще целочисленная арифметика
сам придумал?

vall

ну, в том числе и целая

rosali

MMX - целочисленная, SSE - вещественная, SSE2 - целочисленная. Или ты под SSE2 хочешь понимать SSE+SSE2? Но что это меняет?..

Chupa

> MMX - целочисленная, SSE - вещественная, SSE2 - целочисленная.
с тебя ссылка на источник
принимаются только материалы с http://www.intel.com
> Или ты под SSE2 хочешь понимать SSE+SSE2?
я под SSE2 понимаю SSE2, в котором появилаcь возможность работы с парами вещественных чисел двойной точности

ava3443

> разве да, но нам нельзя использовать внешние либы.
Попробуйте http://www.fftw.org/ и потом переубедите тех, кто запрещает использовать внешние либы.

ava3443

:
SSE2, в котором появилаcь возможность работы с парами вещественных чисел двойной точности
Using Streaming SIMD Extensions 2 (SSE2)

Maurog

спасибо за ссылку
ффтв давно скачал.
Оставить комментарий
Имя или ник:
Комментарий: