FC2カウンター FPGAの部屋 gcc と clang で -Ofast 最適化オプションを付けた場合の実行速度

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

gcc と clang で -Ofast 最適化オプションを付けた場合の実行速度

gcc-4.6, gcc-4.8, clang-3.4 とコンパイル時の最適化オプションによる速度の違いを検証してきた。
今回は、最適化オプションの -Ofast を gcc-4.6, gcc-4.8, clang-3.4 で試してみた。

最初は gcc-4.6 の -Ofast のみから。
NEON_40_150714.png

gcc-4.6 の自動ベクトル化の -Ofast
NEON_41_150714.png

gcc-4.8 の -Ofast のみ。
NEON_42_150714.png

gcc-4.8 の自動ベクトル化の -Ofast
NEON_43_150714.png

clang-3.4 でスクリプトを投入した。そのスクリプトを下に示す。

clang -Ofast laplacian_filter.c -o laplacian_filter1_Of
clang -Ofast laplacian_filter2.c -o laplacian_filter2_Of
clang -Ofast laplacian_filter3.c -o laplacian_filter3_Of
clang -Ofast laplacian_filter4.c -o laplacian_filter4_Of
clang -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard -Ofast laplacian_filter.c -o laplacian_filter1_nf
clang -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard -Ofast laplacian_filter2.c -o laplacian_filter2_nf
clang -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard -Ofast laplacian_filter3.c -o laplacian_filter3_nf
clang -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard -Ofast laplacian_filter4.c -o laplacian_filter4_nf
./laplacian_filter1_Of
./laplacian_filter2_Of
./laplacian_filter3_Of
./laplacian_filter4_Of
./laplacian_filter1_nf
./laplacian_filter2_nf
./laplacian_filter3_nf
./laplacian_filter4_nf


その結果を下に示す。
NEON_44_150714.png

gcc-4.6 でコンパイルした実行ファイルがNEON命令を使用しているか?を調べた。値が 0 でない実行ファイルがNEON命令を使用している。
NEON_45_150714.png

gcc-4.8 でコンパイルした実行ファイルがNEON命令を使用しているか?を調べた。値が 0 でない実行ファイルがNEON命令を使用している。
NEON_46_150714.png

clang-3.4 でコンパイルした実行ファイルがNEON命令を使用しているか?を調べた。値が 0 でない実行ファイルがNEON命令を使用している。
NEON_47_150714.png

gcc-4.6 と gcc-4.8 の -Ofast オプションのラプラシアンフィルタのみの処理時間を表に追加した。-Ofast は -O3 とほとんど変わらないようだ。
NEON_48_150714.png

clang-3.4 の -Ofast オプションのラプラシアンフィルタのみの処理時間を表に追加した。-Ofast は やはり -O3 とほとんど変わらないようだ。
NEON_49_150714.png
  1. 2015年07月14日 20:36 |
  2. Zynq
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/3199-5ca99f44
この記事にトラックバックする(FC2ブログユーザー)