-
- С этого и надо было начинать. 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)