Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TTデバイス間通信を支えるTT-Fablic解説 Part1

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Tenstorrent Japan Tenstorrent Japan
May 01, 2026
99

TTデバイス間通信を支えるTT-Fablic解説 Part1

Tenstorrent Tech Talk #5, Session2

Avatar for Tenstorrent Japan

Tenstorrent Japan

May 01, 2026

More Decks by Tenstorrent Japan

Transcript

  1. Tenstorrent Tech Talk #7 Apr 20 2026 Kohei Yamaguchi /

    Tenstorrent Japan @sott0n TTデバイス間の通信を支えるTT-Fablicの解説 Part 1
  2. Tensix Core Architecture Compute (Tensix Engine) RISC-V 2 RISC-V 3

    RISC-V 4 RISC-V 5 RISC-V 1 Router 0 L1 Memory • 5 “Baby RISC-V” Cores (32-bit RISC-V ISA) • 2 Network-on-Chip (Router) • 1.5MB SRAM Cache (L1) Compute (TensixEngine) Vector Math Engine • Tile/Matrix Math Engine (FPU) • Vector Math Engine (SFPU) Router 1 Tile/Matrix Math Engine PCIe Ethernet GDDR6 GDDR6 GDDR6 GDDR6 GDDR6 GDDR6 GDDR6 GDDR6 C T D E P A RISC-V CPUs Tensix cores DRAM cores ETH cores PCIe core ARC core
  3. Ethernet-Based Scale-Out • Blackhole Ethernet: 1 TB/s • Locality and

    regularity of data movement • Sharded data • 200 GB/s in N / S / W / E / Z • 2D / 3D torus 3 T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T C C C C C C C C C C C C C C C C E E E E E E E E DRAM T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T C C C C C C C C C C C C C C C C E E E E E E E E DRAM T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T C C C C C C C C C C C C C C C C E E E E E E E E DRAM T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T C C C C C C C C C C C C C C C C E E E E E E E E DRAM E E E E E E E E Tile Math Engine RISC-V Router DRAM Bank Controller ETH Controller Vector Math Engine Compute Data Movement Storage RISC-V RISC-V RISC-V RISC-V user kernel user kernel user kernel user kernel user kernel
  4. Tenstorrent OSS Stack Tenstorrent OSS Stack Partners TT-Forge vLLM Python

    kernels TT-NN TT-Metalium TT-LLK (low-level-kernels) PyTorch models TT-Fabric (unified scale-up and scale-out) Manually optimized models TT-Train TT-Transfo rmer LLM training LLM inference models LLM, t2s, s2t models Jax PyTorch TF ONNX Models AI Workloads Open Source Partners Tenstorrent Open Source Software
  5. TT-Fabric Introduction • NoCは、同一チップ内のコア間データ移動をHardwareで実現している • TT-Fabricは、これをEthernet上に拡張し、チップクラスタ間でのコア間データ移動を可能にする • また、Kernelから任意のデータ移動パターンを発行できるAPIを提供する 6 E

    E E E W W W W W W W W W W W W W W W W E E E E E E E E W W W W W W W W W W W W W W W W E E E E E E E E W W W W W W W W W W W W W W W W E E E E E E E E W W W W W W W W W W W W W W W W E E E E E E E E W W W W W W W W W W W W W W W W E E E E E E E E W W W W W W W W W W W W W W W W E E E E E E E E W W W W W W W W W W W W W W W W E E E E E E E E W W W W W W W W W W W W W W W W E E E E E E E E W W W W W W W W W W W W W W W W E E E E E E E E W W W W W W W W W W W W W W W W E E E E E E E E W W W W W W W W W W W W W W W W E E E E E E E E W W W W W W W W W W W W W W W W E E E E E E E E W W W W W W W W W W W W W W W W E E E E E E E E W W W W W W W W W W W W W W W W E E E E E E E E W W W W W W W W W W W W W W W W E E E E E E E E W W W W W W W W W W W W W W W W E E E E TT-Fabric Unicast TT-Fabric Multi-Cast (Chip and Core Level) W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W
  6. TT-Fabric Introduction 7 • NoC を超えて、チップ間通信まで拡張されたデータ移動モデル • 任意のデバイス間でデータ転送 /Atomic操作の送受信が可能 •

    並列なData Planeとして機能 • 高スループットなデータ転送を実現 • TT-Fabricがフロー制御を管理し、デッドロックを回避
  7. Architecture: Routing Planes 複数のEthernet linkにより、隣接するデバイス同士が接続される。 この上に、4つの “Parallel” Fabric (Routing Planes)が構成される。

    各Routing Plane間でTrafficは独立して流れるため、並列性を生かした高スループットなデータ転送が可能。 8 WH Device N S E W
  8. Fabric NoC View Routing Plane間には直接的な依存関係は 存在せず、相互作用は輻輳による間接的 なものに限られる この例では、各Routing Planeは独立した 接続構造を持ち、同一色で示されるRPが

    all-to-allで接続されている構成を想定して いる。 ※ この接続形態はあくまで一例 9 N N W W W W N N S S E E E E S S RP 0 RP 1 RP 2 RP 3 Ethernet Core Worker Core Misc/DRAM Core
  9. TT-Metalium + TT-fabric: unified scale-up and scale-out 10 Physical Layer

    Data/Link Layer Routing/Network Layer Transport Layer Session Layer Presentation Layer (Data formats) Application Layer Internet stack Abstract networking stack Data encoding Ethernet frames IPv4 / IPv6 TCP / UDP NFS / SQL JPEG, etc HTTP / FTP TT-fabric stack (data plane) Data encoding Ethernet frames TT-routing (failover) TT-transport (ordering, VCs) TT-session (socket, read/write) CCLs / Ops / Frameworks SW HW TT-link L1 L2 L3 L4 L5 L6 L7 SW TT-fabric TT-distributed (mesh virtualization) TT-Metalium distributed
  10. Supported Topologies TT-Fabricは、複数のトポロジーをサポートしている • 1D Line • 1D Ring •

    2D Mesh • 2D Torus また、Reliability modeを有効にすることで、これらを組み合わせたHybrid Topologyもサポートされる Why not 2D everywhere? • TT-Fabricは「Pay for what you use」という設計思想に基づいている • つまり、すべてのワークロードが高い接続性を必要とするわけではなく、単純なRing構成で十分な場合もある。そ のため、最もシンプルなトポロジーを選択することで、より高い効率で動作する場合がある。 11 x Multi-Mesh
  11. Line Topologies Can Instantiate on Meshes • トラフィックパターンが”turn”を必要としない場合、より効率的なLineやRing構成を 複数インスタンス として構成することができる

    • 現時点では、2次元メッシュのみをサポートしているが、3次元以上のトポロジーも対応予定 13 Mesh Cluster chip core(s) line fabric[0] line fabric[1] line fabric[2] line fabric[3] line fabric[4] line fabric[5]
  12. Why Not One Mega Mesh? Multi-Meshにはいくつかの利点がある: • 各Meshを冗長性やフェイルオーバーの単位として扱うことができる • 各Meshを独立した単位として扱えるため、ツリー状に構成された場合には、不良を含む

    Meshを切り離してもワークロード全体の機能を維持し たまま運用を継続できる。 • より柔軟な冗長構成を取ることができる • 単一の大規模Meshでは不良対応の影響が全体に波及する可能性があるが、 Multi-Meshでは特定のMesh内で行や列を削除することで局所 的に対応でき、クラスタ全体への変更伝播を回避できる。 • 性能面での利点 • メッシュをグラフとして構成することで最大通信経路長を短縮でき、大規模構成におけるレイテンシの改善が期待できる • データ構造のスケーラビリティの観点で有利 • Multi-Meshでは、他Meshへのルーティングは各 Meshのエントリポイントへの経路のみを保持すればよく、メッシュ内のすべてのデバイスへの 経路を個別に持つ必要がない。 • 例えば100万台規模では、単一 Meshでは100万エントリのルーティングテーブルが必要となるのに対し、「 1000デバイス/Mesh × 1000Mesh」とすることで、各Meshあたり約1000エントリのテーブルを階層的に扱うことができる。 15
  13. Non-Mesh Topologies 最適ではないが、任意のGraph Topologyのサポートは可能 ただし、制限が発生する: • FabricレベルのMulticastは未サポート • Dynamic routing

    modeでのみ動作する 現状では、この構成は「1×1サイズのメッシュをN個並べた形」として実現される。 • そのため、すべてのデバイス間通信はメッシュ間通信として扱われる。 また、今後トポロジの利用が広がれば、例えばcliqueのような構成に対して、より 最適化された実装が提供される可能性がある。 16
  14. Programming Model: Message Ordering • 同一のRouting Plane内では順序が保証される • 異なるSourceのPacketは混在 (Interleave)

    する • 単一のSource内では必ず順序通りに到着 • Routing Plane間では順序保証はない つまり、グローバルな順序は保証されず、Source単位の順序が基本となる 18 挙動のイメージ: • CIはCI0からのTrafficは考慮しない • 自分のEndpointが受信可能かどうかのみを判断 • RP0 / RP1 の間では順序制御は行われない C0 C1 C2 X Y Z x y z RP 0 RP 1 i j k
  15. NoC vs Fabric 20 NoC API Fabric API Scope Chip

    内 (Single Device) Chip 間 (Multi-chip cluster) 通信媒体 NoC ハードウェアネットワーク Ethernet link (+ 局所的なNoC)  抽象レベル Kernel 実行レベル 分散システムレベル Addressing 物理NoC座標 + メモリアドレス Mesh ID + Device ID (Fabric Node) 主な用途 コア間データ移動, 計算Kernel 分散計算, マルチデバイス推論 • 1チップ内のコア間, L1/DRAM間のメモリ転送 • Kernel Codeから直接呼び出すAPI • 2本の独立したNoC Network (NoC0/1)の制御 • セマフォ・バリアによる同期制御 • 複数チップに跨るMesh通信を担う • OSIモデル的な5層のレイヤを持つ • TT-link, TT-routing, TT-transport, TT-session • Fabric Socket 経由で利用
  16. NoC vs Fabric Messages • FabricもNoC同様に複数のMessage Typeを提供 • Messageは2つのレイヤで構成 •

    Fabric Level: どこに送るか?(ルーティングを担当) • NoC Level: 到達後に何をするか?(動作指定) • パケットはFabric levelとNoC levelの組み合わせである 21 NoC Level Messages Fabric Level Messages unicast write atomic inc fused unicast write + atomic inc multicast write unicast multicast: rectangular, line, sparse Fused scatter write + atomic inc
  17. Example Messages: Fabric Mcast, NoC Unicast • Worker (1,1) on

    Chip 0 does a fabric multicast to all other devices • NoC destination is a single core: worker (2,2) 22 C0 C1 C2 C3 Fabric Level NoC Level
  18. Example Messages: Fabric Mcast, NoC Scatter Write • Worker (1,1)

    on Chip 0 does a fabric multicast to all other devices • NoC level has multiple destinations; packet is broken into two chunks and scattered • e.g. to cores (3,0) and (1,2) for this packet • Improves efficiency; common for interleaved tensors 23 C0 C1 C2 C3 Fabric Level NoC Level dest: W(3,0) W(1,2) chunk0 chunk1
  19. Example Messages: Combine write + atomic • Worker (1,1) on

    Chip 0 does a fabric multicast to all other devices • NoC level send payload to (3,3), and semaphore inc to (1,0) • Note: race condition if (1,0) needs to eventually read from (3,3) • Solved with pipeline flush (unless destination is the same, flush the pipeline) 24 C0 C1 Fabric Level NoC Level payload seminc (+1) (+1) Packet
  20. Sending Messages: Intra vs Inter Mesh 25 Intra-Mesh Inter-Mesh, Spans

    Single Mesh Inter-Mesh, Spans Multi-Mesh Point-To Point ALLOWED ALLOWED N/A Fabric Multicast ALLOWED ALLOWED UNSUPPORTED s d s d d d d s d s s d d d d d d d d
  21. Lifetime of A TT-Fabric Client Fablic Clientが複数のReceiverにSingle messagを送る例で考える: TT-Fabric client

    must: • Establish a connection with local fabric endpoint • Check/Wait for buffering space in local fabric endpoint • Send packet(s) • Close connection 27 C0 C1 C2 C3 Connectionの仕組みは削除予定
  22. Step 1: Establish Connection with TT-Fabric Router • Router information

    (channel) passed to kernel • Worker establishes connection to specified channel, via TT-Fabric device APIs • Connecting gives worker key information: • next buffer slot address • rd/wr pointers/counter (capacity) 28 connect ack
  23. Step 2: Wait for Buffering Space • If no space

    • the worker will need to receive credits before they can write • else • worker observes space available during connection 29 credit(s)
  24. Step 3: Wait for Buffering Space • Worker sends packets

    as needed and space is available • Asynchronously, TT-Fabric will send credits back as more space is freed up 30 packet(s)
  25. Step 4: Establish Connection with TT-Fabric Router • Upon kernel

    completion, the worker must terminate the connection • Worker shares information such as last written buffer index for the next connection to read 31 disconnect ack
  26. Step 2b: TT-Fabric Router First Hop • As router sees

    credits for the packet (2), it processes it • The packet is forwarded over Ethernet as soon as the destination has enough buffering available (3) 32 worker packet packet outbound buffer 0 outbound buffer 1 inbound buffer inbound buffer Chip 0 (1) (2) Ethernet packet (3) Chip 1
  27. Step 2B: TT-Fabric Router First Hop – NoC View 33

    packet (1) packet (3) packet (2) Chip 0 Chip 1 Ethernet Connection
  28. Step 2c: TT-Fabric Router Second Hop • The first receiving

    router gets a new packet (3) • It inspects the packet to see: • it’s a destination of packet; it must write out to local noc (4) • it must forward the packet further in the fabric (5) • packet only forwarded when safe (space available) 34 inbound buffer packet (3) Chip 1 outbound buffer 0 outbound buffer 1 inbound buffer worker (0,0) worker (0,1) worker (1,0) worker (1,1) payload (4) packet (5)
  29. Step 2c: TT-Fabric Router Second Hop – NoC View 35

    packet (3) payload (4) packet (5) fwd payload fwd packet