Эффективное вычисление Kullback–Leibler

#c #performance #math

#c #Производительность #математика

Вопрос:

Я стремлюсь эффективно реализовать расхождение KL в C . (Пока только процессор).

Очень похоже на AES или FTT (быстрое преобразование Фурье), при котором использование общей функции привело к оптимизации аппаратного уровня (Intel AES и Intel FTT). Есть ли что-нибудь подобное для естественного журнала или эффективности чуть более высокого уровня (ASM / C), которые предотвращают узкие места успешного выполнения многих функций естественного журнала (если они существуют)?

Те же примеры использования:

 .Many parallel and independent node executions; each one performing 20~ KL calculations from localized (not shared or pointer reffed) memory.

.Scheduled KL: executing in stepped-parallel where the hardware is setup expecting uses of for example tables (assuming tables are used at this lower level - AES implement ions indicated this is a high probability) .
  

Я нашел возможный кандидат, но я не уверен: ALTFP_LOG

Комментарии:

1. Насколько точным вы хотите, чтобы журнал был? Существует компромисс между точностью и скоростью, особенно если вы вручную реализуете журнал с помощью встроенных функций SSE / AVX

2. Мне нужно всего около 6dp. Вообще не требует двойной точности. KL будет использоваться для оценки стабильности разницы между сигналами. Идея заключается в том, что если значение достигает минимального / максимального значения, требуемое разрешение может быть скорректировано (U-образная кривая зависит от частоты использования).

Ответ №1:

Вы можете использовать SSE instructions для параллельного вычисления логарифма многих значений. Но сможете ли вы на самом деле использовать эти инструкции, в значительной степени зависит от того, как остальные вычисления, которые вы собираетесь выполнять, зависят от вычисляемых вами логарифмов, поэтому дать более конкретный ответ невозможно.

Комментарии:

1. Спасибо за информацию. Я постараюсь добавить примеры к исходному вопросу, я приму ваш ответ, если не будет исключения.

2. Я принял этот ответ после дальнейшего изучения. Наиболее примечательно: gruntthepeon.free.fr/ssemath