Быстро вид в регистре байтов?

Я описал ответ на подобный вопрос здесь .

Это работает удивительно хорошо, когда Вы вынуждены продолжить продвигать изменения в центральный репозиторий CVS.

6
задан starblue 17 October 2009 в 07:58
поделиться

3 ответа

Найдите эффективную сеть сортировки , где N = количество байтов, которые вам нужны (4 или 16). Преобразуйте это в последовательность инструкций сравнения и обмена. (Однако для N = 16 это будет больше, чем «несколько».)

5
ответ дан 8 December 2019 в 13:47
поделиться

Нашел! Это в статье Фуртака, Амарала и Невядомского «Использование регистров SIMD и инструкций для включения параллелизма на уровне инструкций в алгоритмах сортировки». Раздел 4.

Он использует 4 регистра SSE, имеет 12 шагов и выполняет 19 инструкций, включая загрузку и сохранение.

В той же статье есть отличная работа по динамическому созданию сетей сортировки с помощью SIMD.

7
ответ дан 8 December 2019 в 13:47
поделиться

Все алгоритмы сортировки требуют «перестановки» значений из одного места в другое. Поскольку вы говорите о буквальном регистре ЦП, это означает, что для любой сортировки потребуется другой регистр для использования в качестве временного места для хранения заменяемых байтов.

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

1
ответ дан 8 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: