BLAS daxpy и dcopy, когда inc = 1, они быстрее, чем просто используя a (:, t) = b (:, t)?
-
06-07-2019 - |
Вопрос
Ну, в заголовке сказано, я выполняю следующие операции на Фортране:
a(:,t) = b(:,t)
c(:,t) = x(i,t)*d(:,t)
Есть ли какие-либо преимущества использования подпрограмм daxpy
и dcopy
из BLAS в этом случае, где inc = 1?
Решение
Никакой разницы вы бы никогда не заметили.
BLAS должен быть совместим с Fortran 77, и я уверен, что у него не было этих причудливых функций.
Эти подпрограммы предназначены для копирования массива или матрицы в 1 строку кода, потому что это сделано довольно много. Циклы, как правило, запутываются в других подпрограммах, таких как обратная матрица, поэтому копирование обычно не является проблемой производительности.
Если вы беспокоитесь о производительности, просто закодируйте ее разумным способом. Тогда я бы прервал его несколько раз . Это покажет вам, где на самом деле идет время. Если он тратит много времени на копирование, это скажет вам. Если нет, он скажет вам.