Vengineerの戯言

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

Apple M1 Pro/M1 Max機のSSDについて

はじめに

Apple Macbook Pro 14インチ/16インチに搭載されている M1 Pro/M1 Max の SSD(NAND)について、妄想しました。

Apple M1機のSSDについては、下記のように今年(2021年)2月23日のブログに書きました。

vengineer.hatenablog.com

M1機では、2個のSSD(NAND)が搭載されています。上記のブログでの結論は、M1とSSDの接続は PCIe Gen4 x1 (1 lane)になっているのかな?ということです。

M1 の die shot を振り返る

下記は、Apple が公開している M1 の die shot です。説明のために引用します。die の左下の部分(黄緑の点線で囲った部分)がSERDESがある部分です。

f:id:Vengineer:20211123084639p:plain

その部分を拡大し、180度回転後、コメントを追加したのが下図です。右側に Thunderbolt 4 が 3 ポート、その隣に、PCIe Gen4 が 3 ポート、その隣に、NVMe が 2 ポート (実際はPCIe Gen4 が 2ポート)

f:id:Vengineer:20211123085327p:plain

M1 Pro/M1 Max の die shot を振り返る

下記は、Apple が公開している M1 Pro の die shot です。説明のために引用します。die の 上の部分がどうやら SERDES があるのでこの部分に PCIe がありそうです。

f:id:Vengineer:20211123084857p:plain

その右上の部分を拡大し、何が載っているかをコメントしたのが下記の図です。

f:id:Vengineer:20211123083912p:plain

上記ののも右側には、4つの Thunderbolt 4 (USB 3.x) があります。Macbook Pro 14インチ/16インチには、3つのThunderbolt 4のポートがあります。また、HDMIポートも付いていて、このHDMIポートは Thunderbolt 4.0のDisplayport から HDMIに変換しているっぽいです。

真ん中には、USB 3.x が 1ポートあるます。右側の Thunderbolt 4.0 と非常に否定ますが、下の部分がちょっと違います。その左に、PCIe Gen4 が 4ポート、そして、その左に NVMe 用に 8 ポート (実際はPCIe Gen4 が 8ポート)

Asahi Linux の dts を確認する

M1/M1 Pro/M1 Max搭載のマシンでLinuxを動かすという Asahi Linuxソースコード(github)のdtsから各デバイスの構成を確認してみました。

master branch ではなく、t6000/bringup-work branch にあります。

M1

M1機は、t8103.dtsi の中に NVMe のエントリがあります。デバイス名としては、NVMe ではなく、ans2 です。compatible は、"apple,t8103-asc-xxx"です。

      ans: mbox@277408000 {
            compatible = "apple,t8103-asc-mailbox";
            reg = <0x2 0x77408000 0x0 0x4000>;
            interrupt-parent = <&aic>;
            interrupts = <AIC_IRQ 583 IRQ_TYPE_LEVEL_HIGH>,
                <AIC_IRQ 584 IRQ_TYPE_LEVEL_HIGH>,
                <AIC_IRQ 585 IRQ_TYPE_LEVEL_HIGH>,
                <AIC_IRQ 586 IRQ_TYPE_LEVEL_HIGH>;
            interrupt-names = "send-empty", "send-not-empty",
                "recv-empty", "recv-not-empty";
            power-domains = <&ps_ans2>;
            #mbox-cells = <0>;
        };

        sart: sart@27bc50000 {
            compatible = "apple,t8103-sart";
            reg = <0x2 0x7bc50000 0x0 0x10000>;
            power-domains = <&ps_ans2>;
        };

        ans2: nvme@27bcc0000 {
            compatible = "apple,t8103-ans-nvme";
            reg = <0x2 0x7bcc0000 0x0 0x40000>, <0x2 0x77400000 0x0 0x4000>;
            reg-names = "nvme", "coproc";
            interrupt-parent = <&aic>;
            interrupts = <AIC_IRQ 590 IRQ_TYPE_LEVEL_HIGH>;
            mboxes = <&ans>;
            apple,sart = <&sart>;
            power-domains = <&ps_ans2>;
         };

