Здравствуйте, гость ( Вход | Регистрация )

30 страниц V « < 24 25 26 27 28 > »   
Ответить в эту темуОткрыть новую тему
> Разработка findcolor, findimage, Pure lua
DarkMaster
сообщение 4.6.2022, 2:12
Сообщение #501


***********

Модератор UOPilot
Сообщений: 9.735
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29624
Пользователь №: 11.279



По чтению всмысле в кэш загонит и не выкинет раньше времени. Все парюсь по сколько байт с памяти читается минимально сейчас.

По ветвлению не знаю. Для меня реально загадка, как проц может просчитать ветвления поиска по сути одного дапа рандома в другом дампе рандома еще и паттернами со смещением (y координата). Да касательно имиджа там условно есть за что цеплятся в плане именно оптимизаций, которые сделал в свое время кнайт, вот только беда в том, что эти оптимизации иногда вылетают в трубу и искать приходится влоб (например при ч/б изображении). Теоретически можно даже убрать переход по Y координате и искать линейно, но вот только логика и запоминание результатов может при этом выполнятся реально дольше, чем прямой перебор. Кароче тестить надо. Сейчас это вилами по воде.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 4.6.2022, 2:16
Сообщение #502


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22550
Пользователь №: 16.156



Цитата(DarkMaster @ 4.6.2022, 2:12) *

По чтению всмысле в кэш загонит и не выкинет раньше времени. Все парюсь по сколько байт с памяти читается минимально сейчас.

По ветвлению не знаю. Для меня реально загадка, как проц может просчитать ветвления поиска по сути одного дапа рандома в другом дампе рандома еще и паттернами со смещением (y координата). Да касательно имиджа там условно есть за что цеплятся в плане именно оптимизаций, которые сделал в свое время кнайт, вот только беда в том, что эти оптимизации иногда вылетают в трубу и искать приходится влоб (например при ч/б изображении). Теоретически можно даже убрать переход по Y координате и искать линейно, но вот только логика и запоминание результатов может при этом выполнятся реально дольше, чем прямой перебор. Кароче тестить надо. Сейчас это вилами по воде.


предсказание переходов

покажет куда улетает время
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.6.2022, 12:13
Сообщение #503


***********

Модератор UOPilot
Сообщений: 9.735
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29624
Пользователь №: 11.279



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


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 4.6.2022, 13:13
Сообщение #504


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22550
Пользователь №: 16.156



Цитата(DarkMaster @ 4.6.2022, 12:13) *

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


Ну как бы есть разделение: то что видит компилятор, его задача сделать так, чтобы код был предсказуем по максимуму (тут как он оптимизирует и строит код вообще), и процессор - он в любом случае будет пытаться предсказать куда прыгать, ибо нет у него информации больше.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 4.6.2022, 13:28
Сообщение #505


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22550
Пользователь №: 16.156



Кстати вот че вспомнил. тут можешь смотреть выхлоп разных компилей и время выполнения

https://godbolt.org/
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.6.2022, 14:19
Сообщение #506


***********

Модератор UOPilot
Сообщений: 9.735
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29624
Пользователь №: 11.279



Цитата
пытаться предсказать

То, что он будет пытаться это понятно. Впорос в том будут ли эти попытки рабочими (IMG:style_emoticons/default/smile.gif)
Спасибо за линки.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 4.6.2022, 14:33
Сообщение #507


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22550
Пользователь №: 16.156



Цитата(DarkMaster @ 4.6.2022, 14:19) *

То, что он будет пытаться это понятно. Впорос в том будут ли эти попытки рабочими (IMG:style_emoticons/default/smile.gif)
Спасибо за линки.



Так я же пишу, что чем лучше сгенерирован код и чем больше "удачных" данных, тем лучше результат. например, условно, 2 раза был переход по result[0] < result[1], а 6 раз нет - результат такой себе, кеш предиктора сбит и он вынужден просчитывать переход заново. А вот в ситуации когда все 8 раз был переход по result[0] < result[1] - все супер, следующий прыжок скорее всего будет вытянут из кеша без проверок.

Тут нельзя ничего гарантировать, надо просто программу приводить к минимуму по сложности ветвлений (циклы тоже ветвления)

джит работает по такому же принципу: чем горячее блок кода, тем он больше вероятность реальной компиляции, но только с тем набором аргументов (если мы говорим о функции), которые чаще всего используются
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.6.2022, 15:16
Сообщение #508


***********

Модератор UOPilot
Сообщений: 9.735
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29624
Пользователь №: 11.279



дык
Цитата
result[0] < result[1]

будет вызван 1 раз, потом смещение по адресам. я об этом и говорю.

Сообщение отредактировал DarkMaster - 4.6.2022, 15:17


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 4.6.2022, 18:17
Сообщение #509


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22550
Пользователь №: 16.156



Цитата(DarkMaster @ 4.6.2022, 15:16) *

дык

будет вызван 1 раз, потом смещение по адресам. я об этом и говорю.


в цикле - не один
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 5.6.2022, 17:27
Сообщение #510


***********

Модератор UOPilot
Сообщений: 9.735
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29624
Пользователь №: 11.279



