Vengineerの戯言

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

Habana GaudiのデバイスドライバがLinuxに入っていた

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

www.phoronix.com

Linuxのところを見たら、v5.8-rc1 に入っていた

github.com

Habanaの github にもあります

github.com

Habanaのクライド用推論チップの Goyaクラウド用学習チップの Gaudi 

共に、Arm Cortex-A53が入っているんだよね。CoreSightとかも出てきます。

ここには、ファームウエアの名前も載っているよ。

#define GAUDI_BOOT_FIT_FILE "habanalabs/gaudi/gaudi-boot-fit.itb"
#define GAUDI_LINUX_FW_FILE "habanalabs/gaudi/gaudi-fit.itb"
#define GAUDI_TPC_FW_FILE "habanalabs/gaudi/gaudi_tpc.bin"

 TCPファームウェアもありますね。ここによると、U-Bootっぽい。

Goyaの方には、TCPファームウェアはないよ。

#define GOYA_BOOT_FIT_FILE "habanalabs/goya/goya-boot-fit.itb"
#define GOYA_LINUX_FW_FILE "habanalabs/goya/goya-fit.itb"

この部分が、BOOT_FITとLINUX_FWをGaudi内のSRAMにダウンロードするところ。

hl_fw_init_cpu関数内でファームウェアをロードしていますね。

TCPファームウェアは、gaudi_init_tpc_mem関数の中でSRAMにダウンロードして、_gaudi_init_tpc_mem関数の中で、gaudi_run_tpc_kernel関数にて、TPCを起動していますね。

 

 

NVIDIA A100 + Intel Xeon

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

NVIDIAのDGX A100には、Intel Xeonじゃなくて、AMD Rome EPYC7742 64コア 3.4GHz x 2 を採用しました。何故なら、PCIe Gen4 をサポートしていないから。

で、この記事によると、Intel Ice Lake-SP Xeon では、PCIe Gen4 をサポートするので、こんなシステムがあるよというもの。

wccftech.com

NVIDIA HGX A100 (DGX A100のGPUボード) をベースにサーバーを接続したもの。

GTC 2020でのビデオを観ているので、DGX A100があまりにも完成度が高いのにくらべて、この記事の中にある写真だと、ただのサーバー、って感じ。

消費電力は、9kWとか12kWとか書いてあります。ね。

HGX A100とサーバーボードの接続部分の仕様って、NVIDIAから提供してもらっているのだろうか?

 

こちらは、Supermicro の HGX A100 ベースのサーバー

www.supermicro.com

で、4 GPU と 8 GPU のシステムがありますね。

NVIDIA DGX A100が 199Kドルなので、4GPU構成の方は、100Kドルぐらいで買えるのでしょうかね。4GPU構成の場合は、NVLink が付いていないので、半分ぐらいで買えそうですかね。

Ampere Atlas & Atlas Max

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

Ampereが Altras Max をアナウンスしました。1チップの中に、128コア搭載です。

amperecomputing.com

Ampere Atlas の 80コアについては、今年の3月にこのブログで取り上げています。

vengineer.hatenablog.com

今回の Altra Max は、Altraとソケット互換ということなので、置き換えるだけで80コアから128コアに返信。

前回の最後にコメントしたように、128 PCIe I/O で、2ソケット構成だと 192 PCIe I/O になるので2ソケット間では 32 I/O 使っている感じで、CCIX x16 を 2組使っていると妄想。

コアは、Arm Neoverse N1 でサーバー用コアの最新版。

このブログでは、チップがどのくらいの大きさが分かる写真もあります。

www.servethehome.com

Arm CoreLik CMN-600を内部のMesh Interconnectとして使っているようですが、最大コア数が128個、メモリコントローラも8個。

ということは、Altra Maxは最大構成による実装なんでしょうね。

developer.arm.com

 

 

Nvidia Ampere な Geforce GTX

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

NVIDIAのAmpereは、サーバー用で超お高さそうな A100 ですが、

この記事によると、Geforce GTX 版もそろそろ出てくるようです。

www.tomshardware.com

GeForce RTX 3090/3080/3070。

チップは、GA102、GDDR6 384bit (32bit x 12) 

  • 3090は、GDDR6 384bit で 24GB、1メモリコントローラ、2GB
  • 3080は、GDDR6 352bit で 11GB、1メモリコントローラ、1GB
  • 3070は、GDDR6 320bit で 10GB、1メモリコントローラ、1GB

