Vengineerの戯言

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

NVIDIAのGRACEのビデオを見直したら、NVIDIAも tick - tock 戦略をやるんだ、と思ったよ。

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

はじめに、

なんとなく、NVIDIAの GTC21 の GRACE のビデオを観た。基調講演の時に観たと思ったのだが、見直してみると得るものがあってよかった。 今日のブログでは、そのことを記録のために、書いておきます。

見直したビデオ

見直したビデオは、こちら。

NVIDIA GTC 2021 Keynote Part 6: Amazing Grace - an ARM CPU for Giant-Scale AI and HPC

Armコア搭載のGRACEについて。

www.youtube.com

GPU <=> CPUに付いているメモリ帯域の向上

従来:4基のGPUx86-64のCPUチップに PCIe Gen4 x16 でそれぞれ接続している場合。

  • GPUに付いているメモリの帯域は、8000 GB/s (HBM2になったので帯域はめっちゃ大きい)
  • CPUに付いているメモリの帯域は、200 GB/s 。
  • CPUとGPU間の接続が PCIe Gen4 x16 で 16GB/s 。4個のGPUだと、64GB/s。ここがボトルネック

下図は、2:14のところのスナップショットです。説明のために引用します。

f:id:Vengineer:20210512081547p:plain

これに対して、GRACEを使うと、

  • CPUに付いているメモリの帯域は、500 GB/s。
  • GPU、1つに対して、1つのGRACEを第4世代NVLinkにて接続する。第4世代NVLink は500 GB/s 。
  • CPUに付いているメモリの帯域と第4世代NVLinkの帯域は同じ 500 GB/s 。4基で2000 GB/s

x86-64 に対して、GRACE は、CPUに付いているメモリへの帯域が 64GB/s => 2000 GB/s となり、約30倍。。。

下図は、2:42のところのスナップショットです。説明のために引用します。

f:id:Vengineer:20210512081637p:plain

DGX と同じぐらいの筐体

下図は、4:19のところのスナップショットです。説明のために引用します。

4枚のボードの下には、それぞれ、2個のコネクタ接続部らしいものが見えます。 また、ベースとなっている基板には3つの大きなヒートシンクが載っています。これは3個のNVLink Switch用のヒートシンクだと思います。DGX A100では6個のNVLink Switchを搭載していますが、GPUが8個から4個に減ったので、NVLink Switchも半分の3個に。

f:id:Vengineer:20210512081317p:plain

帯域の時に、4つのGRACEについて説明したので、DGXのものも4個のボードになっているのだと思います。

下図は、4:23のところのスナップショットです。説明のために引用します。

A100の左にあるのが GRACE のようです。A100より大きいです。DGX A100 には A100 のモジュールが8個入っていますが、下図のサイズの基板だと8枚は無理なので、4枚にしたのでしょうか?

f:id:Vengineer:20210512081820p:plain

スライドにはないのですが、x86-64ベースの DGX A100 に対して、GRACE x8 + A100 x8 は、10倍速いようです。 となると、GRACE x4 + A100 x4 の構成で 5倍速いということになりますね。

下図は、5:38のところのスナップショットです。説明のために引用します。

図にあるように、Ampere Next が 2022年。Grace が 2023年になっています。

f:id:Vengineer:20210512082256p:plain

ということは、上記の基板は GRACE ではないが Armコアベースで A100 に接続するために、第3世代NVLinkで接続しているということになっているんでしょうね。 上の図にそのチップを赤丸で入れてみました。見事にキレイな図になりました。今回の発表のArmコアのチップもコードネームがあって A100 + BlueField2 との組み合わせで作ったのだと思います。

f:id:Vengineer:20210512082518p:plain

今回のビデオにあった DGX っぽいもの。それが、GraceベースのDGXのプロトタイプだったんですね。A100では、12本の第3世代NVLink で 600 GB/s 。2本を使って GPU間の接続をするので、100 GB/s 。GRACEとAmpere Nextの組み合わせだと、Ampere Nextは、2個のGPUと1個のGRACEと接続する。また、Ampere NextはA100と同じように12本のNVLinkが必要と考えると、12 - 2*2 = 8 本をGRACEの接続に使える。8本で500 GB/s ということは、2本で 125 GB/s 。。100 GB/s => 125 GB/s なら実現な線ですね。

今回のGRACEのプロトタイプも第3世代NVLink を 4組持っていて、A100と接続しているということになりますね。基板の裏面のコネクタは他の基板のGPUに接続するための第3世代NVLink が2組出ていることになりそうですね。コネクタが大きいのは信号線だけでなく、電源・グランドをたくさん取るためだと思います。

