Vengineerの妄想

人生を妄想しています。

Tencentのncnn と fastCNN



下記を引用します。
ncnn is a high-performance neural network inference computing framework optimized for mobile platforms. ncnn is deeply considerate about deployment and uses on mobile phones from the beginning of design. ncnn does not have third party dependencies. it is cross-platform, and runs faster than all known open source frameworks on mobile phone cpu. Developers can easily deploy deep learning algorithm models to the mobile platform by using efficient ncnn implementation, create intelligent APPs, and bring the artificial intelligence to your fingertips. ncnn is currently being used in many Tencent applications, such as QQ, Qzone, WeChat, Pitu and so on.

特徴の
    ・Pure C ++ implementation, cross-platform, supports android, ios and so on
    ・ARM NEON assembly level of careful optimization, calculation speed is extremely high
    ・Sophisticated memory management and data structure design, very low memory footprint
    ・Supports multi-core parallel computing acceleration, ARM big.LITTLE cpu scheduling optimization
にあるように、

ターゲットは、arm と x86

arm の場合は、NEONで実装されていて、aarch64 と それ以外の実装があるようです。

例えば、Relu

OpenMPにて、マルチコア対応もしているようです。

x86の方は、かなり、あっさりしているんだけどね。

引用した文章の中では、mobile phone cpu とありますがら、arm の方が充実しているのかな。

もう一つ、FeatherCNN, developed by Tencent TEG AI Platform。ARM上で動く模様。

https://github.com/Tencent/FeatherCNN/wiki/Benchmarks ベンチマーク]を見ると、2GBとか4GBとかじゃ、コア数増やしてもスケールしないねん。
(RasPi 3なんか、メモリ1GBしかないから、ベンチマークすらしていない)

速くするには、コア数だけじゃなくても、メモリも増やさないと、4GB単位でね。