Vengineerの戯言

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

Google Edge TPUのハードウェアいろいろ

はじめに

Google Edge TPUに関して、ハードウェアに関して、ちょっとまとめてみます。

Google Tensor の AI Benchmark は、この時点でトップです。

細かいところでいろいろ

Multi-Chip Package

Google Tensorデバイスドライバには、edgetpu-mcp.h なるファイルがあります。このファイルを覗いてみると、

  • EdgeTPU multi-chip package management.

とあります。EDGETPU_HAS_MCPマクロが定義されている時のみ有効のようです。今回は定義されていないので、有効ではないようです。

X86

このファイルには、CONFIG_X86 というマクロを使っています。この部分は、Google Coral の Edge TPU 用でしょうか?

TILE 数

このファイルには、Edge TPU 内の TILES数が定義されています。FPGAのプロトタイプでは 4 TILES になっていますが、本物は 16 TILES になっています。

An Evaluation of Edge TPU Accelerators for Convolutional Neural Networks では、

  • V1 : 800MHz、(4, 4)
  • V2 : 1066MHz、(4, 4)
  • V3 : 1066MHz、(4, 1)

とあります。そして、V2は 1066MHz ですが、Google Tensor の Edge TPU も 1066MHz のようです。

DRAM、あり/ なし

  • Pixel 4 用のASICには、DRAM有です。
  • Coral Edge TPU と Google Tensor の Edge TPU は、DRAM無です。

Google Tensor内のEdgeTPUのデバイスドライバ

はじめに

水曜日(11/3) に Google Tensor について、ハードウェアスペックについて書き込ました。

Google Pixel 6/6 Proに搭載されているGoogle Tensor(開発コード名はGS101)というSoC。そのSoCには、EdgeTPUも載っています。 今日は、搭載されている EdgeTPU のデバイスドライバソースコードを見つけたので、ちょっと掘ってみました。

ざっくりわかったこと

GS101のEdgeTPUのデバイスドライバソースコードを眺めていたら、タイル数は16っぽい。かつ、アーキテクチャは 単体のEdgeTPU、Pixel 4のASICのEdgeTPUと同じっぽです。

デバイスドライバ的には、Mailbox経由でEdgeTPU側のCPUとの通信しているだけなので、EdgeTPU側で何をやってるかまでは不明です。

  • Pixel 4のEdgeTPUは、darwinn
  • Pixel 6のEdgeTPUは、abrolhos

ソースコードの場所

EdgeTPUのデバイスドライバは、ここ にありました。

android/kernel/google-modules/edgetpu

です。

バイス

このファイルに、デバイスドライバ名がありました。

GS101 が Google Tensor のコード名なんでしょうね。

androidの中では、/dev/abolhos を /dev/edgetpu にシンボリックリンクしています。

このファイルに、デバイス名がありますね。

static const struct of_device_id edgetpu_of_match[] = {
    /* TODO(b/190677977): remove  */
    { .compatible = "google,darwinn", },
    { .compatible = "google,edgetpu-gs101", },
    { /* end of list */ },
};

IOCTL

ioctl のファイルは、edgetpu.h です。

  • EDGETPU_MAP_BUFFER
  • EDGETPU_UNMAP_BUFFER
  • EDGETPU_SET_EVENTFD
  • EDGETPU_CREATE_GROUP
  • EDGETPU_JOIN_GROUP
  • EDGETPU_FINALIZE_GROUP
  • EDGETPU_SET_PERDIE_EVENTFD
  • EDGETPU_UNSET_EVENT
  • EDGETPU_UNSET_PERDIE_EVENT
  • EDGETPU_SYNC_BUFFER
  • EDGETPU_MAP_DMABUF
  • EDGETPU_UNMAP_DMABUF
  • EDGETPU_ALLOCATE_DEVICE_BUFFER
  • EDGETPU_CREATE_SYNC_FENCE
  • EDGETPU_SIGNAL_SYNC_FENCE
  • EDGETPU_MAP_BULK_DMABUF
  • EDGETPU_UNMAP_BULK_DMABU
  • EDGETPU_SYNC_FENCE_STATUS
  • EDGETPU_RELEASE_WAKE_LOCK
  • EDGETPU_ACQUIRE_WAKE_LOCK
  • EDGETPU_FIRMWARE_VERSION
  • EDGETPU_GET_TPU_TIMESTAMP
  • EDGETPU_GET_DRAM_USAGE
  • EDGETPU_ACQUIRE_EXT_MAILBOX
  • EDGETPU_RELEASE_EXT_MAILBOX
  • EDGETPU_GET_FATAL_ERRORS

