inc=1 の場合の BLAS daxpy と dcopy は、単に a(:,t) = b(:,t) を使用するよりも高速ですか?

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

質問

タイトルの通りですが、Fortran で次のような操作を行っています。

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

使用するメリットはありますか daxpy そして dcopy この場合、inc=1 の BLAS からのサブルーチン?

役に立ちましたか?

解決

違いに気づくことはありません。

BLAS は Fortran 77 と互換性がなければなりませんが、確かにそのような派手な機能はありませんでした。

これらのサブルーチンは、1 行のコードをコピーして配列または行列を作成するために存在します。これは、非常に頻繁に実行されるためです。サイクルは逆行列などの他のルーチンで占有される傾向があるため、通常はコピーがパフォーマンスの問題になることはありません。

パフォーマンスが心配な場合は、合理的な方法でコーディングしてください。じゃあ私ならどうするかというと、 何度か中断して. 。これにより、時間が実際にどのように進んでいるのかがわかります。コピーに多くの時間を費やしている場合は、それが表示されます。そうでない場合は、教えてくれます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top