M1 Pro/M1 Max

t6001.dtsi にあります。t6001.dtsi は、M1 Maxです。t6000.dtsi が M1 Pro です。t6000.dtsi は中で t6001.dtsi を include しているだけです。こちらも、ans2、compatible は apple,t8103-asc-xxx" で M1 と同じです。

     ans2_mbox: mbox@38f408000 {
            compatible = "apple,t8103-asc-mailbox";
            reg = <0x3 0x8f408000 0x0 0x4000>;
            interrupt-parent = <&aic>;
            interrupts = <AIC_IRQ 0 1069 IRQ_TYPE_LEVEL_HIGH>,
                <AIC_IRQ 0 1070 IRQ_TYPE_LEVEL_HIGH>,
                <AIC_IRQ 0 1071 IRQ_TYPE_LEVEL_HIGH>,
                <AIC_IRQ 0 1072 IRQ_TYPE_LEVEL_HIGH>;
            interrupt-names = "send-empty", "send-not-empty",
                "recv-empty", "recv-not-empty";
            power-domains = <&ps_ans2>;
            #mbox-cells = <0>;
        };

        sart: sart@393c50000 {
            compatible = "apple,t6000-sart";
            reg = <0x3 0x93c50000 0x0 0x10000>;
            power-domains = <&ps_ans2>;
        };

        ans2: nvme@393cc0000 {
            compatible = "apple,t8103-ans-nvme";
            reg = <0x3 0x93cc0000 0x0 0x40000>, <0x3 0x8f400000 0x0 0x4000>;
            reg-names = "nvme", "coproc";
            interrupt-parent = <&aic>;
            interrupts = <AIC_IRQ 0 1613 IRQ_TYPE_LEVEL_HIGH>;
            mboxes = <&ans2_mbox>;
            apple,sart = <&sart>;
            power-domains = <&ps_ans2>;
        };

実機で確認する

IFIXITの 2021 MacBook Pro Teardown: A Glimpse at a Better Timeline にて、14インチと16インチのMacbook Proが分解されています。

14インチに関しては分解されていて、メインの基板の両面の写真も載っています。その写真によりと、片面にSSDは2個載っていて、両面で4個載っています。また、片面には未実装部分が2か所あります。つまり、8個のSSDが搭載できるようになっています。SSDが載っているのは同じ側で4個がひと塊になっているようです。この写真のSSDは128GBのもので4個で512GBになります。

一方、16インチに関してはメインの基板までの分解されていません。しかしながら、片面にSSDが4個搭載されています。反対側には未実装部分が4か所、合計で8個のSSDが搭載できるようです。これは、14インチと同じになっていると思います。

参考:MegaChips MCDP2920 DisplayPort-to-HDMI Converter が載っています。これは、M1 Pro/M1 Max の Thunderbolt 4のDisplayport => HDMI (コネクタ)に使われています。

まとめ

前回、M1機では、2個のSSDが PCIe Gen4 x1 相当でそれぞれ繋がっていると妄想しました。

今回、M1 Pro/M1 Max機では、8個のSSDが PCIe Gen4 x1 相当でそれぞれ繋がっているのだろうと、妄想できました。

Asahi Linuxソースコードから M1 と M1 Pro/M1 Max の NVMe 部分は同じで、接続するSSDの数の内部(ハードウェア)で隠蔽しているでは?と思っています。

M1のSSDの性能がWrite(2190.1 MB/s), Read(2676.4 MB/s)に対して、MBP 2021 - SSD Speed Comparison - Please Contribute! によると、Write(4300-7398MB.s), Read(5100-5855 MB/s) になっています。Readの値はそれほどばらつきはありませんが、Writeの値のばらつきは大きいです。512GB < 1TB < 2TB < 4TB < 8TB とサイズが大きくなるほど性能が向上しています。これって、SSD側にあるバッファが大きくなっているからでしょうかね。

