Vengineerの妄想(準備期間)

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

NNVM Compiler


今週は、Intel で攻めるつもりでしたが、急遽変更。

NNVM Compilerがアナウンスされました。

昨日のIntel Nervana Graphに対抗するもの。

既にディープラーニングフレームワーク競争ではなく、Deployを含めたエコシステムでの競争になっています。
そこんところ間違えると、後でひどい目になるので注意が必要です。

フレームワークは、
 ・TensorFlow
 ・Keras
 ・Caffe
 ・PyTorch
 ・MXNet

が優位で、

 ・Chainer
 ・CNTK

が劣勢

 ・Theano

は開発中で戦線離脱 
って感じです。

Caffeはアカデミックやベンチマークとして使われていくでしょう。
Keasはバックエンドとして、TensorFlow、Theano、CNTKを選択できますが、Theanoは戦線離脱。。
Pytorchは人気上昇中。

そして、MXNet は先日このブログでも紹介しましたTVMに引き続き、
今回のNVM Compilerが登場したわけです。

NNVM Compilerは、ONNXもサポートするようなので、
完全に Intel Nervana Graph の対抗馬ということになるんでしょうね。

CaffeとKerasがCoreML経由でNNVMに取り込めるのは何故?かなと思いましたが、
Appleの公式ドキュメントによると、
Caffe v1、Keras 1.2.2+、scikit-learn 0.18のモデルを取り込めるんですね。納得です。

MxNet は直接取り込めるけど、PyTorch、Caffe2、CNTKはONNX経由なんですね。
なぜなら、ONNXは Facebook(PyTorch/Caffe2) と Microsoft(CNTK)が立ち上げたんですからね。

そして、TensorFlowのサポートはないと。。。

となると、

 NVVM Compilerでサポートされるフレームワーク

 ・Keras
 ・Caffe
 ・Caffe2
 ・PyTorch
 ・MXNet
 ・CNTK

 NVVM Compilerでサポートないフレームワーク
 ・TensorFlow
 ・Chainer

PyTorchはサポートするけど、Chainerはサポートしない。
ChainerもONNXに仲間入りすればいいのかな?

TensorFlowは XLA があるのでいいのですが、
(これによると、TinyFlowを使えばTensorFlowのコードもある程度取り込めるのかな)
Chainer はどうするのでしょうか? そこがちょびっと、気になります。

てか、Kerasでモデル開発していれば、いいんじゃないかな。
だから、Kerasの人気がどんどんあがってきているんじゃないかな。
TensorFlow XLAもいずれ、Kerasからも利用できるようになるよ、きっとね。。。

P.S
Khronos groupのNNEFというのもあった。