これを見ると、3090と3080の差は大きくて、3080と3070の差は少ないですね。

3090と3080は、TiとSUPERがあるようですね。

GeForce RTX シリーズを見てみると、

  • 2080 Ti
  • 2080 Super
  • 2070 Super
  • 2060 Super
  • 2080
  • 2070
  • 2060

がある感じで、番号が10上がるのね。

上記記事によると、クーリングのために、150ドル追加とか書いてあるので、かなりお高くなりそう。

ASUS NVIDIA GeForce RTX 2080 搭載 デュアルファンモデル 11GB TURBO-RTX2080TI-11Gで、154000円(税込み)ぐらいなので、3090 Ti って、20万円ぐらいですかね。

こちらでも追加されていて、

◇Titan Ampere(仮称)
  ・GPU:GA102-400-A1
  ・CUDA core:5376 (84 SM相当)
  ・VRAM:17Gbps GDDR6(?), 24GB (384-bit interface?)

GeForce RTX 3090(?)
  ・GPU:GA102-300-A1
  ・CUDA core:5248 (82 SM相当)
  ・VRAM:21Gbps GDDR6X(?), 21GB (352-bit interface?)

GeForce RTX 3080(?)
  ・GPU:GA102-200-A1
  ・CUDA core:4352 (68 SM相当)
  ・VRAM:19Gbps GDDR6(?), 10GB (320-bit interface?)

 感じ。

A100が108SM(GA100は、128SM)なので、1 TPCで16SMなので、6 TPC で 96SMが6 TPC で 84SMなので、14SMか。

6月の映画鑑賞

映画好きの戯言

 

6月:58 本、アマゾンプライム:58 本

 

1月:DVD:5本、アマゾンプライム:43本

2月:アマゾンプライム:35本

3月:アマゾンプライム:35本、DVD:6本

4月:42 本、アマゾンプライム:42 本

5月:58 本、アマゾンプライム:58本

5月までは、225本(DVD:11本、アマゾンプライム:214本)

 

累計:283 本 、過去最高は、2019年の264本。

 

アンリミテッド (2015) / TRACERS

「トワイライト」シリーズのテイラー・ロートナー主演。

ストリート・スポーツ“パルクール”が凄かった。

 

こんな夜更けにバナナかよ 愛しき実話 (2018)

こんなに、ポジティブに生きられるのって、凄い。

 

アフターマス (2016) / AFTERMATH

妻と娘(お腹に孫)を飛行機事故で亡くすおっさん役。

シュワちゃんとしては珍しい役。。。

 

X-ミッション (2015) POINT BREAK

邦題がよろしくない。エクストリーム・スポーツ、これは凄い。

 

シークレット・パーティー (2012) / GENERATION UM...

キアヌ・リーヴスがコールガールの用心棒役。。。

 

音量を上げろタコ!なに歌ってんのか全然わかんねぇんだよ!! (2018)

三木聡監督作品、主役以外の出演者ほぼ同じ。松尾スズキが痩せてた。
インスタント沼も過去観ている。体操しようよ 2018
 
 (2017)
ショートムービーだったが、なかなか良かった。
 
草刈正雄が定年後、町内のラジオ体操クラブに入って、娘との関係を改善するお話
 
日本酒嫌いの農業大学の学生(川栄李奈)がワイナリーを希望していたが、クジ引きで酒蔵に研修行って、日本酒のすばらしさを知るというお話。
 
ライト/オフ (2016) / LIGHTS OUT
GEOでDVDを借りてみたので2回目。ライトが無いときに出てくるDIANA怖い。。
 
こちらもGEOでDVDを借りてみたので2回目。
ドウェイン・ジョンソンがパパだと、何でもやってくれそう。
あれ、 ジュマンジネクスト・レベルって、三作目?
 
ザ・コア (2003) / THE CORE
唇が何とも言えない、ヒラリー・スワンク
 
ラスト寸前に、アナベルが入っているケースが映って、けして開けてはいけないと。
 
 ということで、アマゾンプライムにあったので観た。
GEOで借りてDVDで観たけど。
ジェームズ・ワンは製作に回り、監督は「死霊館」で撮影監督を務めたジョン・R・レオネッティが担当。ということに。
 
あと1センチの恋 (2014) / LOVE, ROSIE
こちらもGEOでDVDを借りてみたので2回目。
タイトルは原題の方がはるかにいいね。

