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

Подсчет количества ненулевых элементов массива из рубрики "Странное дело". (2 стр)

Страницы: 1 2
#15
(Правка: 20:01) 19:48, 4 янв 2022

Suslik
>недавно смотрел интервью с джимом келлером...
А можно ссылку, пожалуйста?

=A=L=X=
  Видимо надо на еще более старой и по новее системах проверить. Потом отпишусь, если что.
  Да, прогресс конечно не стоит на месте, и это хорошо, так что если у меня даже на столь древней машине все летает, то представляю, что будет у обладателей современных ПК).

skalogryz
  Хм, не знаю с чем связано, но теперь время для наилучшего случая в варианте с ветвлениями уже не в два раза быстрее, чем без ветвлений).
  Вообщем, вот такой результат получился:
    Normal Test 1  : 32ms
    Normal Test 2  : 47ms
    Normal Test 3  : 109ms
    Normal Test 4  : 31ms
    Normal Test 5  : 47ms
    Math Test 1    : 47ms
    Math Test 2    : 62ms
    Math Test 3    : 62ms
    Math Test 4    : 62ms
    Math Test 5    : 63ms
    Boolcast Test 1: 47ms
    Boolcast Test 2: 31ms
    Boolcast Test 3: 47ms
    Boolcast Test 4: 47ms
    Boolcast Test 5: 47ms
  Также, время в Test3("рандомный" массив) для цикла c if-ами все таки заметно хуже, впрочем как и в Вашем тесте.
  И что интересно, сравнивал с результатами в движке, так сказать в реальной боевой задаче. На достаточно плотных массивах просчет без ветвлений был быстрее примерно на 20 %, но на сильно разреженных наоборот, хуже.

  Нашел еще вот такую занятную статью. Там тоже рассказывается про неоднозначность предсказаний. В частности там упоминается про порядок if...else if и сам недавно столкнулся с ситуацией, когда их перестановка давала разницу в скорости исполнения примерно на 20-30%.

#16
5:22, 5 янв 2022

интервью то ли это:

+ Показать

то ли это:

+ Показать

энивей, джима не грех лишний раз послушать

#17
11:57, 5 янв 2022

Suslik
> по его словам, branch prediction — это, несомненно, самая сложная и самая
> критически важная часть любого современного cpu
Разработчики российского ЦП тоже говорили, что конкурировать с интел/АМД сложно из-за их крутого бранч предикшена.

#18
12:10, 5 янв 2022

Suslik
Тут https://youtu.be/Nb2tebYAaOA на 12:10 начинается про бранч предикшен

#19
12:16, 5 янв 2022

/A\
да, он там же обсуждает интересные архитектуры, которые выдают результат вычислений с недетерменированной точностью до эпсилон, что бы позволило применять к ним неведомые оптимизации. классная же идея, особенно если учесть, что fast-math примерно так по факту и работает, и применяется в hpc вообще и в физике особенно чуть более чем везде. построить архитектуру на такой парадигме было бы следующим шагом.

#20
(Правка: 21:19) 20:48, 5 янв 2022

  Эх, вроде и нормальное видео, но что-то после 20 минут не выдержал и переключил на посиделки с Гоблином(в рекомендуемых)). Но спасибо за ссылку!

Прошло более 7 месяцев
#21
(Правка: 5:19) 5:13, 1 сен 2022

  Опять наткнулся на проделки предсказателя переходов 😵. Реальный пример:

+ Показать

  В данном случае происходит градиентная заливка большого спрайта несколько сотен раз. То есть падение производительности происходит, если первой идет второстепенная по приоритету ветка. Но странно то, что перестановка блоков вобще как-то повлияла при таком мизерном количестве прорисовок.

#22
13:33, 1 сен 2022

>Но странно то, что перестановка блоков вобще как-то повлияла при таком мизерном количестве прорисовок.

Учитывая вышеописанное - не странно. ИИ разрабатываемый путём раскрутки прототипа, он же как работает - конкретно прописанные случаи и последовательности работают как и положено, а когда действие выходит за хорошо проработанный сценарий, то система работает как получится и радуйся если результат вообще правильный и без критических ошибок. Твой тест как раз и показал пример выхода за хорошо проработанный сценарий.

#23
19:21, 1 сен 2022

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

#24
15:55, 24 ноя 2022

Незнаю, мне кажется для предсказателя достаточно брать последний адрес перехода, это "размотает" циклы. А пытаться предсказать результат выполнения условия в IF - это какоето гадание и черная магия

Страницы: 1 2
ПрограммированиеФорумОбщее