BLAS daxpy и dcopy, когда inc = 1, они быстрее, чем просто используя a (:, t) = b (:, t)? - PullRequest
0 голосов
/ 18 июня 2009

Ну, в названии сказано, что я делаю следующие операции на Фортране:

a(:,t) = b(:,t)
c(:,t) = x(i,t)*d(:,t)

Есть ли преимущества использования подпрограмм daxpy и dcopy от BLAS в этом случае, когда inc = 1?

1 Ответ

2 голосов
/ 18 июня 2009

Никакой разницы вы не заметите.

BLAS должен быть совместим с Fortran 77, и я уверен, что у него не было таких необычных функций.

Эти подпрограммы предназначены для копирования массива или матрицы в 1 строку кода, потому что это сделано довольно много. Циклы, как правило, запутываются в других подпрограммах, таких как обратная матрица, поэтому копирование обычно не является проблемой производительности.

Если вы беспокоитесь о производительности, просто закодируйте ее разумным способом. Тогда я бы прервал его несколько раз . Это покажет вам, где на самом деле идет время. Если он тратит много времени на копирование, это скажет вам. Если нет, он скажет вам.

...