デビュー作『P.S.アイラヴユー』が世界的ベストセラーとなったセシリア・アハーンの『愛は虹の向こうに』を映画化したロマンティック・コメディ。

 P.S アイラブユーの原作者と同じになんだ。だから、観ていてしっくりしたんだ。

 

MAMA (2013) / MAMA

GEOに置いてあって、観ようかなと思った作品

ギレルモ・デル・トロ製作。

出演は「ゼロ・ダーク・サーティ」のジェシカ・チャステイン

役によってかなりイメージが違うね。

 

タクシー運転手 ~約束は海を越えて~ (2017) / A TAXI DRIVER

韓国の光州事件(1980年)って、記憶になかった。。。

 

お!バカんす家族 (2015) / VACATION

これだけ、おバカだと、人生楽しそう

 

アンセイン ~狂気の真実~ (2018) / UNSANE

よくわからない映画だったが、事実か、妄想なのか?

 

スーサイド・スクワッド (2016) / SUICIDE SQUAD

観たんだけど、結構覚えていなかった。ハーレクインはイイね。

 

バットマン vs スーパーマン ジャスティスの誕生 (2016) / BATMAN v SUPERMAN: DAWN OF JUSTICE

製作にクリストファー・ノーラン

マン・オブ・スティール (2013)、ジャスティス・リーグ (2017)もそうだった。

ワンダーウーマン出てきた。アクアマンもちょっと。

 

クロノス・コントロール (2017) / SINGULARITY

ジョン・キューザックが出ているで見たんだけど、よくわからなかった。

人間と同じアンドロイドのお話。自分が人間だと思っていた。。。

 

メメント (2000) / MEMENTO

クリストファー・ノーランの第2作品目

 

感染列島 (2008)

日本版、アウトブレイク (1995)

 

ヴァスト・オブ・ナイト (2019) /  THE VAST OF NIGHT

Amazon Original

 

人魚の眠る家 (2018)

難しい問題だが、他のおこちゃまがかわいそうなんだよね。

 

ファイナル・アワーズ (2013) / THESE FINAL HOURS

地球滅亡まで12時間とあるが、もっと長かったような気がする

 

勝手にふるえてろ (2017)

ちょっと変な松岡茉優がよかった。最近よく見るお兄さん、 渡辺大知というんだ

 

悪女/AKUJO (2017) / THE VILLAINESS

めっちゃ強いお姉さん、仮面ライダーじゃないけど、整形させられて、訓練させられて特殊部隊に。。。出ているお姉さんみんなキレイ。。。

 

ターザン:REBORN (2016)  / THE LEGEND OF TARZAN

ターザンってすごい昔から映画化されていた。ターザンって、貴族だったのね。

19世紀末の英国ロンドン

 

コンフィデンスマンJP (2019)

長澤まさみ、もう33歳だって。

 

おんなのこきらい (2014)

いろいろ大変だね。

 

覚悟はいいかそこの女子。 (2018)

20歳の中川大志、高校2年生は無理あるでしょう。伊藤健太郎も出てるよ。

唐田えりか、は21歳か。特別美人じゃないけどね。
 

見栄を張る (2016)

地味な映画だ。

 

アイ・アム・レジェンド (2007) / I  AM LEGEND

13年も前の映画なんだ。。。

 

テルマエ・ロマエ (2012)

テルマエ・ロマエ II (2014) 

監督の 武内英樹今夜、ロマンス劇場で(2018)、翔んで埼玉(2018) もね。

 

デトロイト (2017) / DETROIT

GEOでDVD借りて観たので、2回目。1967年のデトロイトの事件。

まだまだ人種差別が普通だった時代。。。

 

ぐるりのこと。 (2008)

リリー・フランキー、若いと思ったが既に45歳だった。

木村多江は、まだ30代だった。。。

二人で風呂に入っているシーンがある。。。結構きわどい。

 

アス (2019) / US

ゲット・アウトを観ようと思って、見損なっていたら、ジョーダン・ピールの第二作目。ラストが何とも言えない。。 

GODZILLA ゴジラ (2014) / GODZILLA

ゴジラがいいものになっていた。残りの2匹は、カマキリの恐竜?

 

映画 ひみつのアッコちゃん (2012)

もう8年も前なので。。。この頃から、綾瀬はるか、コメディうまいね。

 

