Транспонировать в BLAS или сделать это самому сначала? - PullRequest
4 голосов
/ 14 сентября 2010

Я собираю какой-то научный код в Фортране 77, и я спорю о том, что будет быстрее.

По сути, у меня есть матрица MxN, назовем ее A. M больше, чем N. Позже в коде мне нужно умножить транспонирование (A) на несколько векторов.

Мой вопрос: будет ли быстрее взять A, транспонировать его самостоятельно и сохранить это, или, когда я вызываю BLAS, просто присвоить ему флаг транспонирования?

Спасибо!-Patrick

1 Ответ

6 голосов
/ 14 сентября 2010

мое внутреннее чувство подсказывает мне использовать транспонированный флаг.в этом случае вы делаете много точечных продуктов с шагом в один шаг.

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

...