inc=1 の場合の BLAS daxpy と dcopy は、単に a(:,t) = b(:,t) を使用するよりも高速ですか?
-
06-07-2019 - |
質問
タイトルの通りですが、Fortran で次のような操作を行っています。
a(:,t) = b(:,t)
c(:,t) = x(i,t)*d(:,t)
使用するメリットはありますか daxpy
そして dcopy
この場合、inc=1 の BLAS からのサブルーチン?
解決
違いに気づくことはありません。
BLAS は Fortran 77 と互換性がなければなりませんが、確かにそのような派手な機能はありませんでした。
これらのサブルーチンは、1 行のコードをコピーして配列または行列を作成するために存在します。これは、非常に頻繁に実行されるためです。サイクルは逆行列などの他のルーチンで占有される傾向があるため、通常はコピーがパフォーマンスの問題になることはありません。
パフォーマンスが心配な場合は、合理的な方法でコーディングしてください。じゃあ私ならどうするかというと、 何度か中断して. 。これにより、時間が実際にどのように進んでいるのかがわかります。コピーに多くの時間を費やしている場合は、それが表示されます。そうでない場合は、教えてくれます。
所属していません StackOverflow