Vengineerの妄想(準備期間)

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

Verilator v4.210 で、生成されるコードの構造が変わった。

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

はじめに

Verilatorの中を調べるでは、Verilator v4.200/v4.202 で生成されるコードについて調べました。 また、Verilatorの薄い本としても BOOTH にて販売しています。

V4.210 で生成されるコードの構成が変わったようです。

Verilator 4.210 2021-07-07

The generated model class instantiated by the user is now an interface object and no longer the TOP module instance. User code with direct C++ member access to model internals, including verilator public_flat items will likely need to be updated. See the manual for instructions: https://verilator.org/guide/latest/connecting.html#porting-from-pre-4-210 (#3036). [Geza Lore]

ドキュメントの [Model interface changes in version 4.210]

どのように変わったのかを、examples/make_hello_c で確認しました。

examples/make_hello_c にて、make を実行後、obj_dir ディレクトリの中は、

v4.202 の

Vtop      Vtop.mk        Vtop__ALL.d     Vtop__Syms.cpp  Vtop__verFiles.dat  sim_main.o
Vtop.cpp  Vtop__ALL.a    Vtop__ALL.o     Vtop__Syms.h    Vtop_classes.mk     verilated.d
Vtop.h    Vtop__ALL.cpp  Vtop__Slow.cpp  Vtop__ver.d     sim_main.d          verilated.o

に対して、v4.210 では

Vtop      Vtop.mk        Vtop__ALL.d     Vtop__Syms.h        Vtop___024root__Slow.cpp  Vtop_classes.mk  verilated.d
Vtop.cpp  Vtop__ALL.a    Vtop__ALL.o     Vtop___024root.cpp  Vtop__ver.d               sim_main.d       verilated.o     
Vtop.h    Vtop__ALL.cpp  Vtop__Syms.cpp  Vtop___024root.h    Vtop__verFiles.dat        sim_main.o

になります。

v4.202 の

Vtop__Slow.cpp

に対して、

Vtop___024root.cpp
Vtop___024root.h
Vtop___024root__Slow.cpp

になった感じです。

おわりに

v4.210 では、生成されるコードの構造が変わりました。今回は生成されるファイルについてしか見ませんでした。 内容がどのように変わったかは、Verilatorの薄い本、No.4として作成したいと思っています。。。

来年のGTC22にて出るであろうDGXを妄想してみた

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

はじめに

2021年5月12日に書いた「NVIDIAのGRACEのビデオを見直したら、NVIDIAも tick - tock 戦略をやるんだ、と思ったよ。」

vengineer.hatenablog.com

その後、DGX-1/2/2H および A100 について、いろいろと調べたら、あれ、どうも来年出てくる、Ampere Next 搭載のDGXはどうなるの?と思ったので、記録のために残します。

DGX A100 を振り返る

DGX A100 の データシート によると、

  • NVIDIA A100 80/40GB GPU x 8
  • NVIDIA NVSwitch v2 x 6
  • CPU : Dual AMD Rome 7742
  • System Memory : 2TB/1TB
  • Network : Mellanox ConnectX-6 InfiniBand x 8 (200G HDR) + Melannox ConnectX-6 10/25/50/100/200 GbE x 2)
  • Storage : OS (1.92 TB M.2 NVME x 2), 内部ストレージ ( 30TB : 3.84 TB x 8) U.2 NVMe)

Ampere Next搭載のDGXってどんな感じ?

  • NVIDIA Ampere Next x 8
  • NVDIA NVSwitch v3 x 6
  • CPU : Dual AMD Genoa
  • System Memory : 4TB/2TB
  • Network : Mellanox ConnectX-7InfiniBand x 8 (400G HDR) + Melannox ConnectX-7 10/25/50/100/400 GbE x 2)
  • Storage : OS (.....), 内部ストレージ (...)

Ampere Next は、PCIe Gen5 および NVLink v4 対応なので、NVSwitch v3 も NVLink v4 対応 PCIe Gen5 対応なので CPU も 変わって、AMD Genoa 。来年春に出るようなので、GTC2022 には間に合いそう。Intel Sapphire Rapidsも来年(2022)の前半には出そうだが、PCIe Gen5 が最大 80 lanes なので、x16 の GPU を4つ接続すると、x16が1つしか残らないので、GbEとOS用NVMeが接続できるか微妙。 Networkは、ConnectX-7にて、400Gbpsをサポート。

PCIe Switch

