BLAS daxpy e DCOPY quando inc = 1, eles são mais rápidos do que apenas usando um (:, t) = b (:, t)?

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

Pergunta

Bem, o título diz, eu estou fazendo seguinte tipo de operações em Fortran:

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

Existe algum benefícios de usar daxpy e dcopy sub-rotinas de BLAS neste caso, onde inc = 1?

Foi útil?

Solução

Não há diferença você nunca aviso prévio.

BLAS tem que ser compatível com Fortran 77, que eu tenho certeza que não tem essas características extravagantes.

Essas sub-rotinas estão lá para fazer array ou matriz copiando uma linha de código, porque ele é feito muito. Ciclos tendem a ficar monopolizou em outras rotinas, como matriz inversa, de modo a copiar não é geralmente um problema de desempenho.

Se você está preocupado com o desempenho, o código simplesmente-lo de uma forma razoável. Então o que eu gostaria de fazer é interrompê-la algumas vezes . Isto irá mostrar-lhe onde o tempo está realmente acontecendo. Se for passar muito tempo em copiar, ele vai dizer. Se não, ele vai dizer.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top