@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそ、すべては、SystemC v0.9公開から始まった
Alibabaもせめてきているから9か月。
そこで最後の紹介した Alibaba の ディープ・ラーニングフレームワーク MNN の
論文がアップされていました。MNN は推論用ですね。
この論文では、Model側 を upstream、Device 側を downstream と呼んでいるっぽ。
1)、Caffe、TensorFlow、PyTorch、ONNXのモデルを MNN のフォーマットに変換。
2)、オフラインのグラフ最適化 (モデル圧縮)
3)、最適化後のモデルから計算グラフと Backend Abstraction (バックエンドの情報) から Pre-inference にて、最適な計算スキームを決める
4)、デバイス上で推論
3)での、Pre-inference が MNN でのポイント。。。特に、MNNでは、CPUとGPUを上手く組み合わせて使う感じ。CPUでは、ARMとARM82、GPUではMetal、Vulkan、OpenCL、OpenGL ES。CPUとGPUのリソースに対して、最適化後のモデルにそれぞれのリソースで利用できる最適なもの(OPの実装)を使うというのがみそ。。
ARM82をサポートしたのは、半精度をサポートしているからっぽい。
Graph実行だけではなく、多少のComputerVisionもサポート。
MNNではまだ完全自動化(Automated Search)ではなく、Semi-automated Search の模様。
論文の後半では、
・NCNN (Tencent)
・MACE (Xiaomi)
・CoreML (Apple)
・TensorFlow Lite (Google)
・MNN (Alibaba)
での、MobileNet-v1、SqueezeNet-v1.1、ResNet-19 でのCPUとGPUでの推論時間の比較をやっています。
これを見ると、MNN が速いというより、TensorFlow Lite がめっちゃ遅いのが分かります。CPU実行では、特にAndroidのMate 20 (Huawei) とMI6 (Xiaomi)。GPU実行では、TensorFlowのGPUは、OpenGL ES。
TensorFlow Lite。TensorFlowからサクッと持っていけて便利だけど、CPUもGPUも速くない。何故?遅いのだろうか。。。