Vengineerの妄想(準備期間)

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

GraphcoreのPopARTを覗いてみる

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

GraphcoreのSoftwareは、Poplar

www.graphcore.ai

下図のURLで引用しています。

POPLARは、

  • XLA と PopART
  • Graph Libraries (PopLIBS)
  • Graph Compiler
  • Graph Engine

から構成されているようです。

https://www.graphcore.ai/hs-fs/hubfs/Poplar%20(1).jpg?width=2053&height=769&name=Poplar%20(1).jpg

 

では、PopARTを github にて公開されている example の中から見つけてみまっす。

ResNetのサンプルコード。PopART library ONNX builderを使うみたいです。

popart.Builder()

にて、モデルビルダーを生成して、

builder.aiOnnx.XXX

にて、各Opを生成して、モデルを組み立てていくようです。aiOnnx は、

  • constant
  • add
  • mul
  • matmul
  • pad
  • conv
  • maxpool
  • argmax
  • relu
  • softmax
  • lstm

などがあるようです。

  • addInputTensor

もあります。

 aiGraphcoreには、

  • subsample (ResNet用?)
  • groupnormalization

というのもありますね。

 

また、カスタムOpも定義できるようですね。ただし、C++コードです。Onnxベース。