powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Ассемблер - регистры MMX - команды условного перехода.
25 сообщений из 225, страница 9 из 9
Ассемблер - регистры MMX - команды условного перехода.
    #39659570
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr SharahovAR®, как движется изучение?

Без Вашей магии - никуда. ))
Подтверждаю пока лишь, что Ваши асм-версии (все) переиграли компилятор C++ на довольно старом компе с VS2008. Примерно 20 сек вместо 30 у C++ . Самые последние - 18-19 сек.
Откройте тайну: это достигнуто с использованием хвалёного интеловского тьюнера?
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39659573
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AR®Aleksandr SharahovAR®, как движется изучение?

Без Вашей магии - никуда. ))
Подтверждаю пока лишь, что Ваши асм-версии (все) переиграли компилятор C++ на довольно старом компе с VS2008. Примерно 20 сек вместо 30 у C++ . Самые последние - 18-19 сек.
Откройте тайну: это достигнуто с использованием хвалёного интеловского тьюнера?

Без. Хотя этим и заниматься не стоило, не знаю даже, почему задело.

Считая биты, очень трудно заметно ускорить функцию.
Нужны, как минимум, байты и более широкие типы.
Успехов.
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39659609
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr SharahovБез.
Значит, интуиция и немалый опыт.

Aleksandr Sharahov Хотя этим и заниматься не стоило,
В моём случае стоило. К масштабной переделке всего и вся я пока не готов морально. ) Прирост в 30-40% меня бы устроил.

Aleksandr Sharahov не знаю даже, почему задело.

Потому что мой вариант 21481207 , например, с моей точки зрения безупречен (а с Вашей в нём есть лишняя проверка - счётчика цикла, не нужная в теории), но работает почему-то долго. ))
Косметика типа замены инкремента на декремент ничего не меняет. Отказаться от использования CMOV ? От SHRD ?
В общем, гадание на процессорной гуще, да и только. Ваши же примеры - чёрная асм-магия! )
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39659613
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AR®Прирост в 30-40% меня бы устроил.

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

Так выпьем же за кибернетике!
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39659813
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr SharahovТак выпьем же за кибернетику!
И за математику!

CMOV - это красивый, но ложный след. ))
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39662539
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov 21484030
Подкину еще дровишек (191 сек на i7-7700). Решать - не перерешать )


Честно говоря, не понял идею.
Ещё не понял в Вашем примере, что означает ca(...) - приведение к типу ca?
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39662633
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AR®Aleksandr Sharahov 21484030 Подкину еще дровишек (191 сек на i7-7700). Решать - не перерешать )
Честно говоря, не понял идею.
Идея простая:
1. Вы запрограммировали работу регистра сдвига с линейной обратной связью (LFSR) в конфигурации Галуа.
2. Последовательность состояний LFSR - чисто периодическая с максимальным периодом 2^N-1.
Длина периода зависит от значения обратной связи.
3. Ваша функция определяет, дает ли указанная обратная связь максимальный период.
4. Обратная связь на K следующих тактах работы LFSR (у меня K=8) полностью определяется
последними К битами текущего состояния LFSR и может быть сохранена в XOR-таблице размером 2^K.
Т.о. вместо прогона K тактов LFSR достаточно выполнить XOR элемента таблицы со сдвинутым состоянием.
Понятно, что хотелось бы прогонять достаточно большое количество тактов за один вызов процедуры.
Понятно также, что в любом случае мы проскочим за повтор начального состояния.
4. Т.к. начальное состояние и непосредственно следующие за ним состояния в точности повторятся
после прогона полного периода LFSR, то их можно хранить в RUN-таблице и использовать для определения повтора.



AR®Ещё не понял в Вашем примере, что означает ca(...) - приведение к типу ca?
ca - это массив переменных типа DWORD, расположенных по указанному адресу (у меня по адресу переменной типа int64).

Т.о. ca(@x)[0] - это младшие 32 бита переменной x,
а ca(@x)[1] - старшие 32 бита переменной x.
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39662718
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr SharahovВы запрограммировали работу...

Честно говоря, чувствую себя немного О.Бендером в роли шахматного гроссмейстера (который не знал, что играет вполне известные специалистам партии, и что они даже имеют названия).

Независимо от этого, благодарю. Предлагаю участнику mayton отправить ранее обещанный мне коньяк Вам. ) При случае могу быть третьим, но совсем не фанат этого дела. )
Жаль, времени особо нет на эксперименты.
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39662721
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Ваша асм-версия с "зеркальным" отражением и сдвигом влево через сложение (вместо сдвига вправо) работает.
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39662722
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AR®Независимо от этого, благодарю. Предлагаю участнику mayton отправить ранее обещанный мне коньяк Вам. ) При случае могу быть третьим, но совсем не фанат этого дела. )
Жаль, времени особо нет на эксперименты.
Шарахов - молодец. Но коньяк я ему не отправлю. У меня договорённость была только с вами.
А я - чту договорённости. Могу выслать вам а вы уж сами решайте с кем пить и где.
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39662738
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AR®, mayton,

