Vengineerの妄想(準備期間)

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

Tenstorrent の Grayskull の内部構成

はじめに

Tenstorrentのgithubに公開されているtt-budaのドキュメントの中に、Grayskull の内部構成の図を見つけたので、ブログに残しておきます。

Hardware Overview

下図は、Hardware Overview にあります。説明のために引用します。

13 x 12 の Tile の構成です。各 Tile の NoC で接続しています。

  • P : PCIe I/F
  • D : DRAM I/F
  • T : Compute (Tensix)

です。PCIe I/F はチップの周りにありますが、DRAM I/F の半分は真ん中にあります。これ、Pinはどこにあるんでしょうかね。。。

下図は、TenstorrentのCardにあるGrayskull e150です。説明のために引用します。

ボードの写真と上記の Tile の構成を比べると、PCIe I/F と DRAM I/F の位置はあってそうです。

黒い Tile は何?

P、D、T 以外の黒い Tile は何でしょうか?

TenstorrentのMetalの umd (User mode driver)の中のこのファイルの中に下記のような記述を見つけました。

grid:
    x_size: 13
    y_size: 12
  
arc:
  [0-2]

pcie:
  [0-4]

dram:
  [[1-0], [1-6], [4-0], [4-6], [7-0], [7-6], [10-0], [10-6]]

eth:
  []

functional_workers:
  [
    1-1,  1-2,  1-3,  1-4,  1-5,  1-7,  1-8,  1-9,  1-10,  1-11,
    2-1,  2-2,  2-3,  2-4,  2-5,  2-7,  2-8,  2-9,  2-10,  2-11,
    3-1,  3-2,  3-3,  3-4,  3-5,  3-7,  3-8,  3-9,  3-10,  3-11,
    4-1,  4-2,  4-3,  4-4,  4-5,  4-7,  4-8,  4-9,  4-10,  4-11,
    5-1,  5-2,  5-3,  5-4,  5-5,  5-7,  5-8,  5-9,  5-10,  5-11,
    6-1,  6-2,  6-3,  6-4,  6-5,  6-7,  6-8,  6-9,  6-10,  6-11,
    7-1,  7-2,  7-3,  7-4,  7-5,  7-7,  7-8,  7-9,  7-10,  7-11,
    8-1,  8-2,  8-3,  8-4,  8-5,  8-7,  8-8,  8-9,  8-10,  8-11,
    9-1,  9-2,  9-3,  9-4,  9-5,  9-7,  9-8,  9-9,  9-10,  9-11,
    10-1, 10-2, 10-3, 10-4, 10-5, 10-7, 10-8, 10-9, 10-10, 10-11,
    11-1, 11-2, 11-3, 11-4, 11-5, 11-7, 11-8, 11-9, 11-10, 11-11,
    12-1, 12-2, 12-3, 12-4, 12-5, 12-7, 12-8, 12-9, 12-10, 12-11
  ]
  
harvested_workers:
  []

router_only:
  [
    0-0, 0-11, 0-1, 0-10, 0-9, 0-3, 0-8, 0-7, 0-5, 0-6,
    12-0, 11-0, 2-0, 3-0, 9-0, 8-0, 5-0, 6-0,
    12-6, 11-6, 2-6, 3-6, 9-6, 8-6, 5-6, 6-6
  ]

worker_l1_size:
  1048576

dram_bank_size:
  1073741824

eth_l1_size:
  0

arch_name: GRAYSKULL

features:
  unpacker:
    version: 1
    inline_srca_trans_without_srca_trans_instr: False
  math:
    dst_size_alignment: 32768
  packer:
    version: 1
  overlay:
    version: 1

下記の部分で、

  • arc : ARC (CPUです)
  • pcie : PCIe I/F
  • dram : DRAM I/F

の位置です。CPUは 0-2 です。PCIe I/F は 0-4 です。DRAM I/F は、[1-0], [1-6], [4-0], [4-6], [7-0], [7-6], [10-0], [10-6]です。X方向が1つずれていますが、だいたい同じです。

arc:
  [0-2]

pcie:
  [0-4]

dram:
  [[1-0], [1-6], [4-0], [4-6], [7-0], [7-6], [10-0], [10-6]]

下記は、Compute Tile です。図と同じですね。120個のCompute Tileです。

functional_workers:
  [
    1-1,  1-2,  1-3,  1-4,  1-5,  1-7,  1-8,  1-9,  1-10,  1-11,
    2-1,  2-2,  2-3,  2-4,  2-5,  2-7,  2-8,  2-9,  2-10,  2-11,
    3-1,  3-2,  3-3,  3-4,  3-5,  3-7,  3-8,  3-9,  3-10,  3-11,
    4-1,  4-2,  4-3,  4-4,  4-5,  4-7,  4-8,  4-9,  4-10,  4-11,
    5-1,  5-2,  5-3,  5-4,  5-5,  5-7,  5-8,  5-9,  5-10,  5-11,
    6-1,  6-2,  6-3,  6-4,  6-5,  6-7,  6-8,  6-9,  6-10,  6-11,
    7-1,  7-2,  7-3,  7-4,  7-5,  7-7,  7-8,  7-9,  7-10,  7-11,
    8-1,  8-2,  8-3,  8-4,  8-5,  8-7,  8-8,  8-9,  8-10,  8-11,
    9-1,  9-2,  9-3,  9-4,  9-5,  9-7,  9-8,  9-9,  9-10,  9-11,
    10-1, 10-2, 10-3, 10-4, 10-5, 10-7, 10-8, 10-9, 10-10, 10-11,
    11-1, 11-2, 11-3, 11-4, 11-5, 11-7, 11-8, 11-9, 11-10, 11-11,
    12-1, 12-2, 12-3, 12-4, 12-5, 12-7, 12-8, 12-9, 12-10, 12-11
  ]

下記が Router only です。この部分が黒い Tile になります。上記の図とはちょっと位置が違います

router_only:
  [
    0-0, 0-11, 0-1, 0-10, 0-9, 0-3, 0-8, 0-7, 0-5, 0-6,
    12-0, 11-0, 2-0, 3-0, 9-0, 8-0, 5-0, 6-0,
    12-6, 11-6, 2-6, 3-6, 9-6, 8-6, 5-6, 6-6
  ]

Ethernet Tile は、Grayskull にはありません。Wohm Hole にはあります。

eth:
  []

おわりに

TenstorrentのGrayskullの内部構成がわかりました。