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

StackOverflow https://stackoverflow.com/questions/1010891

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top