データシートには載っていませんが、DGX A100 には PCIe Gen4 の Switch が多分4個載っています。 PCIe Gen4のSwitchは、旧PLX、現Broadcomの PEX シリーズです。 PCIe Gen5に関しては、PEXシリーズを見る限りなさそうです。(本当にないかどうかまではわかりません)。 Google君に聞いたら、Microchip がサンプルを出しているようです。

Microchip Switchtec PCIe 5.0 Switches Now Sampling - ServeTheHome

下図は、上記の記事からの図です。説明のために引用します。GPUが2個、NICが1個、NVMeが1個接続しています。 DGX A100では、GPUが2個、NICが2個、NVMeが2個ついているのでこのSwitchで大丈夫かな。。。

製品リストもありました。PFX 100xGSでは、100 lanes サポートしているので、Host (x16), GPU (x16 + x16), NIC (x16 + x16), NVMe (x8 + x8) = 16*5 * 8x2 = 80 + 16 = 96 なので大丈夫そうです。NICを x8 にすれば、PFX 80xGS でも大丈夫そうです。とはいえ、400Gbps = 50GB/s なので、PCIe Gen5 x8 の 32GB/s を超えていますので、x16じゃないとだめですね。

また、Retimerも出しています。他社のRetimerは60ns程度の遅延があるが、Microchipのは10ns程度なのでかなり速いと。。。

お値段

上記の構成だと、DGX A100の 約20万ドルより高くなりそう。

おわりに

来年出るであろう DGX について、妄想してみました。

ポイントは、PCIe Switch かな。。。

また、Network が400Gbps になるので、DGX単体ではそれほどお値段高くならないかもしれないけど、DGX SuperPOD になると 400G Switch などのコストが上乗せして高くないそう。。。

XiangShan RISC-V : L1 plus Cache がある RISC-Vコア

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

はじめに

Twitter の TLで拾った下記の記事。

www.cnx-software.com

L1 Instruction plus Cache がある

上記の記事の中にあったXiangShan open-source processor のブロック図。説明のために引用します。

  • L1-I cache 16KB, 4way,
  • L1-I plus cache 128KB, 8way,
  • L1-D cache 32KB, 8way,
  • L2 cache 1MB, 8way

f:id:Vengineer:20210708080017p:plain

L1 Instruction Cache は少なめの 16KB, 4way ですが、L1 plus Cache として、128KB 8-way なるものがあります。 4way でかつ高速アクセスできるが容量が少ない16KBものと、8wayだけど128KBと容量がそれなりのL1 plus という2段構成。その下に、L2 Cache 1MB, 8way があります。

128KBのL1って、AppleのA/MシリーズのCPUコアのものと同じですよ。

Chisel

どうやら、このコア、Chisel で開発しているようです。 20218年のFPGA(xc7v2000tfhg1716-1)に実装したら、Verilog HDLのものと同等レベルの性能が出て、チューニングをした Chisel ではよりよくなったようです。 2020年にはChisel で記述されたコアを 8コア を TSMC 28nm で実装したものもあります。

ソースコード

github.com にソースコードがあるようです。

github.com

確かに、L1plusCache.scale もありました。

VCS と verilator でシミュレーションできるようです。

ドキュメント

ドキュメントも 中国語ですが、github.com にて公開されています。

おわりに

上記のブロック図、github.com にある この図 のようです。

AMDのGPUはメモリ128GB

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

はじめに

TwitterのTLに流れてきたもの。

AMDGPUのメモリが128GB。NVIDIAのA100は40GB/80GBなのでそれより1.5倍。

AMD

最初に観たツイートは、これ。説明のために引用します。

2 die で、1 die に 64GBのHBM2メモリが接続しています。4 チャネルなので1チャネル当たり16GBメモリ。 NVIDIA A100の80GB版は、6チャネルのHBM2の内、5チャネルを使うようになっているので1チャネル当たり16GBで同じ。 NVIDIA A100の場合は、1 die だけど、AMDのMI200は 2 die で 4 チャネルなので、2 x 4 x 16 = 128GB ということに。

NVIDIAの場合、チップ間は NVLink で接続しているけど、この AMD MI200 は Die-to-Die Crosslinks となっています。 実際にどのくらいの転送レートをサポートしているのでしょうか?

die には、この他に

  • I/O Ports for PCIe & XGMI
  • 2x SDMA + 3x XGMI Control

とあります。

XGMI って、AMD EPYC のチップ間接続用に使っているものと同じなんでしょうか?

pc.watch.impress.co.jp

AMD EPYC ROMEの場合は、下記の記事の図にどんな感じに使っているのかが載っています。

www.boston.co.uk

記録のために、画像を引用します。

f:id:Vengineer:20210707080403p:plain

おわりに