сейчас имеет какое-то значение по производительности использование int/short и double/float? А то помню uint поюзал - скорость в пару раз просела....


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 5.6.2022, 20:30
Сообщение #511


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22550
Пользователь №: 16.156



Цитата(DarkMaster @ 5.6.2022, 17:27) *

сейчас имеет какое-то значение по производительности использование int/short и double/float? А то помню uint поюзал - скорость в пару раз просела....



Double точно не нужен, а инты должны быть по размеру машинного слова процессора, т.е. либо 32 либо 64. Знаковый тип или нет не имеет значения.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 5.6.2022, 22:52
Сообщение #512


***********

Модератор UOPilot
Сообщений: 9.735
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29624
Пользователь №: 11.279



Цитата
Знаковый тип или нет не имеет значения.

Имеет =)
Там где-то в или в этой теме или в схожей я тесты на типы выкладывал. Там uint оказался намного тормознее чем int и еще что-то не логичное было. Не то short или char оказались такими же, как инт или float оказалося медленее, чем double. Кароче были нежданчики.

Сообщение отредактировал DarkMaster - 5.6.2022, 22:59


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 5.6.2022, 23:04
Сообщение #513


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22550
Пользователь №: 16.156



Цитата(DarkMaster @ 5.6.2022, 22:52) *

Имеет =)
Там где-то в или в этой теме или в схожей я тесты на типы выкладывал. Там uint оказался намного тормознее чем int и еще что-то не логичное было. Не то short или char оказались такими же, как инт или float оказалося медленее, чем double. Кароче были нежданчики.



в нормальных яп - не имеет
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.6.2022, 13:31
Сообщение #514


***********

Модератор UOPilot
Сообщений: 9.735
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29624
Пользователь №: 11.279



Ты разгадал фишечку accuracy? Если делать полный перебор - тормоз получается. Если каждый раз проверять прошло ли порог совпадений - где-то до 90% accuracy быстрее, меньше - медленнее. У кнайта accuracy вообще не влияет на время выполенения... Полный перебор без ifоф просто счетчиком не сработал.

Сообщение отредактировал DarkMaster - 7.6.2022, 1:05


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 6.6.2022, 14:22
Сообщение #515


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22550
Пользователь №: 16.156



Цитата(DarkMaster @ 6.6.2022, 13:31) *

Ты разгадал фишечку accuracy? Если делать полный перебор - тормоз получается. Если каждый раз проверять прошло ли порог совпадений - где-то до 70% accuracy быстрее, меньше - медленнее. У кнайта accuracy вообще не влияет на время выполенения... Полный перебор без ifоф просто счетчиком не сработал.



Я и не гадал. Для меня это просто отношение совпавших пикселей к общему кол-ву.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.6.2022, 14:27
Сообщение #516


***********

Модератор UOPilot
Сообщений: 9.735
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29624
Пользователь №: 11.279



Цитата
Я и не гадал. Для меня это просто отношение совпавших пикселей к общему кол-ву.

Это конечно гениально) Но суть то в том, что у кнайта это делается как-то странно и шустро на низкой точности.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 6.6.2022, 20:16
Сообщение #517


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22550
Пользователь №: 16.156



Цитата(DarkMaster @ 6.6.2022, 14:27) *

Это конечно гениально) Но суть то в том, что у кнайта это делается как-то странно и шустро на низкой точности.



Ну а толку гадать то ? ) Тем более если работает странно, и возможно не всегда
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.6.2022, 20:20
Сообщение #518


***********

Модератор UOPilot
Сообщений: 9.735
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29624
Пользователь №: 11.279



Цитата
Тем более если работает странно, и возможно не всегда

Ну как бы в том то и дело, что всегда. Кнатовскому аккураси вообще пофиг на всех и вся. Причем это я тестил и много лет назад и на прошлом подходе к имиджам и сейчас. Как часы.
Цитата
Ну а толку гадать то ?

Повторить хочу. На высокие точности у меня есть шустрый вариант, но забрать скорость на низких я хочу. Пока эксперименты ни к чему не привели.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 7.6.2022, 0:48
Сообщение #519


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22550
Пользователь №: 16.156



Чем меньше точность, тем меньше точек проверяет ? Это предположение.

А вообще я как то с трудом понимаю твои месседжи.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 7.6.2022, 1:00
Сообщение #520


***********

Модератор UOPilot
Сообщений: 9.735
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29624
Пользователь №: 11.279



Цитата
Чем меньше точность, тем меньше точек проверяет ? Это предположение.

Ну у меня это так. И вполне логично от этого меняется время выполнения. Соответственно 99% - пуля, 1% - тормоз. Это логично.
У кнайта это НЕ так. У него время проверки всегда константа. Время выполнения всегда равно примерно 90% точности в моем методе.

Я предположил, что он просто создает некоторый массив счетчиков для каждой точки, а не смотрит if'ы. После прогона просто смотрит на этот массив и выбирает нужные данные. Но при таком подходе у меня получилось все достаточно медленно.

Сообщение отредактировал DarkMaster - 7.6.2022, 2:19


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

30 страниц V « < 24 25 26 27 28 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 26.6.2025, 19:53
Designed by Nickostyle