да ладно вам, забудьте )
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39662855
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov1. Вы запрограммировали работу регистра сдвига с линейной обратной связью (LFSR) в конфигурации Галуа. А, ну вот, мне не зря показалось, что где-то я это уже видел.
Там же есть известные необходимые условия для максимального периода. Для теста "все числа от ... до ..." можно будет как минимум половину сразу выкинуть (с нечетным числом единичных битов).
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39662925
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barloneвыкинуть (с нечетным числом единичных битов).

Это сделано у меня в основной программе.
LFSR, Галуа, Фибоначчи - лишь терминология.
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39663126
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39663643
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone теория
Ой, как много там теории... ) И автор употребляет какую-то специфичную символику, портящую зрение.
Раз уж с подачи Шарахова мы ввели в оборот понятие LFSR, можно для начала прочесть: https://web.archive.org/web/20060315203220/http://www.yikes.com/~ptolemy/lfsr_web/index.htm

От себя добавлю лишь, что "Type 1 or External LFSRs" - это конфигурация Фибоначчи, а "Type 2 or Internal LFSRs" - это конфигурация Галуа.
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39663680
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AR®Barlone теория
Ой, как много там теории... ) И автор употребляет какую-то специфичную символику, портящую зрение.
Раз уж с подачи Шарахова мы ввели в оборот понятие LFSR, можно для начала прочесть: https://web.archive.org/web/20060315203220/http://www.yikes.com/~ptolemy/lfsr_web/index.htm

От себя добавлю лишь, что "Type 1 or External LFSRs" - это конфигурация Фибоначчи, а "Type 2 or Internal LFSRs" - это конфигурация Галуа.Ну да, много. Только там помимо теории есть еще программка с исходниками, которая находит неприводимые полиномы за меньше чем одну секунду (и не для 33, а для 62 степени). Aleksandr Sharahov А очень хорошая теория может вообще сделать все эти пляски ненужными.
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39663809
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarloneТолько там помимо теории есть еще программка с исходниками, которая находит неприводимые полиномы за меньше чем одну секунду (и не для 33, а для 62 степени).

Видел. Только она решает немного не мою задачу. Насколько я понял, она ищет "какой-нибудь", т.е. первый подходящий многочлен для заданных степени и модуля. Мне же интересно быстро проверить любую в пределах заданной степени конфигурацию на предмет того, порождает ли такой LFSR m-последовательность.
Хотя стоит, безусловно, посмотреть, что и как там сделано.
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39663810
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя там и сказано You can also test a given polynomial for primitivity and find all primitive polynomials. , но про время выполнения этой задачи там ничего нет.
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39664136
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AR®Хотя там и сказано You can also test a given polynomial for primitivity and find all primitive polynomials. , но про время выполнения этой задачи там ничего нет.Такое же время - миллисекунды. Там еще можно получить все примитивные полиномы, но вот это уже будет дольше - их же много.
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39664162
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarloneТакое же время - миллисекунды.
Проверяли сами?

BarloneТам еще можно получить все примитивные полиномы, но вот это уже будет дольше - их же много.
Для 33 бит, по моим скромным познаниям, 211016256.

Смущает, что автор программы использует некие готовые таблицы, полученные от кого-то.
Я тоже могу взять таблицы всех LFSR'ов (их есть у меня от 3 до 32 бит включительно), и вся работа сведётся к работе с БД. :)
Но будет ли это решением задачи?
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39664207
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уточнение: 211016256 - это по модулю 2.
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39664219
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AR®BarloneТакое же время - миллисекунды.
Проверяли сами?

BarloneТам еще можно получить все примитивные полиномы, но вот это уже будет дольше - их же много.
Для 33 бит, по моим скромным познаниям, 211016256.

Смущает, что автор программы использует некие готовые таблицы, полученные от кого-то.
Я тоже могу взять таблицы всех LFSR'ов (их есть у меня от 3 до 32 бит включительно), и вся работа сведётся к работе с БД. :)
Но будет ли это решением задачи?Проверял. И там алгоритм так построен - генерируем полином, проверяем его на примитивность.
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39664231
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А из "готовых таблиц" там только таблицы разложения на множители чисел p^n-1. Для вашего случая p=2 и n<=64 таблица будет совсем маленькой.
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39664295
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone там только таблицы разложения на множители чисел p^n-1

Факторизация - не проблема. См. тему Простые числа простыми средствами
...
Рейтинг: 0 / 0
Ассемблер - регистры MMX - команды условного перехода.
    #39666734
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin."

John von Neumann, 1951.
...
Рейтинг: 0 / 0
25 сообщений из 225, страница 9 из 9
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Ассемблер - регистры MMX - команды условного перехода.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]