2012-10-16 10 views
8

BLAS Level 1 APIのほとんどは、Fortran 9x +ベクトル化割り当てと組み込みプロシージャを使用して簡単に直接書くことができます。BLASレベル1の手順は現代のFortranコンパイラにはまだ関係していますか?

あなたはIntel Fortranのように、近代的な最適化コンパイラを使用していると仮定すると、正しいターゲット固有のコンパイラの最適化オプション、代わりに、BLASレベル1の手順を使用してから、任意のパフォーマンス上のメリットがあり、Intel MKLまたは他の高速BLASの実装から言いますか?

これらのメリットが現れたときの典型的なベクターサイズは何ですか?

答えて

9

です。以前はインテルのコンパイラでこれをテストし、驚くべき結果を出しました。たとえば、FortranとBLASの実装によるDOT_PRODUCTでは、問題のサイズに基づいて異なる傾向がありました。配列内の要素の数が多くなると、BLASは組み込み関数よりも良くなりました。しかし、問題のサイズが小さい場合、組み込み関数は非常に高速でした。

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

関連する問題