Vengineerの妄想(準備期間)

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

何故?日本でディープラーニング用ハードウェアを開発しないのか?


今年の2月20日に、
ブログにアップしたTensorFlow XLAの衝撃 (TensorFlow XLA関連ブログ)から
ディープラーニングフレームワークのハードウェアに近い部分をいろいろ調べてきました。

その部分については、
今年のクリスマス(2017年12月25日)に発売予定の
インターフェース、2018年2月号の掲載されるであろう記事にちょこっと書いています。

インターフェース、2018年1月号に掲載されている予告では、

最強グーグルのAI&IoT技術研究

のようです。

      あたしの記事は、TensorFlow XLA の JITに関するもので、TensorFlow r1.4に対応しています

原稿を書き終えてから、いろいろと整理してみて、感じたことは。。。

      何故、半導体開発を長年やってきた日本でディープラーニング用のハードウェアを開発しないのか? 

ということ。

SystemCが盛り上がった2000年頃は、日本の半導体開発は非常に盛り上がっていました。

どうしてなんでしょうか?

あたしが考えるには、
  ハードウェアを作っても、その上のソフトウェアである

  ・デバイスドライバ
  ・ファームウェア(ランタイム)
  ・ライブラリ
  ・コンパイラセット

 が無いと現実的には使えない。
ということ。つまり、ハードウェアはできるが、ソフトウェアというエコシステムの構築ができないから。

NVIDIAGPUがこれだけ広がったのも、CUDAのエコシステムがあるからだと思います。

そういう意味で、TensorFlow XLAを見てみるとめっちゃ面白いんですよ。
そして、その対抗として出てきた、「NNVM + TVM」もめっちゃ面白くて、
TensorFlow 以外のフレームワークは、ONNX にて、NNVM + TVM へのパスを作っていますからね。

下の表は、githubでの各フレームワークのStarsとForksの数です。
GoogleのTensorFlow + Keras に対して、その他大勢のフレームワークという感じです。

イメージ 1


        ハードウェア(Google TPU)も自前で作っている大巨人GoogleのTensorFlow + Keras
                                        vs 
        ハードウェアをほとんど作っていないその他大勢のフレームワーク

イメージ 2


ちょっと面白いのは、Intel。ハードウェアを開発しているIntelは、どんなフレームワークでも使ってもらいたい。
なので、
Intel NNP(旧Crest)では、XLAやTVMをサポートしています。また、ONNXにも参加しているんですよね。。。

あー、そうだ、Khronos groupのNNEF : Standards for Vision Processing and Neural Networksもありますが、
こちらはどちらかと言うとIPベンダーとそのIPを搭載した(する)SoC(ASSP)ベンダーの集まりって感じですかね。