人気ブログランキング | 話題のタグを見る

雑多な趣味の記録帳

tom01h.exblog.jp

Cora の tiny-dnn をプロファイル

前に zero-riscy に BNN 命令を追加したときの失敗 を繰り返さないために、今回はプロファイルをとってみます。
といっても何等かツールを使うわけでもなく、せっかくの綺麗なプログラムをグローバル変数で汚しています。

使っているネットを再度挙げると↓の感じです。
nn << conv(28, 28, 5, 1, 6, padding::valid, true, 1, 1, backend_type)
<< max_pool(24, 24, 6, 2)
<< relu()
<< conv(12, 12, 5, 6, 16, padding::valid, true, 1, 1, backend_type)
<< max_pool(8, 8, 16, 2)
<< relu()
<< conv(4, 4, 4, 16, 10, padding::valid, true, 1, 1, backend_type)
<< softmax(10);

階層の種類ごと、順伝搬と逆伝搬の時間を計ってみました。
pool forward 5549ms elapsed
activ forward 331ms elapsed
cov forward 72249ms elapsed
activ back 588ms elapsed
pool back 2120ms elapsed
cov back 155182ms elapsed
Epoch 1/1 finished. 241.665s elapsed.

グラフにするとこんな感じです。
Cora の tiny-dnn をプロファイル_f0054075_21460647.png

by tom01h | 2018-07-14 22:59