Vengineerの戯言

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

PyArmNN

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった 

Arm NN v20.05 にて、PyArmNNなるものがリリースされました。

Arm NNは、C/C++APIですが、この PyArmNN を使うと、PythonからArm NNが呼びだせるようです。

github.com

すべての computation kernel は、PyArmNNの中では実装されていなくて、すべてをArm NN Library に delegate しています。

 

Python 3.6以上でサポート。SWIG 4.x が必要ですね。

バイナリパッケージとしては、

  • x86 64: pyarmnn-21.0.0-cp36-cp36m-linux_x86_64.whl
  • Aarch 64: pyarmnn-21.0.0-cp36-cp36m-linux_aarch64.whl

があります。

サンプルコードを見ると、複数のバックエンドを指定できるようですね。

# Backend choices earlier in the list have higher preference.
preferredBackends = [ann.BackendId('CpuAcc'), ann.BackendId('CpuRef')]
opt_network, messages = ann.Optimize(network, preferredBackends, runtime.GetDeviceSpec(), ann.OptimizerOptions())

# Load the optimized network into the runtime.
net_id, _ = runtime.LoadNetwork(opt_network)

 このコミットを見ると、どうやら、NXPが協力したようですね。

Copyright が追加されています。