ちなみに、PCIe Gen4 x1 の論理最大転送レートは 16Gbps (2GB/s) であるので、8ポートだと、16GB/s まではいきそうです。ReadもWriteもそこまではいっていませんね。

Intel Meteor Lakeの die ?

はじめに

北森瓦版のこの記事で知った Intel の次世代CPU である Meteor Lake の die。4 die で Forveros を使うということです。

northwood.blog.fc2.com

9月にテープインしていたということで、2か月半ぐらい経っていますね。

g-pc.info

Alder Lake

12世代のCPUである Alder Lake の die (1 die)はこんな感じのようです。この写真は4コアなので Core i5 なんでしょうか?

  • 左上の 4x PCIe4 PHYは、SSDとの接続用ですかね。
  • 右上のI/O Chipとの接続の DMI 4.0 (Gen 4 x8相当)、4x PCIe4 PHY に比べて小さい気がします。
  • 右上は、2x 40Gb/s なので ThunderBolt 4なんでしょうね。結構デカいですよ。

Meteor Lake

14世代CPUのMeteor Lake は、Intelの発表では、3つの die から構成されているようでしたが、4つの die から構成されているようです。

pc.watch.impress.co.jp

  • Compute die
  • iGPU die
  • SoC die
  • これは?

Raptor Lake

13世代CPUのRaptor Lakeは、12世代CPUのAlder Lakeの改良版のようです。なので、1 die なんでしょうね。

おわりに

サーバーのXeon の Sapphire Rapidでは、4die で1つのPackageになっていましたが、デスクトップは次の次の Meteor Lakeからマルチ dieになるのですね。

AMDがかなり前からマルチ dieで攻めてきていて、Intelもやっとどうなってきた?という感じでしょうか?

下記の記事にいろいろと書いてありますが、TSMCに対して、国防という意味で米国はIntelにかなり力を入れている感じなのでしょうか。。。 www.cnet.com

書籍:チームが自然に生まれ変わる、を読んで

はじめに

書籍:チームが自然に生まれ変わる

TwitterのTLに流れてきたので、発売日にKindle版を買って読みました。

著者は、堀田 創 さん(株式会社シナモン 執行役員/フューチャリスト)と李 英俊 さん(マインドセット株式会社代表取締役)

ほとんど、堀田さんが書いているっぽいです。

リーダーでチームメンバーが居る人は読んでみるといいのでは?と思いました。

気になったことのメモ

  • P.147 : パーパスの自分ごと化
  • P.205 : フィードフォワード (Feedforward) 型の面談
  • P.208 : リーダーは「WHY」を避けた方がいいということだ
  • P.209 : 実現したい未来に向けての臨場感を高めることである
  • P.212 : OODAループである
  • P.212 : OODAも「観察 (Observe)」->「方向づけ (Orient)」->「決断 (Decide)」->「行動 (Action)」という4つの段階から構成されている
  • P.213 : 職場内のいわゆる心理的安全性 (PsychologicalSafty) を高めていくうえでも、フィードフォワードな会話は欠かせないのである
  • P.220 : 大切なのは「言葉」ではなく「物語」
  • P.231 : Have toを捨てる。まず決断、プロセスはあと
  • P232 : セルフ・エンフィカシー
  • P.233 : 集団的エンフィカシー

セルフ・エフィカシー(自己効力感) => Wikipedia

おわりに

この本の中の Have to の整理 これ、ドラッカーの時間を作るに出てきたことでできそう。

そして、「時間の家計簿」と呼ぶことにしました(ネットでもそう呼んでいるようでした)

この本では、Have toとWant to の家計簿をつけて、Have toを削減し、Want to を増やすと、いろいろといいことあるということです。

