BLAS daxpy et dcopy quand inc = 1, sont-ils plus rapides que d’utiliser simplement a (:, t) = b (:, t)?

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

Question

Bien, le titre le dit, je fais le genre d'opérations suivant à Fortran:

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

Y a-t-il des avantages à utiliser les sous-routines daxpy et dcopy de BLAS dans ce cas où inc = 1?

Était-ce utile?

La solution

Aucune différence que vous ne remarquerez jamais.

BLAS doit être compatible avec Fortran 77, je suis sûr qu’il n’avait pas ces fonctionnalités sophistiquées.

Ces sous-routines sont là pour créer une ligne de code permettant de copier un tableau ou une matrice, car cela en fait beaucoup. Les cycles ont tendance à se perdre dans d'autres routines, comme l'inverse de la matrice, de sorte que la copie n'est généralement pas un problème de performances.

Si les performances vous préoccupent, codez-les de manière raisonnable. Ensuite, je ferais l'interrompre quelques fois . Cela vous montrera où le temps passe réellement. S'il passe beaucoup de temps à copier, il vous le dira. Sinon, il vous le dira.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top