Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

30年も前からやっていたじゃん


昨年の2月に、TensorFlow r1.0がリリースされて、XLAという技術を見つけてから、ディープラーニングフレームワークをいろいろ調べています。

 ・TensorFlow
 ・TensorFlow Lite
 ・Andorid Neural Networks API (Android 8.1)
 ・Nervana nGraph (Intel nGraph Libary)
 ・TVM
 ・Glow

あまりにも、ディープラーニングフレームワークばっかり調べているので、
同僚に、とうとう、「フレームワーク」おたくの称号を。。。。(笑)

ディープラーニングフレームワークの中で、モデル(グラフ)をどんどん変換してきます。
いろんなフレームワークソースコードを見てみると、基本的には同じことをやっているんですよね。

と、ふと、思ったのですが、グラフの変換って、

 1)、デジタル回路のネットリスト変換
 2)、半導体の論理合成 (テクノロジーマッピング)

と同じじゃん。

例えば、

A)、ONNXモデルをバックエンドでのOpに一対一で変換するのは、
デジタル回路のネットリスト変換と同じ。

B)、ONNXモデルをバックエンドのOpを上手く使って最適化したモデルに変換するのは、
半導体の論理合成(テクノロジーマッピング)と同じ。

そう考えると、景気やファッションと同じで、繰り返されるということですね。(笑)