Оптимизирует ли Eigen матричные операции, включающие умножения с жестко закодированными 0 элементами? - PullRequest
0 голосов
/ 15 апреля 2020

Я знаю, что Eigen фактически создает окончательную матрицу (слева в присваивании) после того, как все матричное уравнение (справа) было сведено в одну матричную операцию. Я также знаю, что есть флаги компиляции, которые позволяют использовать Eigen с оптимизированными инструкциями (которые часто зависят от поставщика процессора и архитектуры). Я хотел бы знать, может ли Eigen

  1. Определить, когда 0 (ноль) является жестко запрограммированным элементом в матрице
  2. Используйте эти знания для оптимизации работы матрицы, чтобы что он присваивает этот элемент непосредственно 0 в окончательном присвоении матрицы
  3. Выполните эту оптимизацию с помощью нескольких операций в матричном уравнении (таких как множественные сложения, умножения и скобки)

В В мире грез компьютер распознает, когда эти дополнительные операции с FPU не нужны.

Может ли Eigen выполнить эту оптимизацию? Насколько сложно было бы программировать эту оптимизацию, если она в настоящее время не реализована?

...