Mailbox

ホストとEdgeTPUは、Mailbox を使って通信しています。このホスト以外にもあるようです。

/* mailbox types */
#define EDGETPU_EXT_MAILBOX_TYPE_TZ        1
#define EDGETPU_EXT_MAILBOX_TYPE_GSA       2
#define EDGETPU_EXT_MAILBOX_TYPE_DSP       3

GSAは、ホストとのMailboxです。TZとDSPは、謎です。

TZは、このファイル内の abrolhos_check_ext_mailbox_args関数では、TZを使っているようです。

おわりに

この部分に、次のようなコメントがありました。 CadenceのエミュレータPalladiumを使っていたんですね。

/* Set extra ludicrously high to 60 seconds for (slow) Palladium emulation. */

Google Tensor G1

はじめに

GoogleSamsungと組んで独自SoCであるGoogle Tensorを発表しました。

Pixel 6/Pilxe 6 Pro に搭載しているということです。

blog.google

上記のBlog、Googleにて検索したら、2頁目に出てきました。面白いですね。

Google Tensor とは?

上記のブログには詳細は載っていないですね。しかしながら、Anandtech がかなり詳しい記事をアップしてくれています。

www.anandtech.com

この記事によると、Google Tensorは、SamsungのExynos 2100の兄弟チップということ。

Exynos 2100 は、

  • CPU : Cortex-X1 x 1@2.91GHz (512KB x 1 L2) + Cortex-A78 x 3 @2.81GHz (512KB x 3 L2) + Cortex-A55 x4 @ 2.20GHz (64KB x 4 L2)
  • GPU : Arm Mali G78 MP14 @ 854MHz
  • ISP : Full Exynos ISP Blocks + DSP
  • NPU : Exynos NPU @ 1352MHz

で、Google Tensor は、

  • CPU : Cortex-X1 x 2@2.80GHz (1024KB x 2 L2) + Cortex-A76 x 2 @2.25GHz (256KB x 2 L2) + Cortex-A55 x4 @ 1.8GHz (128KB x 4 L2)
  • GPU : Arm Mali G78 MP20 @ 848MHz(shaders), 996MHz(tier/L2)
  • ISP : Hybrid Exynos + Google ISP
  • NPU : Google edgeTPU @ 1066MHz

です。

CPUは、両方とも3種類のコアで構成されていますが、Google Tensorは Cortex-X1 の L2が1024KBとSamsung 2100の倍になっています。また、mid CPUコアが A76 と A78の違いがあります。 X1とA78は 5nmプロセスをターゲットにしたCPUコアで2020年5月に発表されています。

上記の記事の中に、GS101というSoCのドライバのソースコードへのリンクがあります。この中のgs101-cpu.dtiを覗いてみると、CPUコアは 4 + 2 + 2 の構成になっています。 G CPUコアの動作周波数ですが、4コアが1.803GHz2コアが2.253GHz、もう一つの2コアが2.302GHzです。こちらは A0 チップのようで、B0チップではもう一つのコアは2.802GHzのようです。

ということで、このソースコードは、Google Tensor の A0 chip/B0 chip (B0 chipが製品版?)のものだと思われます。

まだ、GPUのコードを覗いてみたら、GPUのクロックが996MHz/848MHzとあるのであっているんでしょうね。

というか、このソースコードから記事に書いてある仕様を書きだしたのだろうか?

Pixel 6 / Pixel 6 Pro のコードネーム

このディレクトリに、

という名のファイルがたくさんあるのですが、どうやら

  • Oriole => Pixel 6
  • Raven => Pixel 6 Pro