GRACE はどんな感じ

再度、下図を見てみます。BlueField-2は8コア、BlueField-3は16コアになっているのが分かります。BlueField-4はなんと32コアになっていますね。 そんな感じで、Graceを見てみると、7 x 12 = 84コアっぽいんですよ。。 こんなにいっぱいのコア搭載しているのって、AmpereのAltra(GPUの名前ではなく、Ampereという会社)のチップぐらいですかね。この Altraは80コア、72bit DDR4-3200 が 8チャネル、128 laneのPCIe Gen4。DDR4-3200で、25.6GB/sなので、200 GB/s程度ですね。これは、上記の x86-64のCPUのメモリ帯域と同じですね。

GRACEのプロトタイプではLPDDR5で 400 GB/s を実現しているのかな? SamsungのLPDDR5のサイトでは、6,400Mbps, 51.2 GB/sとあります。ビデオでは 8個のDRAMしか載っていないので、51.2 GB/s * 8 = 414.4 GB/s になり、第3世代NVLink x 8 = 400 GB/s を超えますね。

f:id:Vengineer:20210512082518p:plain

おわりに

GTC21の 基調講演の GRACE関連のビデオを見直して、今回のビデオにあったボードはGRACEのプロトタイプであり、ここからが起点で

  • CPU : GRACE ベース (ARMメニ―コア)
  • GPU : Ampere ベース
  • DPU : BlueField ベース

による DGX ができ上げったということですね。

  • 2021 : プロトタイプ
  • 2023 : 第1世代 GRACE
  • 2025 : 第2世代 GRACE

って感じです。

あ、再度、下図。。。どこかで見たな。。。

Intelの tick - tock だ。。。

IntelはCPUだけだけど、NVIDIAは、GPUとCPUでやろうとしている。。

f:id:Vengineer:20210512092352p:plain

2021年のGW、11連休にやったことメモ

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

1日目 (4/29:木)

2日目 (4/30:金)

3日目 (5/1:土)

  • ママチャリで散歩

4日目 (5/2:日)

  • Verilator薄い本、Verilatorの中を調べる(No.3)、SystemC編、作成中

5日目 (5/3:月)

6日目 (5/4:火)

