Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovAR®, как движется изучение? Без Вашей магии - никуда. )) Подтверждаю пока лишь, что Ваши асм-версии (все) переиграли компилятор C++ на довольно старом компе с VS2008. Примерно 20 сек вместо 30 у C++ . Самые последние - 18-19 сек. Откройте тайну: это достигнуто с использованием хвалёного интеловского тьюнера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2018, 01:45 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®Aleksandr SharahovAR®, как движется изучение? Без Вашей магии - никуда. )) Подтверждаю пока лишь, что Ваши асм-версии (все) переиграли компилятор C++ на довольно старом компе с VS2008. Примерно 20 сек вместо 30 у C++ . Самые последние - 18-19 сек. Откройте тайну: это достигнуто с использованием хвалёного интеловского тьюнера? Без. Хотя этим и заниматься не стоило, не знаю даже, почему задело. Считая биты, очень трудно заметно ускорить функцию. Нужны, как минимум, байты и более широкие типы. Успехов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2018, 02:04 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovБез. Значит, интуиция и немалый опыт. Aleksandr Sharahov Хотя этим и заниматься не стоило, В моём случае стоило. К масштабной переделке всего и вся я пока не готов морально. ) Прирост в 30-40% меня бы устроил. Aleksandr Sharahov не знаю даже, почему задело. Потому что мой вариант 21481207 , например, с моей точки зрения безупречен (а с Вашей в нём есть лишняя проверка - счётчика цикла, не нужная в теории), но работает почему-то долго. )) Косметика типа замены инкремента на декремент ничего не меняет. Отказаться от использования CMOV ? От SHRD ? В общем, гадание на процессорной гуще, да и только. Ваши же примеры - чёрная асм-магия! ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2018, 10:17 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®Прирост в 30-40% меня бы устроил. Только до тех пор, пока вы ограничиваетесь 33 битами. Хотя, думаю, конкретно 33 бита можно ускорить чуть изменив 32-битную функцию. А пойдете дальше - и прирост уже не устроит. В то время как хорошая теория легко дает ускорение на 1.5 порядка. С ассемблером, наверно, можно и чуть больше отжать. А очень хорошая теория может вообще сделать все эти пляски ненужными. В зависимости от решаемой задачи. Так выпьем же за кибернетике! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2018, 10:33 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovТак выпьем же за кибернетику! И за математику! CMOV - это красивый, но ложный след. )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2018, 18:31 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov 21484030 Подкину еще дровишек (191 сек на i7-7700). Решать - не перерешать ) Честно говоря, не понял идею. Ещё не понял в Вашем примере, что означает ca(...) - приведение к типу ca? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 15:48 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 18:33 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovВы запрограммировали работу... Честно говоря, чувствую себя немного О.Бендером в роли шахматного гроссмейстера (который не знал, что играет вполне известные специалистам партии, и что они даже имеют названия). Независимо от этого, благодарю. Предлагаю участнику mayton отправить ранее обещанный мне коньяк Вам. ) При случае могу быть третьим, но совсем не фанат этого дела. ) Жаль, времени особо нет на эксперименты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 22:03 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
P.S. Ваша асм-версия с "зеркальным" отражением и сдвигом влево через сложение (вместо сдвига вправо) работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 22:06 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®Независимо от этого, благодарю. Предлагаю участнику mayton отправить ранее обещанный мне коньяк Вам. ) При случае могу быть третьим, но совсем не фанат этого дела. ) Жаль, времени особо нет на эксперименты. Шарахов - молодец. Но коньяк я ему не отправлю. У меня договорённость была только с вами. А я - чту договорённости. Могу выслать вам а вы уж сами решайте с кем пить и где. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 22:06 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®, mayton, да ладно вам, забудьте ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 23:55 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov1. Вы запрограммировали работу регистра сдвига с линейной обратной связью (LFSR) в конфигурации Галуа. А, ну вот, мне не зря показалось, что где-то я это уже видел. Там же есть известные необходимые условия для максимального периода. Для теста "все числа от ... до ..." можно будет как минимум половину сразу выкинуть (с нечетным числом единичных битов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2018, 09:35 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Barloneвыкинуть (с нечетным числом единичных битов). Это сделано у меня в основной программе. LFSR, Галуа, Фибоначчи - лишь терминология. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2018, 11:34 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2018, 15:35 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
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" - это конфигурация Галуа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 14:04 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
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 А очень хорошая теория может вообще сделать все эти пляски ненужными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 15:44 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
BarloneТолько там помимо теории есть еще программка с исходниками, которая находит неприводимые полиномы за меньше чем одну секунду (и не для 33, а для 62 степени). Видел. Только она решает немного не мою задачу. Насколько я понял, она ищет "какой-нибудь", т.е. первый подходящий многочлен для заданных степени и модуля. Мне же интересно быстро проверить любую в пределах заданной степени конфигурацию на предмет того, порождает ли такой LFSR m-последовательность. Хотя стоит, безусловно, посмотреть, что и как там сделано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 20:30 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Хотя там и сказано You can also test a given polynomial for primitivity and find all primitive polynomials. , но про время выполнения этой задачи там ничего нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 20:35 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®Хотя там и сказано You can also test a given polynomial for primitivity and find all primitive polynomials. , но про время выполнения этой задачи там ничего нет.Такое же время - миллисекунды. Там еще можно получить все примитивные полиномы, но вот это уже будет дольше - их же много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2018, 12:28 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
BarloneТакое же время - миллисекунды. Проверяли сами? BarloneТам еще можно получить все примитивные полиномы, но вот это уже будет дольше - их же много. Для 33 бит, по моим скромным познаниям, 211016256. Смущает, что автор программы использует некие готовые таблицы, полученные от кого-то. Я тоже могу взять таблицы всех LFSR'ов (их есть у меня от 3 до 32 бит включительно), и вся работа сведётся к работе с БД. :) Но будет ли это решением задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2018, 12:53 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Уточнение: 211016256 - это по модулю 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2018, 13:35 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
AR®BarloneТакое же время - миллисекунды. Проверяли сами? BarloneТам еще можно получить все примитивные полиномы, но вот это уже будет дольше - их же много. Для 33 бит, по моим скромным познаниям, 211016256. Смущает, что автор программы использует некие готовые таблицы, полученные от кого-то. Я тоже могу взять таблицы всех LFSR'ов (их есть у меня от 3 до 32 бит включительно), и вся работа сведётся к работе с БД. :) Но будет ли это решением задачи?Проверял. И там алгоритм так построен - генерируем полином, проверяем его на примитивность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2018, 13:54 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
А из "готовых таблиц" там только таблицы разложения на множители чисел p^n-1. Для вашего случая p=2 и n<=64 таблица будет совсем маленькой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2018, 14:04 |
|
||
|
Ассемблер - регистры MMX - команды условного перехода.
|
|||
|---|---|---|---|
|
#18+
Barlone там только таблицы разложения на множители чисел p^n-1 Факторизация - не проблема. См. тему Простые числа простыми средствами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2018, 15:14 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39659613&tid=1340094]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
179ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 279ms |
| total: | 562ms |

| 0 / 0 |