はじまりのうた (2013) / BEGIN AGAIN

GEOでDVDで借りたので2度目。

キーラ・ナイトレイは、パイレーツ・オブ・カリビアンが有名

ちょっと痩せすぎっぽい。この時27~28歳

 

セルフレス/覚醒した記憶 (2015) / SELF/LESS

期待していなかったけど、かなり良かった。

 

RANMARU 神の舌を持つ男 (2016)
別題:
RANMARU 神の舌を持つ男 酒蔵若旦那怪死事件の影に潜むテキサス男とボヘミアン女将、そして美人村医者を追い詰める謎のかごめかごめ老婆軍団と三賢者の村の呪いに2サスマニアwithミヤケンとゴッドタン、ベロンチョアドベンチャー!略して…蘭丸は二度死ぬ。鬼灯デスロード編 (正式タイトル)

タイトルめっちゃ長い。。。

木村文乃がめっちぇ違う。。。。

監督・原案  堤幸彦 なので、Trick っぽい。よ。

 

ラストベガス (2013) / LAST VEGAS

 アメリカって、本当に独身最後のパーティーってやるもんなのね。

15000ドルが100000ドルになったら、嬉しいよね。

 

ライアーゲーム ザ・ファイナルステージ (2009)

ライアーゲーム -再生- (2012)

チャンと観たこと無いから、観た。第一作目は、有料だよ。

 

ヘルボーイ/ゴールデン・アーミー (2008) / HELLBOY II: THE GOLDEN ARMY

パンズ・ラビリンス (2006)ギレルモ・デル・トロ監督だったのね。

絵作りが似ていた。

 

ラストレシピ ~麒麟の舌の記憶~ (2017)

二宮和也、いろんな役やっているけど、演技が同じっぽい

 

コナン・ザ・バーバリアン (2011) / CONAN THE BARBARIAN

主演は、アクアマンの ジェイソン・モモア

アクアマンより先に、 バットマン vs スーパーマン ジャスティスの誕生 (2016) にちょびっとアクアマン出てたね。続いて、ジャスティス・リーグ (2017)

ワイルド・ブレイブ (2017) / BRAVEN もそうなんだね。

あの筋肉、身体の大きさ、あたしの3倍ぐらいあるよ。

 

進撃の巨人 ATTACK ON TITAN (2015) / ATTACK ON TITAN

進撃の巨人 ATTACK ON TITAN エンド オブ ザ ワールド (2015)/ ATTACK ON TITAN END OF THE WORLD

 

こどもつかい  (2016)

門脇麦ちゃん出ている。麦ちゃんの子供のころの母親役は、河井青葉

 

カメラを止めるな!スピンオフ『ハリウッド大作戦!』 (2019)

カメラを止めるな!リモート大作戦! (2020)

 

ルイスと不思議の時計 (2018) / THE HOUSE WITH A CLOCK IN ITS WALLS

ケイト・ブランシェットがちょっと痩せている。。。

ジャック・ブラックと言えば、ホリデイ (2006)のマイルズの役は最高だった。

 

ポゼッション (2012) / THE POSSESSION

娘に付いた悪魔祓いのお話。ユダヤ教キーラ・セジウィックが母親役で出ているがかなりおばちゃん。。。Closerの時とかなり違う。。。

80ドルのZynqボードは、RasPiサイズ

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

このツイート、結構、人気があった模様。

 元記事は、こちら。

www.cnx-software.com

スペックを引用します。

 Sipeed TANG Hex specifications:

SoC – Xilinx Zynq-7020 (XC7Z020-1CLG484) dual-core Arm Cortex-A9 processor and FPGA with 85K logic cells, 4.9Mb Block RAM, 220 DSP slices
System Memory – 1GB LPDDR3
Storage – 2 Gbit NAND Flash, microSD card socket
Networking – 10/100M Ethernet (RJ45) port via USB hub (LAN9514)
USB – 4x USB 2.0 ports
Debugging – 3-pin UART header, JTAG
Expansion – 26-pin header with GPIO, I2C, UART, FAN (PWM) pins,
Misc – 2x user LEDs, power button
Power Supply – 12V/3.5A via power barrel jack
Dimensions – Business card sized

 XC7020なので、PYNQと同じ。メモリは1GBなので、PYNQの倍?

Ethernetは、10/100M、USB は 4x USB 2.0 