そして、下記のブログにも書きましたが、仕事の優先順位と劣後順位の付け方が大切で

優先順位と劣後順位に関して重要なことは、分析ではなく勇気である。

vengineer.hatenablog.com

おまけ、「なぜマネジメントなのか」の中から

「マネージャーは、どこがその人の強みかを見つける手助けをし、優れたところをさらに伸ばす手助けもできるが、その人自体を変えることはできないし、またしてはならない。」P.319

心理的安全性と岸見一郎アドラー学

はじめに

下記の定年後の暇をどうするか?を考える (その2)でも書きましたが、岸見一郎さんの本をKindleで読んでいます。

vengineer.hatenablog.com

振り返ってみます。どうやら、13冊読んでいたようです。

アドラー心理学に関する内容が多いということで、日本のアドラー心理学の第一人者の野田 俊作さんの本というか講演内容のまとめっぽいものも4冊読みました。

アドラーは同じですが、野田俊作さんと岸見一郎さんは同じところもあるし、違うところもあります。あたしは、岸見一郎さんの方(岸見一郎アドラー学)が好きです。

嫌われる勇気

ということで、ベストセラーになった「嫌われる勇気」を昨日、お外の日の当たったベンチに座って読みました。事前情報では、哲人と青年の対話というストーリーになっているということは知っていました。Kindle 版で250頁ぐらいです。読むのは速くないのでそれなりの時間がかかりました。

13冊岸見一郎さんの本を読んでいても、「嫌われる勇気」を読んで、新たな気づきを得ることができました。

共著

「嫌われる勇気」は、岸見一郎さんと古賀 史健さんの共著です。

古賀 史健さんのあとがきに、1999年に アドラー心理学入門に出逢えて2010年3月に岸見一郎さんに面会して2013年に嫌われる勇気を出版ということです。

1冊の本の出会いが新しい何かを生み出したわけですね。あたしの場合は、この アドラー心理学入門は2冊目で、最初はNHK「100分de名著」ブックス アドラー 人生の意味の心理学 変われない? 変わりたくない?でした。

心理的安全性

7月に読んだ恐れのない組織 - 「心理的な安全性」が学習・イノベーション・成長をもたらす。この心理的安全性を作り出すのって難しいなーとこの本を読んだとき思いました。

vengineer.hatenablog.com

岸見一郎アドラー学(嫌われる勇気)に出てきますが、

  • 自己受容
  • 他者信頼
  • 貢献感

この3つがあれば、組織(チーム)での心理的安全性は、高まるんじゃないのかなーと思いました。組織での成果は、他者への貢献だと思っていますので(自分の仕事の成果は組織でなくても当たり前なので)。

これについて、ちょっと深堀したいと思っています。

さいごに

TwitterTweetを残しておきます。

Alibaba Yitian 710

はじめに

ちょっと古い情報ですが、Alibabaが ARMv9ベースのコアを搭載したサーバー用チップ、Yitian 710 を2021年10月19日にアナウンスしていました。

www.alibabacloud.com

公開された情報

  • Yitian 710
  • ARMv9 コア、128コア搭載
  • 動作周波数 : Max 3.2GHz
  • PCIe Gen5 x 96 lanes
  • DDR5 x 8 channels
  • プロセス : TSMC 5nm
  • トランジスタ数 : 600憶 Tr (Apple M1 Max : 570憶 Tr / AMD Rome 400憶 Tr)

128コア搭載できるのは、Arm CMN-700 (Mesh Interconnect) っぽい。

サーバー用ARMv9ということで、Neoverse N2 なんでしょうかね。5nm 用CPUコアっぽいです。

www.arm.com

128コアのチップ

128コアのチップとしては、このブログでも紹介している Ampere Computing の Altra Max があります。

  • Altra Max
  • Arm Neoverse N1 128コア
  • NoC:Arm CMN-700 (Mesh Interconnect)
  • 動作周波数 : Max 3.0GHz
  • PCIe Gen4 x 128 lanes
  • DDR4-3200 x 8 channels
  • プロセス : TSMC 7nm

