AndroidNDKで作成されるネイティブコードの最適化
APP_CFLAGS := -O2 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fPIC -march=armv7-a
Application.mkに上記の内容を追記すると,浮動小数点演算が高速化される.
- O2は言わずもがなの最適化オプション
- mcpu=cortex-a8でCPUの指定
- fPICで静的ライブラリの最適化
- march=armv7-aでアーキテクチャの指定
かな.間違ってるかも.
入力ノード数3,隠れノード数10*2層,出力ノード数1のニューラルネットをバックプロパゲーションで,6種類の教師信号を50000回学習するのにかかった時間が,最適化なしは約20秒,最適化ありだと約4秒になった.すごい.
参考