8

BLAS レベル 1 APIのほとんどは、Fortran 9x+ のベクトル化された代入と組み込み手続きを使用して簡単に書くことができます。

インテル Fortranなどの最新の最適化コンパイラーと正しいターゲット固有のコンパイラー最適化オプションを使用していると仮定すると、代わりに BLAS レベル 1 プロシージャー (インテル MKLやその他の高速 BLAS 実装など) を使用することによるパフォーマンス上の利点はありますか?

存在する場合、これらの利点が現れるときの典型的なベクター サイズはどれくらいですか?

4

1 に答える 1

9

場合によります。以前に Intel コンパイラでこれをテストしたところ、驚くべき結果が得られました。たとえば、DOT_PRODUCTFortran と BLAS の実装では、問題のサイズに基づいて異なる傾向が見られました。配列の要素数が増えるにつれて、BLAS は組み込みよりも優れたものになりました。しかし、問題のサイズが小さい場合、組み込み関数の方がはるかに高速でした。

ユースケースについて、一方を他方よりも優れたものにするために必要なカットオフサイズを実際に測定し、実際に if ステートメントを使用してどちらを呼び出すかを決定しました。これらの結果を共有することはできませんが、自分でテストすることをお勧めします。BLAS を使用する利点はまだあります。

于 2012-10-16T22:51:31.850 に答える