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

SR64 (7 стр)

Страницы: 16 7 8 918 Следующая »
#90
(Правка: 9:45) 9:05, 15 окт. 2019

Ghost2
> Кто-нибудь уже говорил, что нет смысла оптимизировать отдельное умножение
> матрицы на точку или другую матрицу?

Ну-ка поделись как надо.

#91
19:43, 15 окт. 2019

Truthfinder
> Без интринсиков обойтись не удалось, так как я уже сказал, что xmm > 7 есть только на 64 битном режиме, а 64 битный компилятор студии больше не поддерживает инлайновый ассемблер.
А GCC/clang не интересует?

Кстати, кроме IACA есть MCA, который есть прямо на godbolt.

#92
(Правка: 14:45) 10:16, 16 окт. 2019

FordPerfect
> А GCC/clang не интересует?

Для себя я в студии лабаю. Поставил и всё работает из коробки. Остальное только увеличивает занимаемое место на диске. Тот же шланг собирал по приколу: долго и места много занимает. А профит сомнительный.
Ну и ещё шланг странный, что тоже не плюс. На хабре была статья, где через UB он выполняет код, который напрямую нигде не вызывается.
И у них отмазка UB же...
Я бы не стал шлангом компилить софт для аэрокосмической отрасли, биржи и тп...
Хотя один фиг это делают.
https://habr.com/ru/post/339700/

Не для себя я разрабатываю под кучу платформ. И пользую gcc/clang. Но эти тулзы захламляют уже НЕ мой личный комп.
Ничего такого сверхважного и душеспасительного ни один компилятор в код не принесёт. Ни один. Поэтому какой удобней, тот и стоит пользовать.

> Кстати, кроме IACA есть MCA, который есть прямо на godbolt.

Наконец-то завезли. Спасибо за подсказку. Очень удобно.

#93
19:41, 16 окт. 2019

Truthfinder
Я, собственно, о том, что в GCC/clang в x64 инлайн-асм вполне себе есть. И IACA к GCC прикручивается (наверно и к clang тоже).

Ну и по размеру установка MinGW - она сильно меньше, чем Студия/clang.
Плюс менее навязчивая (всенародно любимое "несколько Студий на одном компе", для сравнения).

#94
(Правка: 10:36) 10:35, 18 окт. 2019

FordPerfect

Я давно не вижу смысла в inline ассемблере. Он нужен был тут для очень специфической области - максимально сохранить оригинальность асм кода ТС. Ради этого заморачивать доп. тулзами я не вижу смысла. А вот знал бы я про встроенный в godbolt mca, я бы и с iaca не заморачивался.

P.S. Разработка и поддержка IACA завершена.

#95
22:44, 18 окт. 2019

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

Вот, например:
https://godbolt.org/z/2lOlWH

#96
11:49, 19 окт. 2019

Truthfinder

> Ну-ка поделись как надо.
Ну-ка придумай задачу, где необходима такая оптимизация.

#97
12:27, 19 окт. 2019

Ghost2
> Ну-ка придумай задачу, где необходима такая оптимизация.

Не надо ничо выдумывать. Софтрендер та самая задача. Умножение матрицы на матрицу причём малокритично. Умножение матрицы на вектор критично. Вон в видосике прям видно было на модели самолёта, как этих вершин куча.

#98
(Правка: 17:21) 14:21, 19 окт. 2019

У меня всего ~15-20 умножений матрицы на матрицу за кадр. Это как раз не критично и на производительность никак не влияет. А самолетик 1,2 млн. поликов. 7-12 fps на одном ядре (60-70 fps на 10 ядрах). Вектор на матрицу у меня очень шустро работает. Там mulps и shufps.
В софтрендере все упирается в пропускную способность памяти. Для моего ЦПУ - 10 Гб/с.
Это примерно на уровне Radeon 9600 Pro.

Здесь выкладывал тест памяти.
По тесту №7 можно определить пропускную способность памяти.

#99
20:11, 19 окт. 2019

Ну и вот, для сравнения, более стандартное умножение матрицы на матрицу, SSE2 (надеюсь, не накосячил):
https://godbolt.org/z/xso897

А вот код из #74, вроде, довольно шустрый (только он не общего назначения, т. к. закладывается на W=1).
Если матрица во время кучи умножений не меняется, то её можно прямо в регистрах хранить, но whatever.

#100
20:23, 19 окт. 2019

FordPerfect
> то её можно прямо в регистрах хранить
Я так и делаю. Если тест позиции не пройден, то матрица остается в регистрах.
Экономия на загрузке ощутимая.

#101
22:29, 19 окт. 2019

Truthfinder

> Умножение матрицы на вектор критично
Такой задачи нет с софтрендере. Никто там не умножает одну матрицу на один вектор.

#102
23:04, 19 окт. 2019

Ghost2
> Такой задачи нет с софтрендере. Никто там не умножает одну матрицу на один
> вектор.
>
>
А как там делают?

#103
23:16, 19 окт. 2019

eDmk

Ну, на массив хотя-бы умножают.

#104
23:18, 19 окт. 2019

Ghost2
> Ну, на массив хотя-бы умножают.
>
>
В целом верно.

Страницы: 16 7 8 918 Следующая »
ПроектыФорумОцените