Vengineerの妄想(準備期間)

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

Graphcore : Poplar API から探ってみる

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

Graphcore Poplar API から Hardware 関連を探ってみます。

class Target にいろいろ書いてありました。引用します。

Target creation options

  • ipuLinkConfiguration (Default, BarleyTwist, SlidingWindow, None) [=None]

    The configuration used for the IPU to IPU connections (known as the Newmanry network). ‘None’ means that Poplar decides, based on the number of IPUs.

    Note that ‘Default’ is not the default!

  • syncConfiguration (intraReplicaAndAll, ipuAndAll) [=intraReplicaAndAll]

    The configuration of the hardware synchronisation groups. Note the ‘target.syncReplicasIndependently’ engine option determines which of the synchronisation groups is used for host synchronisation.

    • intraReplicaAndAll: The first sync group is used to sync IPUs within a replica and the second sync group is used to sync all IPUs.

    • ipuAndAll: The first sync group is used to sync each IPU independently with the host (if the target.syncReplicasIndependently option is set) and the second sync group is used to sync all IPUs.

     

  • ipuLinkTopology (mesh, torus) [=mesh]

    The topology of the IPU links. It describes how the IPUs in the system are connected.

    • mesh: The IPUs are connected as a ladder.

    • torus: The IPUs are connected as a ladder, with the top and bottom of the ladder linked together.

     

  • IpuLinkDomainSize Integer [=NIPUS]

    The number of IPUs connected via IPU links. Two IPU link domains can be connected together via gateway links.

  • ipuLinkTopology には、IPUの接続方法になっていて、mesh にすると、階段上に接続する。PCIe Board なの 2つのIPUを繋げたら、1つのIPUから入ってきて、もう一つのIPUから出ていく感じ。torus になると、最後に出ていくものが、最初に入っていくように接続する。
  • IpuLinkDomainSize は、IPU link domain の数。IPU link domainとは、IPU-LINKSで接続するIPUの塊。IPU link domain 間は、IPU-LIINKSで接続するのではなく、gateway links とありますね。これ、IPU-GWLINKS になるんでしょうね。

 

class Engine にもありました。

  • target.gatewayMode (true, false) [=false]

    Enable GWMODE (Gateway Mode) in the PCI Complex

  • target.gatewayWriteCombining (true, false) [=false]

    Optimise write to host code to use IPU machine Gateway write combining.

target.gatewayMode を true にすると、PCI Complex の中の GWMODE (Gateway Mode) を有効にするとあります。この PCI Complex って、IPU-Gateway SoCの中のPCI Complexなんでしょうかね。

target.gatewayWriteCombining も Gateway モードにおいて write combining のコードを最適化すると。