AndroidNDKで作成されるネイティブコードの最適化

APP_CFLAGS := -O2 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fPIC -march=armv7-a

Application.mkに上記の内容を追記すると,浮動小数点演算が高速化される.

  • O2は言わずもがなの最適化オプション
  • mcpu=cortex-a8でCPUの指定
  • fPICで静的ライブラリの最適化

かな.間違ってるかも.

入力ノード数3,隠れノード数10*2層,出力ノード数1のニューラルネットバックプロパゲーションで,6種類の教師信号を50000回学習するのにかかった時間が,最適化なしは約20秒,最適化ありだと約4秒になった.すごい.

参考

Android NDKのMakefile最適化オプション