7日目 (5/5水)

  • [UVM-SystemCの薄い本、UVM-SystemCを調べる、作成中

8日目 (5/6:木)

9日目 (5/7:金)

  • 密会を1時間半ぐらい。
  • Verilatorの勉強会をやることにした
  • UVM-SystemC用に crave をビルド中だけど、うまくいかない。accellera-contribution branch でビルド中。

10日目 (5/8:土)

11日目 (5/9:日)

  • Verilator勉強会の資料完(35ページぐらい)

映画鑑賞 (20本、観た)

Verilator勉強会を5月29日(土)の午後にやりますよー。

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

4月の中旬から Verilator の中を調べるということでやってきました。 せっかくやってきたので、みなさんにシェアしたいと思ったので、Verilatro勉強会をやることにしました。

いつものように、connpass 経由で申し込みできます。

connpass.com

自分で勉強会を企画したのは、Facebook Glow Compiler のソースコードをグダグダ語る会以来なので 1年6カ月ぶりですね。。。 connpass 経由での勉強会参加が 2019/11/12の fpgax #12 以来なんだー(2020年1月に勉強会に参加してから、どこにも行っていない)

今回は、オンライン開催です。Google Meet にて行います (Google Meet、6月末まで無料で24時間のMeetingが使えるため)

オフライン開催では、直接皆さんにお会いしてお話しできるというメリットがあるのですが、移動時間がかかるというデメリットがあります。特に夜の場合だととっても遅く帰宅なることもありました。 オンライン開催では、直接皆さんにはお会いできないのですが、移動時間がゼロというのはとっても嬉しいです。また、東京から距離がある人はどうしても参加しにくいのですが、オンラインだとそれが無くなるというメリットがあります。オフライン開催では、懇親の時間も比較的短いのですが、オンラインだとあまり時間を気にせずに雑談もできそうです。ただし、雑談するには人数が多すぎるというのもあるので、それなりに考えないといけませんが。

ということで、初オンラインの勉強会、Verilator勉強会、是非、参加してみてくださいね。

自分の強みって、なんだろうか?

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

はじめに

昨日、TwitterのDMでちょっとした雑談をしていた時に、たまたま、見つけたのがこの記事。 タイトルにある「9割の人が「自分の強み」を知らないという残念」ということで、ざっくり眺めました。

toyokeizai.net

あたしも、「自分の強み」の大切さを次の2つのことによって意識するようになりました。

教授の一言の内容についてはここには書きませんが、当時はそうなんだとしか思いませんでした。その後、仕事を始めて、本当にその通りだと感じることが多かったです。

ドラッカーの方は、30代にビジネス書を読むようになり、その流れでドラッカーを読むようになりました。当時はまだドラッカーは現役で定期的に本が出ていた時期でした。 自分の強みがいかに成果を上げるために大切なのかをドラッカーの本から学びました。

このブログでも何度かドラッカーの下記の2冊をエンジニアが読むべき本として紹介しています。

vengineer.hatenablog.com

ぽちった

最初に紹介した記事をざーと読んだあと、なんとなく、書籍もぽちってみました。何しろ書籍のタイトルが、「「自分」を殺すな、武器にしろ」だけじゃ、まず、スルーしちゃいますよ。 上記の宣伝記事が無かったら、まず、手になることが無かった本だと思います。

www.amazon.co.jp

おわりに

この、「「自分」を殺すな、武器にしろ」では、自分の強みをどう見つけるのか?というポイントの本です。 自分の強みが分からないという人は、もしかしたら、見つかるヒントがあるかもしれませんので、読んでみてはどうでしょうか?

薄い本シリーズ:UVM-SystemCを調べる

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

ソースコード解析職人の薄い本 UVM-SystemCを調べる

ができました。

vengineer.booth.pm

Verilator では、テストベンチ側にSystemCが使えるので、今回の UVM-SystemC を組み合わせて、UVM-SystemC-Verilator(Verilog HDL/SystemVerilog)の組み合わせにて検証環境が構築できそうです。

Verilatorの薄い本:Verilatorの中を調べる、第三弾、できました

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

Verilatorの薄い本:Verilatorの中を調べる、第一弾、例題解析編 Verilatorの薄い本:Verilatorの中を調べる、第二弾、テストデータ解析編

に引き続き

Verilatorの薄い本:Verilatorの中を調べる、第三弾、SystemC編

ができました。

お値段は500円です。

vengineer.booth.pm

第一弾、例題編は、こちら、お値段は700円です。

vengineer.booth.pm

第二弾、テストデータ編は、こちら、お値段は500円です。

vengineer.booth.pm

関連ブログ

vengineer.hatenablog.com

vengineer.hatenablog.com

RISC-VでArm Trusted Firmwareに相当するものって、何?

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

RISC-Vの薄い本、「OpenSBIとLinuxを調べる」は、BOOTHにて、200円でダウンロード販売しています。

vengineer.booth.pm

はじめに

RISC-Vが盛り上がっているけど、ハードウェアであるCPUコアだけじゃ、コンピュータって動かないですよね。 Armでは、Linuxが動く前に、U-Bootが動いていて、U-Bootの前に、Arm Trusted Firmware (BL31 <= BL2)が動いていて、Arm Trusted Firmwareの前に BootROMが動いている感じ。 ちなみに、BootROMは、Linux が動くCortex-Aシリーズのコアではなく、Cortex-Mシリーズのようなマイコンが動くプログラムになっていることが多いです。

そこで、下記のようなツイートをしたら、情報を得ることができました。

RISC-VでArm Trusted Firmware に相当するもの

どこかで行われたプレゼンテーション資料も教えてもらいました。こちらには上記のドキュメントやソースコードにはない絵での説明があるのでわかりやすいと思います。

Linux

Linux v5.12 にも既に、SBIの実装はありました。

sbi.h sbi.c kernel/cpu_ops_sbi.c

const struct cpu_operations cpu_ops_sbi = {
    .name       = "sbi",
    .cpu_prepare    = sbi_cpu_prepare,
    .cpu_start  = sbi_cpu_start,
#ifdef CONFIG_HOTPLUG_CPU
    .cpu_disable    = sbi_cpu_disable,
    .cpu_stop   = sbi_cpu_stop,
    .cpu_is_stopped = sbi_cpu_is_stopped,
#endif
};

この部分のコミットは、Western Digitalの中の人ですね。

おわりに

RISC-VでもArm Trusted Firmwareっぽい、OpenSBIなるものを知りました。このOpenSBIは、RISC-V SBI specification の実装例のようなので、仕様を知りたいのなら、こちらを読み込む必要があるようです。現時点のバージョンは、v0.3 が始まった感じです。

P.S

RISC-V SBI specification に関しては、Western DigitalのAtish PatraさんとAnup Patelさんのおふたりが活動されているっぽいです。 RISC-V Supervisor Binary Interface Specificationには、Palmer Dabbeltさん(当時、SiFive => 現在、Google)のお名前もありますが、現在はあまり活動されていないですね。と思ったら、Linuxではまだまだ活躍中のようでした。