雑多な趣味の記録帳

tom01h.exblog.jp

2018年 11月 12日 ( 1 )

tiny-dnn アクセラレータを逆方向傾き伝搬に対応する1

これまでは、DMA 版 tiny-dnn アクセラレータは順方向伝搬にしか対応していませんでした。
まだまだ高速化の余地は残っていますが、細かい調整の前に逆方向も高速化したいと思います。
今まで乗っけてきたグラフでは、逆方向はオレンジ色で 1番たくさんの時間がかかっています。
でも実はこの部分は大きく 2つの処理に分割でき、多分ほぼ 2等分だと思っています(計っていませんが…)。
それぞれの処理は、特徴量の傾きの逆方向伝搬とウェイトの傾きの計算です。
結局のところ畳み込みの計算時間は、大雑把に順方向を含めて 3等分だと思っています(計っていませんが…)。

今回は特徴量の傾きの逆方向伝搬に対応したいと思います。
まずは C言語のレベルで計算順序の入れ替えをしました。
この段階で、ハードウェアの変更が少なくて済む方法を探ります。
もしも細かいことを知りたいと思う方がいるなら、 sim_lv1 ブランチのコミットを追いかけてみると理解できるかも…
結構派手に変更していますが、順番を変えただけです。多分…
ここでストライド 1以外が対応不能になりました。(まぁ、順方向も対応していなかったけど、この変更で決定的に難しくなりました。)

そして RTL を書き始めましたが、アドレス生成部分が想像以上に難しいですねぇ。
C 言語レベルでかなり改造しておいたはずなのに…

[PR]
by tom01h | 2018-11-12 23:22 | Trackback | Comments(0)