-
- Взять сташий байт. Прим.: в комбинаторной системе счисления. - Д.ARMоед(30.11.2011 14:42 - 07.12.2011 22:30)
- Ежели таковой вариант не устраивает, то воспользоваться введением и первым примером из -> - Д.ARMоед(07.12.2011 22:34, ссылка)
- В Excel что-то готовое должно быть из оперы "Data Analysis". Зависимость монотонная, или с перегибами (сменой знака dy/dx)? - MBedder(01.12.2011 00:47 - 00:54)
- Вход - 32 битная команда ARM7 (или подобное). На выходе - индекс массива, в котором лежит указатель на обработчик этой группы команд. - Evgeny_CD(01.12.2011 08:06)
- С этого и надо было начинать. leon_(990 знак., 01.12.2011 17:07 - 17:24)
- Если некоторые разные маски/значения предполагается обрабатывать leon_(730 знак., 01.12.2011 21:16 - 22:22)
- Идея шикарная, респект! Думаю, ее можно совместить с идеей SIMD целочисленки. И сделать некое подобие регистра последовательного приближения. Evgeny_CD(807 знак., 01.12.2011 19:33)
- за это время можно из SD-карточки достать байт:) - Vit(02.12.2011 11:25)
- Обращение к незакешированной памяти ~300тактов, к периферии... я умолкаю. За это время можно чёрта лысого пощитать (точнее их количество на кончике иглы). - =AlexD=(02.12.2011 13:35)
- Из 50 Мгц 8 битных карточек? Думаю, и не один :) - Evgeny_CD(02.12.2011 12:46 - 12:49)
- за это время можно из SD-карточки достать байт:) - Vit(02.12.2011 11:25)
- Или ещё компактнее в следующем виде: leon_(433 знак., 01.12.2011 19:15 - 19:20)
- ассоциативный массив? - Vit(01.12.2011 17:26)
- Баловался когда-то. Скольки-то битное входное слово. Комбинации могут быть какие угодно. И не по порядку. На первый взгляд нужна охеренная таблица. А когда хорошо подумал, получил следующее. Комбинаций-то не на всю разрядность. То есть, если 16 mazur(244 знак., 01.12.2011 12:31)
- Гляньте на формат команды ARM (или любой другой), ну никак не тянет на 4-х гиговую таблицу, даже при всевозможных сочетаниях кодов регистров - Chum_A(01.12.2011 09:46)
- Понятно, что если сделать И с маской, а потом "сдвинуть биты в кучу", то искомые 8 бит и получатся. Я просто решил порисечить вопрос в общем виде. - Evgeny_CD(01.12.2011 09:58 - 10:07)
- Отчасти понятно, как это сделать на практике. И с маской, сдивнуть биты в кучу, указатель на что-то по массиву размерностью 256. Реально, что стоит оптмизировать, это алгоритм сдвигания битов в кучу. Evgeny_CD(604 знак., 01.12.2011 10:37)
- Интересно, как там в SIMD (*SSE*) с логическими операциями и сдвигами? 8-way SIMD в грядущих процах сильно бы ускорил решение задачи. И даже 4 way. Evgeny_CD(174 знак., 01.12.2011 10:48)
- С целочисленкой в MMX/3DNow!/SSEx довольно неровно. С одной стороны 3 оп за такт, с другой стороны многие команды отсутствуют как класс. Но ты и не мечтай, что оно тебе что-то ускорит, т.к. SIMD это одна операция над разными =AlexD=(24 знак., 01.12.2011 11:39)
- А что, там нет команды клонировать один 32 битный операнд (как часть 128 битного слова) в 4 ячейки 128 битного операнда? Маски константны, один раз загрузил в стек и все. Результаты выгрузил, процессор видит это как массив, делает переход по Evgeny_CD(60 знак., 01.12.2011 11:47)
- Не, ну если нужно наложить разные маски на одно слово, то это можно устроить. Нельзя к примеру одновременно сдвиг и AND в одном 128битном слове. =AlexD=(286 знак., 01.12.2011 12:57)
- +1. Книжки по SSE и асму поставлны на скачивание. Разные маски на одно слово сильно ускорят. Т.е. по первой маске мы определяем команду и переходим на ее обработчик. Обработчик берет результат второй маски (а не тратит время на накладываение своей Evgeny_CD(279 знак., 01.12.2011 13:21)
- Какие ещё книжки? Лично мне хватало интеловского описания набора инструкция и поддержки интринсиков в MS VC. - =AlexD=(01.12.2011 19:20)
- +1. Книжки по SSE и асму поставлны на скачивание. Разные маски на одно слово сильно ускорят. Т.е. по первой маске мы определяем команду и переходим на ее обработчик. Обработчик берет результат второй маски (а не тратит время на накладываение своей Evgeny_CD(279 знак., 01.12.2011 13:21)
- Не, ну если нужно наложить разные маски на одно слово, то это можно устроить. Нельзя к примеру одновременно сдвиг и AND в одном 128битном слове. =AlexD=(286 знак., 01.12.2011 12:57)
- А что, там нет команды клонировать один 32 битный операнд (как часть 128 битного слова) в 4 ячейки 128 битного операнда? Маски константны, один раз загрузил в стек и все. Результаты выгрузил, процессор видит это как массив, делает переход по Evgeny_CD(60 знак., 01.12.2011 11:47)
- Это еще в MMX было, как оказывается! -> - Evgeny_CD(01.12.2011 10:56, ссылка)
- С целочисленкой в MMX/3DNow!/SSEx довольно неровно. С одной стороны 3 оп за такт, с другой стороны многие команды отсутствуют как класс. Но ты и не мечтай, что оно тебе что-то ускорит, т.к. SIMD это одна операция над разными =AlexD=(24 знак., 01.12.2011 11:39)
- Интересно, как там в SIMD (*SSE*) с логическими операциями и сдвигами? 8-way SIMD в грядущих процах сильно бы ускорил решение задачи. И даже 4 way. Evgeny_CD(174 знак., 01.12.2011 10:48)
- Как насчёт связки таблиц КОП->УСЛОВИЯ(ФЛАГИ)->РЕГИСТРЫ? Понятно - это таже "многоуровневая разборка", но и полином не на раз считается. Ну а быстрее одномерной таблицы ИМХО не выдет. - Chum_A(01.12.2011 10:10)
- краудсорсите :-) - amusin(01.12.2011 10:09)
- Раньше это "скомуниздили" называось :) - Evgeny_CD(01.12.2011 10:25)
- Раньше это называлось "субботник" :-) - Shura(01.12.2011 10:28)
- Раньше это "скомуниздили" называось :) - Evgeny_CD(01.12.2011 10:25)
- Отчасти понятно, как это сделать на практике. И с маской, сдивнуть биты в кучу, указатель на что-то по массиву размерностью 256. Реально, что стоит оптмизировать, это алгоритм сдвигания битов в кучу. Evgeny_CD(604 знак., 01.12.2011 10:37)
- +много. - SciFi(01.12.2011 09:48)
- Понятно, что если сделать И с маской, а потом "сдвинуть биты в кучу", то искомые 8 бит и получатся. Я просто решил порисечить вопрос в общем виде. - Evgeny_CD(01.12.2011 09:58 - 10:07)
- Вход 32 бита, выход 8? - mazur(01.12.2011 09:24)
- Может 7, может 10 бит. 8 взял для простоты постановки задачи. - Evgeny_CD(01.12.2011 09:25)
- С этого и надо было начинать. leon_(990 знак., 01.12.2011 17:07 - 17:24)
- Даже если не монотонно, а 256 диапазонов, то это решается двумя таблицами: amusin(425 знак., 01.12.2011 08:06)
- Вход - 32 битная команда ARM7 (или подобное). На выходе - индекс массива, в котором лежит указатель на обработчик этой группы команд. - Evgeny_CD(01.12.2011 08:06)
- Как частный случай - корень четвертой, ньютоном-раффсоном при аппаратном делении делается очень быстро. - Хитрый Китаец(01.12.2011 00:16)
- Покопайте построение хэш-функций,это академическая тема, в общем виде задача не решается, а частные случаи - вполне себе. Во всяком случае есть смешанные варианты - функция + таблица(ы). - Хитрый Китаец(01.12.2011 00:09)
- GNU gperf is a perfect hash function generator -> Может, он поможет... - Evgeny_CD(01.12.2011 08:04, ссылка)
- Вы ограничения этой хрени видели "works quickly for small to medium size data sets (around 1000 keywords)",но ход мысли правильный:) - Хитрый Китаец(01.12.2011 12:45)
- До этого места я не дочитал, но его наличие ощущал 5-й точкой :) - Evgeny_CD(01.12.2011 12:48)
- Вы ограничения этой хрени видели "works quickly for small to medium size data sets (around 1000 keywords)",но ход мысли правильный:) - Хитрый Китаец(01.12.2011 12:45)
- GNU gperf is a perfect hash function generator -> Может, он поможет... - Evgeny_CD(01.12.2011 08:04, ссылка)
- Для таких коротких начальных данных можно использовать любые потоковые шифраторы или генераторы ПСП. ASDFS(391 знак., 30.11.2011 17:08 - 17:10)
- для практической задачи можно QEMU посмотреть, а для теории - инструкции они очень сильно коррелированы, то есть 4G LUT не надо. как универсальное решение - можно хэш функцию отображающую 32 в 8 ну а это 8 указатель на некую структуру, в которой ыыыы(535 знак., 30.11.2011 14:09, )
- Задача близка к взлому шифрования, в частности, системы опознавания свой-чужой ;) И копать нужно теорию криптографии. Соответствующие органы знают о Ваших интересах, Евгений? Тук-тук - Vladimir Ljaschko(30.11.2011 11:34)
- Вспомнить карты Карно. - Сергей Борщ(30.11.2011 11:26)
- Да тяжело логические элементы (в большое количестве) на проце симулировать... Кроме того, я представляю себе, сколько времени оптимизатор будет работать... - Evgeny_CD(30.11.2011 11:27)
- Купите FPGA-ускоритель, делов-то :) - she(30.11.2011 11:39)
- Действительно, что такое 30k$ :) - это если настоящий ускоритель брать. - Evgeny_CD(30.11.2011 15:24)
- хм... - Vit(01.12.2011 00:55, ссылка)
- То совсем настоящий. Я говорил про ускорители на основе стратиксов (вложено). Evgeny_CD(01.12.2011 08:41)
- хм... - Vit(01.12.2011 00:55, ссылка)
- Действительно, что такое 30k$ :) - это если настоящий ускоритель брать. - Evgeny_CD(30.11.2011 15:24)
- А чего сложного? И, ИЛИ, НЕ, сдвиги. :-) - =AlexD=(30.11.2011 11:31)
- количество операций - пропорционально количеству "слоёв" логики. - =AlexD=(30.11.2011 11:34)
- Купите FPGA-ускоритель, делов-то :) - she(30.11.2011 11:39)
- Да тяжело логические элементы (в большое количестве) на проце симулировать... Кроме того, я представляю себе, сколько времени оптимизатор будет работать... - Evgeny_CD(30.11.2011 11:27)
- В общем случае решения нет, ИМХО. Так как по сути это разбиение множества из 2^32 элементов на 256 непересекающихся подмножеств, т.е. описать это совсем не просто (если не использовать LUT). SciFi(93 знак., 30.11.2011 11:20)
- Т.е. 4G LUT - быстрое и эффективное решение... - Evgeny_CD(30.11.2011 11:23)
- Пытаюсь увидеть, как одно следует из другого, и не могу :-) - SciFi(30.11.2011 11:24)
- Т.е. 4G LUT - быстрое и эффективное решение... - Evgeny_CD(30.11.2011 11:23)
- Посчитать контрольную сумму 4-х байтов при помощи соотв. полинома - leon_(30.11.2011 11:17)
- Осталось понять методику синтеза полинома :) - Evgeny_CD(30.11.2011 11:20)
- Взять сташий байт. Прим.: в комбинаторной системе счисления. - Д.ARMоед(30.11.2011 14:42 - 07.12.2011 22:30)