のコードネームのようです。Raviole と Slider というのもあるのですが、これはなんでしょうかね? Android のソースコードにも同じ名前がありますね。 もっと下の方を見ると、slider1 / slider2 / whitefin / whitefin1 / whitefin2 / whitefin2v2 なるものもあります。

TPU

このコードがTPUっぽいです。 動作周波数は、1.066GHz / 800MHz / 500MHz / 226 MHz のようです。

GSAなるドライバでTPUへファームウェアをダウンロードするっぽい?

Message Box経由でファームウェアのダウンロード命令を送っているので、TPU側にはCPUっぽいものがいるんでしょうね。

github.com

gsa_mbox.cの gsa_send_mbox_cmd の中でexec_mbox_cmd_syncという関数を読んでいて、この中でいくつかのレジスタに書き込んだあと、割り込みで戻ってくるまで待って、ステータスをチェックしているようです。

おわりに

上記のソースコードには、2019 Google LLC とありますので、かなり前からSamsungと組んで開発していたんでしょうね。GS101のチップでは、big Coreの動作周波数はA0では2.3GHz、B0では2.802GHzということでCPUコアを変えている可能性もありますね。

追記)、2021.11.07

AI Benchmark (Android端末でのAI性能なので、AppleiPhoneは載っていません)にて、Google Prixel 6 Pro/Google Pixel 6は、一位と二位になっています。

NNAPI 1.1 (FP16) が 40550 (6 Pro)、NNAPI 1.2 (FP16) が 78927 (6 Pro) です。Huawei/Hisilicon の Kiin 9000よりも速いです。

Pixe 4 XL の NNAPI 1.1 (FP16) が 5447 で、NNAPI 1.2 (FP16) が11649 なのでかなり速くなっています。Pixel a4 5G / Pixel 5 / Pixel 3 / Pixel 3 XL / Pixel 4a / Pixel 3a / Pixel 3a XL / Pixel 2 XL / Pixel 2 / Pixel / Pixel XL の順です。Edge TPUを搭載していない Pixel は、QualcommのSnapdragonなのでそれほど速くないんですよね。ちなみに、Snapdragon 888搭載スマホでは、NNAPI 1.1 (FP16)で、13000弱、NNAPI 1.2 (FP16)で26500前後ですので、今回のGoogle Tensorの性能向上は、かなり大きいと思います。

AMD Turin

もう11月ですね。今年も残り2か月ですね。

はじめに

Twitter に流れてきた AMD の Zen 5世代のEPYCのコードネームである、Turin 。

northwood.blog.fc2.com

記録として残します。

復習、Rome/Milan/Genoa/Bergamo

現在のTSMC 7nmのZen 3世代の Rome/Milan が 8 CPU die (CCD : CPU chiplet die)で 64コア。Milan-Xは CCDにCacheを3Dで積層したものなんでコア数は同じ。

これに対して、TSMC 5nm の Zen 4世代の Genoa は 12 CPU die で 96コア。I/O Chip が変更され 、12 CPU die の接続ができ、メモリもDDR4からDDR5にアップグレード。 上記の記事では、Genoaだけでなく、Bergamo (128コア)があるようなので、I/O Chip は 12 CPU die だけでなく、16 CPU die も接続できるということなのでしょうかね。 Genoa と Bergamo は AMD SP5ソケットなので、I/Oは同じなんでしょうね。

Zen 3 世代の I/O Chip は Globa Foundriesの 14nm で製造。 この記事を読むと、AMDはGlobal Foundriesから2022年から2024年に16憶ドルの半導体を購入するとあるのですが、まだ2021年です。。。

Zen 2のRome/MilanからPackageが大きくなるので、I/O Chipが大きくなっても問題ないと思いますが、8 が 16 になるとI/O数が増えちゃんですがどうなんでしょうか?

I/O Chip の die shot の写真がここ(Wikipedia)にあったので、説明のために引用します。

f:id:Vengineer:20211031105017p:plain

写真の長手方向に4か所、CPU chiplet die への I/O が並んでいます。die の周辺になりますが、2列になっていますね。(長辺の上下の真ん中は、PCIe ですね) この I/O Chip ではメモリ(DDR4)は、8チャネルですが、Zen 4 では12チャネルになるようです。112チャネルということは、短辺に6チェンネルになるということですね。

