【Raspberry Pi 2】 NEON/VFPv4とUnixBenchの実験

Raspberry Pi 2のCPUコアはCortex-A7ベースとなっており、旧モデルにはなかったNEONというSIMD命令が使用できるようになっています。
また、浮動小数点演算コプロセッサが旧モデルのVFPv2からVFPv4に進化しています。(※)
※正確にはVFPはVector Floating Pointの略で、ベクタ演算浮動小数点コプロセッサなのですが、ベクタモードは使いにくくあまり使われなかったため、現在はNEONを使うように推奨されているようで、実体としてVFPv2やVFPv4は(スカラ)浮動小数点演算コプロセッサとして使われています。

gccコンパイラはNEONおよびVFPv4をサポートしているようですので、試しにUnixBenchをNEON/VFPv4を有効にしてコンパイルし、実行してみました。

あ、前の記事:【Raspberry Pi 2】 OSインストールとベンチマークの続きになります。


Makefileの74行目にある、OPTIONに以下を追加します。

追加後は以下のようになります。

以下にてコンパイルします。

で、実行したところ、結果は誤差程度で変わりませんでした。

現時点のRaspbianにて標準となっているgcc 4.6では、neon-vfpv4のオプションは効いていないという情報もあり、gcc-4.8にて試してみました。

以下にてインストールします。

バージョンを確認します。

UnixBenchのMakefile 56行目を以下のように変更します。

先ほど変更したMakefileの74行目にあるOPTIONを以下のように変更します。

以下にてコンパイルします。

で、実行したところ、結果は変化なしでした。

NEONは単精度浮動小数点のSIMD命令ですので、UnixBenchでは使われる場面がないかもしれません。
Double-Precision Whetstoneは倍精度ですし。
VFPv4の方はレジスタ本数は増えていますが、演算性能は変わらないのかも。
gccがVFPv4をうまく使ってくれていないという可能性もあります。ビデオエンコード・デコードのようなSIMDが効きやすいアプリか、SIMDを意識したコードになっていないとパフォーマンスは向上しないのかな?

以上、あまりおもしろい結果にはなりませんでしたが、記録として記載しました。



本格派対局将棋 ぴよ将棋
本格派対局将棋アプリ ぴよ将棋
[Android] [iOS]

かわいい「ひよこ」と対局する将棋アプリ。かわいいけどAIは本格派!
対局後の検討機能や棋譜管理機能も充実!棋譜解析機能も搭載!

コメントを残す

メールアドレスが公開されることはありません。