NVIDIAGPUが注目されがちですが、AMDも攻めてきましたね。

Xilinx Versal AI Engine

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

はじめに

Xilinx の Versal に搭載されている AI Engine がどうなっているかを調べてみました

ACAP (Adaptive Compute Acceleration Platform)

XilinxのZynq/Zynq MPSoCに続く新しいシリーズである ACAP (Adaptive Compute Acceleration Platform)

japan.xilinx.com

ACAP には、5つのシリーズ (AIエッジシリーズについては、2021.09.23に追記)

  • HBMシリーズ
  • プレミアムシリーズ
  • プライムシリーズ
  • AIコアシリーズ
  • AIエッジシリーズ

最後の AIコアシリーズとAIエッジシリーズにのみ、AI Engine が載っています。

Versal AI Core

japan.xilinx.com

  • VC1352 : 128
  • VC1502 : 248
  • VC1702 : 320
  • VC1802 : 300
  • VC1902 : 400

実機は、VCK190評価キット あh、11,995ドル。お高い。。。。

Versal AI Edge

japan.xilinx.com

Versal AI Edgeでは、AIエンジンがAIエンジン-MLになって、INT8の性能が倍に、INT4とBF16をサポート。また、データメモリが32KBから64Kに強化。メモリTileなるものも追加。 Xilinx、Versalシリーズの第4弾製品「Versal AI Edge」を発表

また、メモリ階層が変わります。アクセラレータRAMなる4MBが追加されました。説明のために上記の記事の図を引用します。

f:id:Vengineer:20210923092159p:plain

  • VE2002
  • VE2102
  • VE2202
  • VE2302
  • VE2602
  • VE1752
  • VE2802

この中で VE1752だけは、AIエンジン-ML ではなく、AIエンジンですので、実態は Versal AI Core のVC2802なんだろうかな?と思っています。

アーキテクチャマニュアル

Versal ACAP AI エンジン アーキテクチャ マニュアル

開発環境

Versal ACAP AI エンジン プログラム環境 ユーザー ガイド

SystemC Simulator (aiesimulator)

  • AI Engine SystemC Simulator (aiesimulator) にて、DDRメモリ、NoC を含んだモデリングができているっぽい。
  • VCDファイルをダンプできる
  • DDRメモリを初期化データをロードできる
  • プログラムメモリとデータメモリの境界アクセスチェックができる

SystemC シミュレーション (AI エンジン System C シミュレータ 参照) では、AI エンジン アレイのタイミングとリソースは正確にモデル化されますが、NoCDDR、PL、および PS に関してはトランザクシ ョン レベルの AT (Approximately Timed) SystemC モデルが使用されます。これにより、AI エンジン アプリケーショ ンの性能解析を適度な時間と精度で実行できます。

その他

  • ハードウェアエミュレーション
  • 3rd party (Questa, Xcelium) も利用可能

  • x86 論理シミュレータ (x86simulator) もある

  • Trace Compass なるもので AI Engineのトレースが可視化

おわりに

AI Engine 、何で開発したのかはわかりましたが、ここには書けません。。。。

参考資料: マイナビ : XDF 2018 - VersalのAI Engineの構造

P.S 2021.09.26(日)の11:00-12:00の「半導体チップ雑談」しました。 チップ入手が2022年下期ということなので、デバイス無いとなかなか本気出さないよね、となりました。 FPGAの場合は、直ぐに動作確認できるので、やっぱりデバイス必要なんですね。 ASICの場合は、デバイスなんて、かなり先なのでシミュレータでもOKなんですよね。そこが違うんですね。

デジタルになった。もうアナログには戻れない。。。。

はじめに

今回は、高校時代(1980年代前半)から今(2021年)までのあたしの

  • 映画
  • 音楽
  • 読書

について、振り返ってみた。

1980代前半、高校生

  • 映画を観るようになった。ただし、お金が無いので名画座2本立てを2回とか観ていた。
  • 洋楽を聴くようになった。ただし、お金が無いのでレンタルレコード屋や友達から借りてカセットテープに入れた。

1980年代後半、大学生

  • ビデオデッキを買ったので、レンタルビデオ屋でビデオを借りられるようになった。ただし、1本1000円とかしたので映画館に行くのとほとんど変わらない。試写会で無料で観られることを知ったので、試写会にどうすれば行けるかを考えたりしていた。2日連続とか同じ映画に当たったりしたりした。最初のインディージョーンズは新宿の映画館で試写会で観た。そのために叔母の家に泊まった。
  • 通学時に音楽を聴くためにAM/FM/短波が入るポータブルカセットを買って、聴いていた。
  • 通学時に暇なので、本を読むようになった。