Turin

TSMC 3nm で 196コア、256コア

Zen 4 世代の I/O chip を Zen 5世代で使うとなると、12 CPU die と 16 CPU die になり、CPU chiplet die には 16コアという構成になるんですね。

7nm で 8コアが実現できているので、2世代新しくなった 3nm では倍の 16コアを実現できそう。あとは動作周波数がどうなるかですね。

おわりに

Ampere Computingを振り返ってみた、でも見てみましたが、AMDは、Zen 5世代によって、Ampere Computing の 128コアに対抗できるようになりますね。

vengineer.hatenablog.com

  • Intel : Sapphire Rapids は 56コア
  • AMD : Rome/Milan (64コア)、Geona (96コア)、Bergamo (128コア)、Turin (196コア/256コア)
  • Ampere Computing : Altra (80コア)、Altra Max (128コア)

になり、Intel がコア数で取り残されている感じがしますが、どうなんでしょうか?

「LIFE SHIFT 2」を読みました。

はじめに

とあるサイトの記事を読んでいたら、LIFE SHIFT 2 が 10月29日に発売ということを知ったので、発売日の先週の金曜日(10月29日)にKindle版を買いました。

str.toyokeizai.net

アマゾンだと、こちら

その日の夜に25%を読み、昨日(土曜日)に残りを読みました。

原題は、LIFE SHIFT ではない

本のタイトルが LIFE SHIFT 2 なので、LIFE SHIFTの続編なのか?と思っていたのですが違います。

LIFE SHIFTの原題は、「The 100-years life」です。LIFE SHIFT 2 の原題は、「The new long life」です。

LIFE SHIFT 2の帯には、

日本人の不安に応じる「ライフ・シフト」最新版 シリーズ50マン部、待望の実践編!

とあるので、続編という位置づけというのではなく、更新って感じなのでしょうか?

「The 100-years life」となると、「人生100年」、「The new long life」となると、「新しい長い人生」となり、100年から減ったのか?増えたのか?

この本は、読むべき本か?

読みたい人は読めばいいし、読みたくなければ読まないでいいと思います。

あたしは、「ワーク・シフト」は、下記のように2012年に読んでいますが、「LIFE SHIFT」は読んでいません。

vengineer.hatenablog.com

気になったところ

本文ではなく、日本語版のアンドリューの序文のこの部分

個人の責任になっているとありますが、自分の人生なので自分でどうにか?しないといけないとは思います。 (とは言え、できないこともあるので、その部分は何らかの手当は必要で、そこは政府とかにお願いしたい気持ちです)

大学・大学院を出るまでは学習することに注力し、その後、社会に出て働いてお金を稼ぐ。ここで資金とスキルをどう得るかがその後の健康、生きがい、人間関係に大きな影響を与えるのかな?と

もう一つは、こちら。現状維持が悪いとは思っていないが、変化はそれほど無いので、いろいろな人との関係は刺激を得られるという意味で重要で、その刺激によって自分の未来が出来上がっていくのだな?と。

おわりに

ひさしぶりに、一気に本を読みました。

なかなか楽しかったです。

2021年10月の映画鑑賞

10月、23本、アマゾン100円(7本)

  • 9月、36本、アマゾン100円(6本)
  • 8月、33本、アマゾン100円(3本)
  • 7月、50本、アマゾン100円(6本)
  • 6月、57本、アマゾン100円(6本)
  • 5月、50本、アマゾン100円(7本)
  • 4月、37本、アマゾン100円(9本)
  • 3月、32本、アマゾン100円(12本)、DVD(3本)
  • 2月、25本、アマゾン100円(10本)
  • 1月:26本、アマゾン100円(5本)

  • 10月末までの映画鑑賞、367本

007/美しき獲物たち (1985) / A VIEW TO A KILL ロジャー・ムーア最後の作品

007/リビング・デイライツ (1987) / THE LIVING DAYLIGHTS 4代目、ティモシー・ダルトンソ連(KGB)、インド、