vengineer.hatenablog.com

2022年に TSMC 5nm の Siryn というものを計画しているようです。この Siryn は、PCIe 5 と DDR5 になるんでしょうね!

Neoverse N2 搭載チップ

5nm で Neoverse N2 搭載チップとしては、marvell の Octeon 10 があります。

fuse.wikichip.org

  • 最大 36コア (DPU400)
  • 動作周波数 : Max 2.5GHz
  • DDR5@5200 x 6 channels
  • PCIe 5.0 Controller x 8

おわりに

Hauwei が 最先端のプロセスで半導体開発できなくなっていますが、Alibaba はできるんですね。基本的には自社用のようですが、これだけのチップなので他の会社も使いたいのでは?

追記)、2021.11.14 (埼玉県民の日だけど、日曜日なので意味ねー)

Hanguang 800は、2019年10月28日に発表された推論用NPU。このNPUをYitian 710と組み合わせて使えば、x86-64(Intel/AMD)は必要なくなりますね。 Yitian 710は PCIe Gen5 なので、Hanguan 800も PCIe Gen5対応などにしたものも出てくるでしょうね。

www.alibabacloud.com

詳細は下記のブログで取り上げています。 vengineer.hatenablog.com

追記)、2021.11.21

japan.zdnet.com

AMD Instinct MI200正式発表

はじめに

AMDがInstinct MI200を正式に発表。下記のYoutubeの部分からです。

AMD Accelerated Data Center Premiere Keynote

AMDのサイトは、こちら (日本のサイトには、MI200の情報はまだありませんでした)

Anandtechの下記の記事に詳しく書いてあります。。

www.anandtech.com

このブログでも9月に取り上げています。

vengineer.hatenablog.com

Instinct MI200

説明のために下記の画像を引用します。

上記の画像は、OAMのサイズのものだと思います。画像を OAM の Moduleのサイズ 165 mm x 102 mm にしてみたら、真ん中のシリコンの 63 mm x 47 mm でした。 TSMCの Silicon Interposer ( CoWoS : Chip-on-Wafer-on-Substrate ) のサイズ は、3x の ~ 2500 mm2 です。63 x 47 = 2961 mm2 なので 使えません。

記事の下の方にいくと違う画像にて、パッケージのより詳細な写真が載っています。説明のために引用します。

パッケージの上に2つのモジュールが載っているのがわかります。そのモジュールの上に、GPUダイ x 1 + HBM2E x4 が載っています。

ビデオの中で、2.5D Elevated Fanout Bridge (EFB) なるキーワードが出てきます。上記の記事では下図で 2.5D Elevated Fanout Bridge とは何か?説明しています。 説明のために下図を引用します。

左側の Substrate Embedded 2.5D は Intel の EMIB のことを言っているようです。GPUダイとHBM2Eダイ間の接続に Bridge die (Silicon) を使っていますが、その ダイ をどこに置くかです。EMIBの場合はSubstrateに埋め込んでいますが、Elevated Fanout Bridge の場合は、Substrateの上にEFBを載せている感じです。

MI250X と MI250 は違う

Instinct MI200には、MI250X と MI250 の2種類のモジュールがあるようです。

データシート の Coherency Enabled において、MI250 は No、MI250X は Yes になっています。また、AMD Infinity Fabric Link Technology のところに、

With a cache coherency enabled solution using 3rd Gen AMD EPYC™ “Trento” CPU and MI250X accelerators, Infinity Fabric unlocks the promise of unified computing, enabling a quick and simple on-ramp for CPU codes to accelerated platforms.

