ПрограммированиеФорумОбщее

Прошу помощи по SSE и MMX

Страницы: 1 2 3 Следующая »
#0
11:29, 10 дек 2010

Я достаточно долго программировал.. слабые места на ассемблере. Но вот MMX и SSE боялся как огня. Теперь встала задача максимально оптимизировать сложные векторные вычисления (4хмерные). Причём если на машине нет SSE, то сделать всё через MMX (там ведь есть операции с плавающей точкой ?)

Собственно вопросы. Какую качественную литературу (для тупых - чтобы всё расжёвано было) по SSE и MMX вы можете посоветовать. Может быть скажете какие-то основы... (нужно присвоение, сложение, вычитание, перевод к интам).  Что за shuffle ? Ну и наконец, как на С++ программировать SSE/MMX командами (я имею ввиду... _mm_add_ps, _mm_mul_ps, _mm_cvttps_pi32, ... - и где это искать ?)

С уважением, Дмитрий )

#1
11:46, 10 дек 2010

AMD Manuals
Using intrinsics

А вообще - вгугл.

#2
13:10, 10 дек 2010

DevilDevil
> Причём если на машине нет SSE
Забудь. Машины без хотя бы первого SSE - это ОЧЕНЬ старые машины. Таких и не найти.
И, кстати, как ты собираешься заменять операции SSE с помощью MMX? Они ж разные вещи делают.

Я, лично, SSE трогал по книжке:
Искусство программирования на Ассемблере. Лекции и упражнения. 3-е издание 
Голубь Н. Г.

Причем нужно именно третье издание, потому что в первых двух SSE отсутствует.

#3
13:17, 10 дек 2010

> Забудь. Машины без хотя бы первого SSE - это ОЧЕНЬ старые машины.
Вообще говоря, путь джедая состоит в написании абстрактного классa SIMDProcessor, от которого наследуются SIMDProcessorGeneric, SIMDProcessorMMX, SIMDProcessorSSE и т.д.

#4
13:18, 10 дек 2010

Ghost2
Какого еще класса и зачем??

#5
13:34, 10 дек 2010

Затем чтобы софт не падал с диагнозом EXCEPTION_ILLEGAL_INSTRUCTION.

#6
13:37, 10 дек 2010

Ghost2
> Затем чтобы софт не падал с диагнозом EXCEPTION_ILLEGAL_INSTRUCTION.

да, было тут такое :)

#7
13:40, 10 дек 2010

если рассуждать о совместимости... я и MMX боюсь юзать. Мало ли может на компе его нет )
может я слишком устаревших взглядов )

#8
13:54, 10 дек 2010

DevilDevil
> Мало ли может на компе его нет )
Комп без MMX - это Penitum 133

#9
13:58, 10 дек 2010

DevilDevil
> Мало ли может на компе его нет )
Тогда остальное тоже не запуститься, можешь не переживать.

#10
13:59, 10 дек 2010

@!!ex
batment
ok ) но MMX оставлю )
так он работает с float ?

#11
14:02, 10 дек 2010

Нет не работает. Можно конечно фиксед поинт заюзать, но думаю точности не хватит.

#12
14:02, 10 дек 2010

DevilDevil
> так он работает с float ?
MMX не работает с float.
SSE работает с float.
MMX для целочисленных данных.
http://ru.wikipedia.org/wiki/MMX

#13
14:19, 10 дек 2010

хм
очень прискорбно
а, был такой 3DNow, но завязывать на него думаю неактуально

возможно последний вопрос
как посчитать скалярное произведение на SSE ?

#14
14:32, 10 дек 2010

@!!ex
> Забудь. Машины без хотя бы первого SSE - это ОЧЕНЬ старые машины. Таких и не
> найти.

Даже на моей есть.

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.