大学時代では、

  • NationalのHifi対応のVHSレコーダー
  • NatonalのポータブルVHSレコーダー+チューナー
  • Canon の撮像管ビデオカメラ (NationalのポータブルVHSレコーダーに接続して使えた)

  • VHSテープ

に夏休みと春休みのバイト代をつぎ込んだ。今となっては、その時買ったVHSテープはほとんど見ることはない。 (中山美穂のデビュー作とも言える、毎度お騒がせします、桃尻娘、などのTVドラマはまだ残っている)

1990年代前半、社会人

  • お金が入るようになったので、映画館に行くようになったが、結婚してからはレンタルビデオ屋でビデオを借りるようになった。レンタルビデオも安くなって、300-400円に。
  • 音楽はあまり聞かなくなった。
  • 結婚してからは図書館で本を借りるようになった。ビジネス書の他に、スティーブン・キングを読むようになった。

1990年代後半、おこちゃまが生まれて

  • 映画の日だけは午後半休して映画館に観に行っていた。
  • 音楽は聞かなくなった
  • 本は通勤時に読んでいた

2000年代、YoutubeNapsterが出てきた

  • SonyMyloNapster が使えたのでちょっとの間、音楽聴くのに使っていた。その Mylo は誰かにあげた。

2010年代、iPad を買った

  • 横浜まで暇なので、iPadで映画を観るようになった。毎月500円で安いけど、それなりのラインナップ。
  • 音楽は洋楽だったので、無料のAccuRadio で聴いていた
  • 本は相変わらず、図書館で借りたりしていた。

iPad, iPad3 から Nexus7、..., Nexus6, ASUS Zenfone Max Pro M2 と、モバイル端末は6代目。 iPad, iPad3 の時に、映画を観ていたが、それ以降は端末の画面が小さくなったので映画は通勤では観なくなった。

2019年、Youtube Premiumに課金

  • YoutubeYoutube Music が広告無しになった。家族会員なので1780円。それなりのコスパ。戻れない。今までは洋楽ばっかりであったが、Youtube Music で邦楽も聴くようになり、いろいろなアーチストを知ることができた。

2019円年末、Amazon Primeに課金

  • 禁断のAmazon Primeに課金してしまった。2020年は500本も映画を観た。FireTV Stickも買った。

2021年、Kindle

2021月6月

  • マイル81 わるい夢たちのバザールI (文春文庫)
  • 夏の雷鳴 わるい夢たちのバザールII (文春文庫)
  • スティーヴン・キング論集成
  • ミスト 短編傑作選 (文春文庫)

2021年7月

  • 怪奇疾走 (ハーパーBOOKS)

おわりに

1980年代の高校生から2021年の今、ざっくり40年の間に、

  • 映画
  • 音楽
  • 読書

がアナログからデジタルに変わった。そして、コストが圧倒的に低くなった。

モバイルであるスマホの中に、映画、音楽、読書は、全部入ってしまった。

もうアナログには戻れない。。。。

昨日のAuroraに出てきた HPE/Cray の Slingshot-10 なるものを調べてみた

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

はじめに

GREEN500のTOP10の内、 1位のMN-3と6位のPerlmutter以外は 計算ノード間のインターコネクトにMellanox HDRを使っていますね。

Perlmutterは Slingshot-10 なるものを使っています。今回は、この Slingshot-10 について調べました。

Slingshot

HPE/Crayのサイトに、Slingshot のページがあります。

www.hpe.com

このSlingshotて、HPE/Crayの200Gbps Ethernetのシステムなんですね。

We mentioned that Cray Slingshot implements this new protocol called HPC Ethernet.

とありました。

面白いブログも:Cray Shasta, Slingshot このブログによると、PCIe Card 側は、Mellanox ConnectX-5 NIC。SwitchはBroadcom Tomahawk 3 Ethernetスイッチで。独自開発ではない。

Rosetta

Rosettaという64ポートのスイッチ。TSMC 16nm、250W

fuse.wikichip.org

IB HDR (200G) よりも性能がよいようですね。。。

Boradcomでの製品名:BCM56980 Series, 12.8 Tbps StrataXGS® Tomahawk® 3 Ethernet Switch Series

  • 256 x 56G PAM-4
  • 32 x 400GbE, 64 x 200GbE, 128 x 100GbE

おわりに

コモディティをうまく使い、スパコンにしているんですね。

追記)、2022.06.01

An In-Depth Analysis of the Slingshot Interconnect

関連記事:

www.nextplatform.com

StrataXGS Tomahawk 4 Series

www.hpcwire.com