numpy で書かれたコードがいくつかあり、パフォーマンスを向上させるために Fortran に移植することを検討しています。
私が何度か行う操作の 1 つは、2 つの配列の要素ごとの積を合計することです。
sum(A*B)
融合された乗加算命令がこれに役立つようです。現在のプロセッサはこれらの命令をサポートしていないため、まだテストできません。ただし、FMA3 (Intel Haswell プロセッサ) をサポートする新しいプロセッサにアップグレードする可能性があります。
「-march=native」(または相当する ifort) を使用してプログラムをコンパイルするだけで、コンパイラ (gfortran または ifort) が SIMD 命令を賢く使用してそのコードを最適化するのに十分かどうか、誰にもわかりますか?コンパイラやコードを赤ちゃんにする必要がありますか?