Vengineerの妄想

人生を妄想しています。

GraphcoreのPOPLIBS/POPARTをオープンソース化しちゃいました

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

先週、Graphcoreは POPLAR GRAPH LIBRARIES (POPLIBS) をオープンソース化しました。

今回公開されたのは、

  • POPLIBS
  • POPART
  • POPRITHMS

これによって、POPLAR SDK以下の層のソフトウェア以外はすべてオープンソースになりました。なんで、オープンソースにするのだろうか?と思いましたが、コア部分であるPOPLAR SDK以外は公開して、ユーザーの皆さんにいろいろと直してもらいたいというところでしょう。これだけのソフトウェアをメンテナンスするのって結構人が必要そうですね。

POPLIBSの中を見てみたら、

  • POPFLOAT
  • POPLIN
  • POPNN
  • POPOPS
  • POPRAND
  • POPSLVER
  • POPSPARSE
  • POPUTIL

がありました。C++コードの他に、codelets という Kernelみたいなコードも公開されています。codelets の中には、asm というディレクトリがあり、.S と .h がアセンブラっぽいです。

branch みたら、結構古いバージョンも残っていますね。

おまけ、

INTERNATIONAL WORKSHOP ON MACHINE LEARNING HARDWARE (IWMLH)での下記のGraphcoreの講演を見直しました。

GraphCore: Scalable Machine Intelligence Systems (PDF slides)

ビデオを見て分かったこと。

  • 1000人のユーザー登録
  • 4096 IPUシステムで動く
  • Deep Learning Framework 対応は、TensorFlow, PyTorch, ONNX, PaddlePaddle と 独自のPOPART
  • Developers 用には、POPLAR SDK + POPVISION TOOLS + DOCUMENTATION + APPLICATION EXAMPLES

4096 IPUシステムって、このブログで紹介した IPU-POD のことのようです。

32 Rack * 32 IPU で、4096 IPU ということ。8 IPUのDELLサーバーがざっくり100Kドルなので、5Mドル?ぐらいですかね。

vengineer.hatenablog.com