Vengineerの妄想

人生を妄想しています。

Graphcore の TensorFlow XLA コード

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

昨日のブログで、Graphcore の IPU が ホストのメモリを使う addRemoteBuffer を紹介しました。その中で、GraphcoreのTensorFlowでも使っていたのですが、その使っていた部分のコードは、XLA の中だったのです。

ということで、今日は、Graphcore の TensorFlow XLA のコードを見ていきます。

コードは、ここ

3rd party XLA devices のディレクトリにあります。最新のTensorFlowにも同じディレクトリがあります。このディレクトリに XLA のコードがあるのを知らなかったのです。

ディレクトリには、poplar というディレクトリがあり、その下にいろいろなコードがあります。

 

 メモとして、

 

Kernelのディレクトリを見たら、

  • popfloat
  • popnn
  • popops
  • poprand
  • poputil

を使うものもあるみたい。

Send/Recv の Op は、sendrecv_kernel.cc にあるね。

ipu_kerne.cc の中には、CPU上で動くOpが

Poplarで使うOpは、ops.proto

Pipeline用のOpは、pipelining.cc にある

面白いOp? dataset_benchmark.cc ConsumerThread/ProducerThread なるものが

Graph Optimizerは、ここ にありますね。ここ で登録。