Войти
ПроектыФорумОцените

SR64 (тестирование) (8 стр)

Страницы: 17 8 9 10 11 Следующая »
#105
23:31, 19 окт. 2019

eDmk

Так оптимизировать тогда нужно не отдельное умножение, а более крупные операции.

#106
8:37, 20 окт. 2019

Ghost2
> Ну, на массив хотя-бы умножают
А чем технически отличается реализация умножения на один от умножения на массив на sse в софтрендере? Меняется ли от этого сам алгоритм умножения?

#107
9:50, 20 окт. 2019

Truthfinder

Например AoS vs SoA.

#108
(Правка: 10:03) 9:56, 20 окт. 2019

Ghost2
> Например AoS vs SoA.

Серъёзно? Я сильно сомневаюсь, что в данном случае xyzw->xxxx,yyyy,zzzz,wwww поможет ускорить. Скорее только такты на разбрасывание потерять. Сколько софтрендеров видел, что-то нет фанатов так делать. В данном случае профит это вряд ли даст. Вот в плане избавиться от горизонтальных сложений соглашусь. Это важно. Но от них можно избавиться куда проще. И это сводит на нет пользу от  AoS/SoA перехода.

#109
(Правка: 11:27) 11:25, 20 окт. 2019

Truthfinder

> Сколько софтрендеров видел, что-то нет фанатов так делать
А я ни одного софтрендера не видел. Но это не отменяет того факта, что нет смысла SIMD-оптимизировать микрооперации. Тем более - на таких дубовых компиляторах, как у дельфей.

#110
(Правка: 13:34) 11:29, 20 окт. 2019

Ghost2
> А я ни одного софтрендера не видел. Но это не отменяет того факта, что нет
> смысла SIMD-оптимизировать микрооперации.

Да это с первого поста было видно, что тут демагогия сплошная будет. Ваши советы далеки от реальности, что там имеет смысл, а что нет.

#111
(Правка: 13:59) 13:47, 20 окт. 2019

В общем господа мне удалось избавиться от транспонирования и скорость умножения матрицы на матрицу стала 171 млн. умножений в секунду :) Никакого shufps :)

#112
(Правка: 14:05) 14:04, 20 окт. 2019

eDmk
> Никакого shufps
Да ну? И на что заменил? На горизонтальные сложения? А можно вообще broadcast использовать. AVX то у тебя есть.

#113
14:30, 20 окт. 2019

Правильное умножение матрицы на матрицу:
Картинка:

+ Показать

PDF: Умножение матриц 4x4

#114
14:31, 20 окт. 2019

Truthfinder
> Да ну? И на что заменил? На горизонтальные сложения?
Не. PSHUFD + ADDPS

#115
14:34, 20 окт. 2019

eDmk
> Не. PSHUFD + ADDPS

Заменил одни шафлы на другие, которые точно также работают на 5 порту. Замени уже на broadcast, раз avx есть, зачем ты себя ограничиваешь?

#116
(Правка: 14:38) 14:37, 20 окт. 2019

eDmk
> Правильное умножение матрицы на матрицу:

Ну об этом на хабре ещё ссылку кидали, и не одну. Вот одна из них: https://habr.com/ru/post/418247/. Если пойти дальше, там и broadcast есть, а если есть он, тогда нет смысла отказываться от avx на ymm регистрах, что быстрее ещё раза в два. Плюс у тебя проц с fma, ещё и оно. Удивишься производительности.

#117
(Правка: 14:40) 14:40, 20 окт. 2019

Truthfinder
> раз avx есть
У меня и AVX есть и FMA, а вот у многих пользователей нету.
Pentium Gold, который сейчас активно продается не имеет ни AVX, ни AVX2.
Многие еще на Core 2 DUO и Core Quad работают, где только XMM.

#118
14:42, 20 окт. 2019

eDmk
> У меня и AVX есть и FMA, а вот у многих пользователей нету.

А вот у многих нет sse 4.1, который используешь. Тогда ограничься SSE3 (SSSE3 тоже в отказ, хотя сейчас он тебе и не нужен). SSE3 есть на старых AMD просто.

#119
14:43, 20 окт. 2019

eDmk
> Многие еще на Core 2 DUO и Core Quad работают, где только XMM.

И ещё xmm8+ есть только на 64 битном sse. Или ты 32 битные процы не рассматриваешь?

Страницы: 17 8 9 10 11 Следующая »
ПроектыФорумОцените