とあります。特別な 3rd Gen AMD EPYC "Trento" CPU とだけ、MI250X が接続できるようです。この特別な 3rd Gen ADM EPYC "Trento" CPU は一般には販売されていなくて、supercomputer の FRONTIER 用のようです。FRONTIERのサイトのNode情報に

1 HPC and AI Optimized AMD EPYC CPU 4 Purpose Built AMD Radeon Instinct GPU

とあります。

追記)、2024.02.04 この記事を読み返して、Trento CPUは PCIe が Gen4の 16Gbps ではなく、Gen4 ESM の 25Gbps で動いているんじゃないのでは?と思っています。EPYCTrento CPU と MI250X の間のInfinity Fabric も 25Gbps で動いていると。

Whitepaper : INTRODUCING AMD CDNA™ 2 ARCHITECTURE には、CPUとの接続図が載っています。説明のために引用します。

Optimized 3rd Gen AMD EPYC CPU + MI250X x 4 (Infinity Fabricにて接続)、PCIe は 200Gbps NIC との接続に使用

AMD EPYC x 2 + MI250 x 4 (CPUとはPCIeで接続)

MI250 x 8の構成もあります。

おわりに

  • NVIDIA は、TSMCのCoWoS を使って、Ampereでは 6個のHBM2Eダイを接続しています。
  • Intel は、EMIBを使って、Ponte Vecchio では 8個のHBM2Eダイを接続しています。
  • AMD は、2.5D Elevated Fanout Bridge (EFB) を使って、Instinct MI200 では、8個のHBM2Eダイを接続しています。

各社方法が違うところが面白いですね。ただし、NVIDIATSMCの技術を使っていますが、IntelAMDは独自技術になっているところが違います。

追記)、2021.11.21 SC21での実機

追記)、2022.06.19

NVIDIA Jetson AGX Orin

はじめに

GTC21 November にて、Jetson AGX Orin の Modules と Dev Kits の発表がありしました。Q1'22 です。

最初の発表は、GTC18なので発表から4年かかっています。 このブログでも 2020年5月18日に取り上げています。この時の性能、Orin の 2000 TPOS は、200 TOPSの誤りだったようです。

DRIVE Pegasus では、Xavier +Turing GPU から Ampere ベースの Orin になった感じです。

vengineer.hatenablog.com

下記のAnandtechに記事に詳しく書いてあるので、見ていきましょう

www.anandtech.com

Jetson AGX Orin

基本的には、2020年5月18日に書いたブログの内容の仕様のようです。

  • CPU : 12x Cortexx-A78AE@2.0GHz
  • GPU : Ampere, 2048 Cores @1000MHz
  • Accelerators : 2x NVDLA v2.0
  • Memory 32GB LPDDR5, 256-bit bus (204 GB/sec)
  • Storage : 64GB eMMC 5.1
  • AI Perf. (INT8)
  • Dimensions : 100mm x 87mm
  • TDP : 15W - 50W
  • Price : ??? 追記)、2022.05.25 (1999米ドル)

  • CPUはA78から車載搭載用コアのA78AEに変更していますね。

  • NVDLA が v2 になっています。
  • Module の大きさは、Xavier と同じようです。
  • 製造プロセスは書いていませんが、AmpereがTSMCの7nmなので TSMCの7nmなんでしょうね。ちなみに、A78は7nm or 5nm用です。Xavierは16nmでした。

説明のために下記の画像を引用します。右側がModuleです。

  • 真ん中のSoCの下に4個のLPDDR5があります。LPDDR5は1個64ビットのようなので2個で4個で256ビットになります。
  • 上部の部品は電源関連だと思います。この部分だけで3割は超えていますね。

おわりに

Xavierって、NVLink 1.0 をサポートしているようですが、Orinはどうなんでしょうね?

WikichipのXavierの図を見ると、NVLink と PCIe 4があるようなので、Orin も同じ感じなんでしょうかね。メモリインターフェースは 256bit LPDDR4X なのでこの部分の大きな変更もなさそうだし。