なので、RasPi 3/4 より機能的には劣っていますが、80ドルでZynqが使えるという点ではいいのでは?

 

で、github には ドキュメントもありますね。

github.com

BSPもありますね。

github.com

Google の RISCV-DV

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

Google の RISCV-DVのソースコードを眺めてみました。

github.com

あたしは、Design 眺めるより、Verification 眺める方が好きなので。。。

こちら。test ディレクトリにある。

パッケージ ( riscv_instr_test_pkg.sv ) は、こちら

package riscv_instr_test_pkg;

  import uvm_pkg::*;
  import riscv_instr_pkg::*;

  `include "riscv_instr_base_test.sv"
  `include "riscv_instr_test_lib.sv"
  `include "riscv_instr_cov_test.sv"

endpackage

 

baseのテストになるものが、risc_instr_base_test.sv 

  • virtual function void build_phase(uvm_phase phase);
  • function void report_phase(uvm_phase phase);
  • virtual function void apply_directed_instr();
  • task run_phase(uvm_phase phase);
  • virtual function void randomize_cfg();

が定義されているが、apply_directed_instr は空。apply_directed_instr は、run_phase の中で呼ばれる。

task run_phase(uvm_phase phase);
  int fd;
  for(int i = 0; i < cfg.num_of_tests; i++) begin
    string test_name;
    randomize_cfg();
    riscv_instr::create_instr_list(cfg);
    asm_gen = riscv_asm_program_gen::type_id::create("asm_gen", , `gfn);
    asm_gen.cfg = cfg;
    asm_gen.get_directed_instr_stream();
    test_name = $sformatf("%0s_%0d.S", asm_file_name, i+start_idx);
    apply_directed_instr();
    `uvm_info(`gfn, "All directed instruction is applied", UVM_LOW)
    asm_gen.gen_program();
    asm_gen.gen_test_file(test_name);
  end
endtask

ダイレクト検証したいときは、test で apply_directed_instr を定義すればいい。

riscv_instr_test_lib.sv の riscv_rand_instr_test とか。

virtual function void apply_directed_instr();
  // Mix below directed instructino streams with the random instructions
  asm_gen.add_directed_instr_stream("riscv_load_store_rand_instr_stream", 4);
  asm_gen.add_directed_instr_stream("riscv_loop_instr", 3);
  asm_gen.add_directed_instr_stream("riscv_jal_instr", 4);
  asm_gen.add_directed_instr_stream("riscv_hazard_instr_stream", 4);
  asm_gen.add_directed_instr_stream("riscv_load_store_hazard_instr_stream", 4);
  asm_gen.add_directed_instr_stream("riscv_multi_page_load_store_instr_stream", 4);
  asm_gen.add_directed_instr_stream("riscv_mem_region_stress_test", 4);
endfunction

 

制約付きランダム生成をする場合は、randomize_cfg 内で色々定義すればいい。

たとえば、riscv_instr_test_lib.sv の riscv_rand_instr_test では、次のようなことを行っている。

virtual function void randomize_cfg();
  cfg.instr_cnt = 10000;
  cfg.num_of_sub_program = 5;
  `DV_CHECK_RANDOMIZE_FATAL(cfg)
  `uvm_info(`gfn, $sformatf("riscv_instr_gen_config is randomized:\n%0s",
  cfg.sprint()), UVM_LOW)
endfunction

インストラクションの数は、cfg.instr_cnt で設定。

 

トップテストベンチは、こちら

module riscv_instr_gen_tb_top;

  import uvm_pkg::*;
  import riscv_instr_test_pkg::*;

  initial begin
    run_test();
  end

endmodule

UVM の run_test を呼んでいるだけ。

このファイルは、files.f で使われている。

// HEADERS
+incdir+${RISCV_DV_ROOT}/src
+incdir+${RISCV_DV_ROOT}/test

// SOURCES
${RISCV_DV_ROOT}/src/riscv_signature_pkg.sv
${RISCV_DV_ROOT}/src/riscv_instr_pkg.sv
${RISCV_DV_ROOT}/test/riscv_instr_test_pkg.sv
${RISCV_DV_ROOT}/test/riscv_instr_gen_tb_top.sv

 

このファイル (files.f) は、 ここ(simulator.yaml)で使われている。

simulator.yaml では、

vcs (Synopsys)

ius (Cadence)

questa (Mentor)

dsim 

qrun

riviera (Aldec)