クイーン&スリム (2019) / QUEEN & SLIM、アマゾン100円 日本劇場未公開。白人の警官に車を止められ、同乗していた女性が撃たれて、衝動的に警官を射殺してしまい、その後、逃走。最後はフロリダの飛行場で射殺されちゃうお話。

007/消されたライセンス (1989) / LICENCE TO KILL CIAの友人が麻薬マフィアに大怪我させられた(結婚式当日の夜に妻も殺された)。友人を助けるために007を辞め、麻薬マフィアに復讐するという今までと違う展開

ソング・トゥ・ソング (2017) / SONG TO SONG ルーニー・マーラ(新しいドラゴンタトゥーの女の主演)、 ナタリー・ポートマンケイト・ブランシェットが出てきたが、よくわからないラブストーリだった、アマゾン100円

007/ゴールデンアイ (1995) / GOLDENEYE 6年ぶりの007、ピアース・ブロスナンに!ロシアの軍人(将軍)がゴールデンアイを盗み、悪いことをするお話。

クライシス (2021) / CRISIS、アマゾン100円

screenonline.jp

007/トゥモロー・ネバー・ダイ (1997) / TOMORROW NEVER DIES テロリストとの闘いと思ったが、パイプライン(天然ガス)の利権に関するもの

007/ワールド・イズ・ノット・イナフ (1999) / THE WORLD IS NOT ENOUGH パイプライン(天然ガス)の利権に関するもの

007/ダイ・アナザー・デイ (2002) / DIE ANOTHER DAY 北朝鮮の将軍の息子(大佐)がDNAを変えちゃう医療技術で顔などを変えて、盗んだダイヤモンドをアイルランドで発掘されたものとして売り出したセレブという設定。

バーブ&スター ヴィスタ・デル・マールへ行く (2021) / Barb and Star Go to Vista Del Ma、アマゾン100円 仲良しおばちゃん二人組がフロリダに遊びに行くお話。まあまあのコメディ。本人たちはコメディをやっている感は全くなし。

レイニーデイ・イン・ニューヨーク (2019) / A RAINY DAY IN NEW YORK、アマゾン100円 ウッディ・アレン(1935年生まれ)監督作品。ニューヨークのお金持ちの人のお話。とは言え、皆さん、いろいろなお悩みを抱えているようです。

弱虫ペダル (2020) 面白かったので、アニメ観ることにした

ライブリポート (2019) / LINE OF DUTY、アマゾン100円 新しい視点の警察もの。アーロン・エッカートが主演で制作にも入っている

ハンナ (2011) / HANNA シアーシャ・ローナン主演(当時16-17才)のアクション映画

決算!忠臣蔵 (2019) 面白い、面白過ぎる。。。堤真一大石内蔵助、ダメダメすぎる

イフ・アイ・ステイ 愛が還る場所 (2014) / IF I STAY クロエちゃんがカワイイ。。。。

魔女がいっぱい (2020) / THE WITCHES、アマゾン100円 大魔女役のアン・ハサウェイがいい感じ

劇場版 弱虫ペダル (2015) アニメ版。

ラスト・ムービースター (2017) / THE LAST MOVIE STAR バート・レイノイズがヴィック・エドワーズという俳優の役で出ている。この時、81歳です。

ビトレイヤー (2013) / WELCOME TO THE PUNCH ジェームズ・マカヴォイが刑事役をやっていて、若い時に右膝を打たれた復讐をするというお話。かなり、地味。

嘘八百 京町ロワイヤル 前作は、嘘八百 (2017)

ペット・セメタリー (1989) / PET SEMATARY、アマゾン100円 何となく覚えている? デジタル・リマスターなので、映像はキレイだった。

ストーリーは、書籍とほぼ同じ。 違いは、

  • ノーマ(チャドの妻)が出てこない
  • レイチェルが家に戻る時の手段が途中から違う
  • ラストがちょこっとぐらいかな?

最高の人生の見つけ方 (2019) お金持ちは偉大。

mellow メロウ (2020) 田中圭が花屋。ゆるキャン△志田彩良が中学生役はちょっと。

