|
|
|
Ассемблер и ХММ
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток, All!!! Вот, возник вопрос: (Что-то ковыряюсь в справочнике команд x86, и никак не найду.) Пытаюсь оптимизировать алгоритм перемножения массивов. Перемножать в XMM регистрах не просто, а очень просто. А вот как бы мне так побыстрее просуммировать 4 packed single из xmm1, и положить куда-нибудь, желательно в регистр, а не в память? Заранее громадные пасипки за комменты и ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2011, 01:24 |
|
||
|
Ассемблер и ХММ
|
|||
|---|---|---|---|
|
#18+
P.S. 5-ю инструкциями, через память и я могу. Хочется обойтись 3-мя-4-мя, и по возможности, без загрузки кэша процессора. Возможно ли это вообще? Есть XMM регистр, надо просто просуммировать 4 single из него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2011, 05:51 |
|
||
|
Ассемблер и ХММ
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2011, 19:39 |
|
||
|
Ассемблер и ХММ
|
|||
|---|---|---|---|
|
#18+
Изопропил, О! Большой пасип, самое то!!! P.S. Я даже погорячился, мне оказывается не обязательно делать ЭТО часто. Оказалось, (Ну кто бы мог подумать :)) мне никто не запрещает держать в XMM регистре 4 суммы в течение кучи итераций умножения-сложения массивов. И только в конце цикла уже их суммировать между собой. Получается вообще 8-ми ствольный пулемет. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2011, 21:23 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=37383261&tid=1342794]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
191ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 242ms |
| total: | 544ms |

| 0 / 0 |
