Vengineerの戯言

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

複数Google Edge TPUで Pipeline実行できるようになった。

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

 

Google Edge TPU で、3か月毎の Update 

今回は、複数の Edge TPU を使えるようになったと。

使い方は、ここ : Pipeline a model with multiple Edge TPUs

現時点では、C++インターフェースだけで、Pythonはサポートしていないようです。

edgetpu_compiler コマンド の引数として、--num_segments=4 のように、いくつに分割するかを指定するだけですね。

分割して、「Off-chip memory used」が 0 になっていれば、分割成功のようです。

目安としては、「num_segments = [Model size] MB / 6 MB」のようです。

実行時は、Pipeline C++ API reference を使うことになります。

この API では、各 Edge TPU の実行毎に、thread を割り当てている感じですね。

 

複数のEdge TPUで1つのモデルを実行するだけでなく、Pipeline で実行することでスループットを上げられるということですね。

これって、「 Graphcore の3つのケースの MODEL PIPELING 」と同じですよね。

vengineer.hatenablog.com

Graphcore の場合は、チップ間も直接接続しているけど、Edge TPU の場合はホストメモリ経由になってしまいます。