半導体チップの雑談、明日で10 =>11回目です。

はじめに

半導体チップの雑談

8月の後半から半導体チップの雑談を毎週日曜日の11:00-12:00 の1時間、Google Meetにて行っています。

2021/08/15(日)

NeuReality

2021/08/22(日)

Tesla Dojo D1 Chip

2021/08/29(日)

Intel Sapphire Rapids and Intel Ponte Vecchio

2021/09/05(日)

都合によりお休み

2021/09/12(日)

Cerebras Systems : CS-2/MemoryX/SwarmX Graphcore : なぜ? HBMではなく、DDR4なのか? Simple Machine ???

2021/09/19(日)

AMD GPGPU、MI100/200

この回は、あたしはお外からスマホでお話しました。

台風一過で空はこんな感じで晴天だったんですが、風が強くて、スマホのマイクで風の音を拾っちゃうようなので、桜の木の下にしゃがんで風が来ないようにしゃべっていました。 ジョギングやサイクリングしている人の注目の的になっていましたよー。

f:id:Vengineer:20210920082636p:plain

AMDGPGPUのMI100/M200のお話の前に、AMD EPYC 特に ROME についての説明をして、どのように AMDがMI100/MI200をどのように投入したのか? また、年末に出るであろうM300についてのお話もしました。後半では

2022年から2023年には出てくるであろう

の CPU & GPGPU のシステムについての妄想についてもお話しました。

vengineer.hatenablog.com

2021/09/26(日)

Xilinx Versal & AI Engine について、お話しました。 Versal、お高い評価ボードVCK190 評価ボード(約12000ドル)、VMK180 評価キット(約8500ドル)、ちょっとお安いAI 推論向け VCK5000 Versal 開発カード(約12000ドル => 約2500ドルに値下げ)しかなくて、個人が簡単に入手するには、Versal AI Edge が出る来年(2022)年の後半、ということでまだまだ、アクションはできていないようです。

まー、UltraScale+ MPSoCの時もサンプルがやっと出てきた 2016/02/20 に、ZynqMP勉強会 がを開催しているので、先行してやるのは全然ありだと思います。

vengineer.hatenablog.com

2021/10/03(日)

SiFiveについてです。SiFIveは Open Silicon という半導体設計会社を買収し、OpenFiveという内部組織から子会社として分社しました。 OpenFiveでは、SiFiveが行っているRISC-Vコア以外のIP、HBM/DDR Memory Controller、USB 、Die-to-Die、EthernetなどのIPを開発しています。これらのIPをうまく使って、大きなSoCを開発するのではなく、小さなSoCを開発して、Die-to-Dieで接続する方法(AMDのCPU、RyzenやEPYC)やメインのある程度の大きさのSoC + 周りに小さなDieをDie-to-Dieで接続する方法(Intel FPGAIntel GPU Ponte VicchioのEMBI)というソリューションを提供していくって感じです。

vengineer.hatenablog.com

SiFIve + OpenFive のこれらのChipletsソリューションは、特別なことではなく、他の会社でもいろいろとやっているよ、というお話もしました。

2021/10/10(日)

Intel Gen12 & Chipset のお話です。

  • メモリは、DDR4 から DDR4/DDR5 対応
  • GPU用PCIe x16 は、Gen4 から Gen5 に
  • DMI (CPU <=> I/O Chipset間)は、x8 DMI 3.0 から x8 DMI 4.0 へ

vengineer.hatenablog.com

2021/10/17(日)

Ampere ComputingのAltra Max

2021/10/24( 日)

Apple M1 Pro/M1 Max のお話です。

vengineer.hatenablog.com

そして、明日、2021/10/31(日)

TSMCの売り上げのお話です。

vengineer.hatenablog.com

おわりに

この半導体チップの雑談ですが、ブログに書いてないことやブログ間での繋がりもお話しています。

スティーブ・ジョブズが2005年に母校のStanford大学での有名な言葉、「Connecting the Dots」

youtu.be

そんな感じで、点と点を繋げるおしごと、しているですよ。

追記)、2021.12.26

11回+9回なので、20回になりました。