Быстрое слияние отсортированных подмножеств чисел с плавающей запятой 4K -в L1/L2

Как быстро объединить отсортированные подмножества массива до 4096 32 -битных чисел с плавающей запятой на современном процессоре (SSE2+ )x86?

Предположим следующее:

  • Размер всего набора не более 4096 предметов
  • Размер подмножеств открыт для обсуждения, но предположим, что первоначально между 16 -256
  • Все данные, используемые при слиянии, предпочтительно должны помещаться в L1
  • . Размер кэша данных L1 составляет 32 КБ. 16К уже использовано для самих данных,так что у вас есть 16К для игры
  • Все данные уже находятся в L1 (с максимально возможной степенью достоверности)-его только что прооперировали своего рода
  • Все данные выровнены по 16 -байтам
  • Мы хотим попытаться минимизировать ветвление (по понятным причинам)

Основные критерии выполнимости :быстрее, чем в -L1 LSD сортировка по основанию.

Мне было бы очень интересно узнать, знает ли кто-нибудь разумный способ сделать это с учетом вышеуказанных параметров!:)

15
задан awdz9nld 18 July 2012 в 22:35
поделиться