Source: http://marsee101.blog19.fc2.com/blog-entry-3194.html
”gcc の最適化とNEON 最適化ライブラリを使用した時の性能”の続き。
”gcc の最適化とNEON 最適化ライブラリを使用した時の性能”の時は、gcc 4.6 でコンパイルしていたが、今回は gcc 4.8 にアップグレードして同様にラプラシアンフィルタの異なるソフトウェアをコンパイルして実行時間を比較してみた。
使用したラプラシアンフィルタのソフトウェアの詳細については、”gcc の最適化とNEON 最適化ライブラリを使用した時の性能”を参照のこと。
最初は、 laplacian_filter1 を -O オプション無し、-O1、-O2、-O3、-Os、NEON最適化ライブラリ・オプションを付けてコンパイルし、実行してラプラシアンフィルタ処理のみの経過時間を測定した。
次に、 laplacian_filter2 を -O オプション無し、-O1、-O2、-O3、-Os、NEON最適化ライブラリ・オプションを付けてコンパイルし、実行してラプラシアンフィルタ処理のみの経過時間を測定した。
laplacian_filter3 を -O オプション無し、-O1、-O2、-O3、-Os、NEON最適化ライブラリ・オプションを付けてコンパイルし、実行してラプラシアンフィルタ処理のみの経過時間を測定した。
laplacian_filter4 を -O オプション無し、-O1、-O2、-O3、-Os、NEON最適化ライブラリ・オプションを付けてコンパイルし、実行してラプラシアンフィルタ処理のみの経過時間を測定した。
NEON最適化ライブラリ・オプションなのだが、-O3 を付けてコンパイルしていた。これも -O3 が適当かどうかを調べるために -O オプション無し、-O1、-O2、-O3、-Os オプションを付けてラプラシアンフィルタ処理時間を測定した。
laplacian_filter1 の場合の結果を下に示す。
laplacian_filter2 の場合の結果を下に示す。
laplacian_filter3 の場合の結果を下に示す。
laplacian_filter4 の場合の結果を下に示す。
次に、-mfloat-abi=hard オプションを付けた時の各ラプラシアンフィルタ・ソフトウェアをコンパイルした時の結果を示す。
最後に、上のコマンドから、-ftree-vectorize オプションを取り除いた時の各ラプラシアンフィルタ・ソフトウェアをコンパイルした時の結果を示す。
AXI4-Stream版 laplacian filterのCソースコードの違いと最適化オプションの違いによる処理時間の表を下に示す。gcc 4.6 と gcc 4.8 の処理時間も書いた。
gcc 4.6 と gcc 4.8 では、細かな違いはあるが大きな性能差や傾向の差は無いようだ。
”gcc の最適化とNEON 最適化ライブラリを使用した時の性能”の続き。”gcc の最適化とNEON 最適化ライブラリを使用した時の性能”の時は、gcc 4.6 でコンパイルしていたが、今回は gcc 4.8 にアップグレードして同様にラプラシアンフィルタの異なるソフトウェアをコンパイルして実行時間を比較してみた。使用したラプラシアンフィルタのソフトウェアの詳細については、”gcc の最適化とNEON 最適化ライブラリを使用した時の性能”を参照