Arm Neoverseロードマップ
Arm Updates Its Neoverse Roadmap: New BFloat16, SVE Support - WikiChip Fuse
Arm Targets HPC with New Neoverse Platforms - HPC Wire
Armがサーバー向けNeoverseプラットフォームのロードマップを更新したらしい。今年末に発表されると噂されるモバイル向けハイエンドコア"Matterhorn"の詳細が分からないため何とも言えないが、Neoverse N1まではモバイルと共通のコア、Neoverse N2はモバイル向けコア + SVE、Neoverse V1は専用コアになるのではと思う。
まずこれまでの経緯を確認すると、Armはモバイル向けアプリケーションプロセッサー=Cortex-Aファミリーを主軸に製品展開を行ってきたため、サーバー向けはCortex-Aファミリーを流用したものだった。これはビジネス上は仕方のないことかもしれないが、第三者から見ると境界が曖昧だった。例えばAmazon AWSは2018年にCortex-A72コアを16コア集積したGraviton A1プロセッサーを発表しているがArmはこれをNeoverse "Cosmos"プラットフォームだと言っている。実際には既存のモバイル向けアプリケーションプロセッサーと周辺ロジックを流用したものなので、Neoverseプラットフォームの定義は非常に曖昧だった(もしGraviton A1がNeoverseなら、そもそもNeoverseって何だ?という話になる。恐らくはマーケティング/PR上の都合だろう)。
2019年に発表されたNeoverse N1はCortex-A76コアをベースに最大128コアまでスケール可能なCMN-600メッシュネットワークなどの周辺ロジックを組み合わせたプラットフォームである。代表的な製品としてはAWS Graviton2(最大64コア)とAmpere Computing Altra(最大80コア)が挙げられる。
今回発表されたロードマップだが、これまで名前だけ明らかにされていた次世代プラットフォーム「Zeus」=Neoverse V1の内容とNeoverse Nシリーズの次期プラットフォームNeoverse N2の内容が説明された。
Neoverse NシリーズはScale-out用のパフォーマンスと効率のバランスを狙ったプラットフォームで、来年登場予定のNeoverse N2では128-bit幅のSVEがサポートされる。Neoverse Vシリーズは最大パフォーマンス(Scale-up用?)のプラットフォームで、今年中に登場予定のNeoverse V1では256-bit幅のSVEがサポートされる。
SVEはArmと富士通が共同開発した、128-bit単位で物理実装をスケール可能な128~2048-bit幅のSIMD演算命令である。
現時点で実装済なのは富士通A64FXのみだが、Marvellが独自プロセッサーコアThunderX4でのサポートを表明している。128-bit以上のSIMDというとIntel AVXが有名だが、AVXでも実行時に動作周波数を落とす措置が取られたように、Load/Store・メモリー周りの負荷が高くなることが問題となる。物理128-bitであればLoad 16-byte x 2 + Store 16-byte x 1あれば十分だが、物理SIMD幅が広がるにつれてLoad/Store帯域を増やす必要があるためで、これは、もちろんCPU レジスターファイル-L1キャッシュ間のアクセスでも問題だがL1-L2キャッシュ間アクセスやCPUコア-メモリー間でも問題となる(A64FXの場合はその編も踏まえて設計されている)。それを踏まえると、HPCに特化した富士通A64FXの場合ではSVE 512-bit x 2という実装(Load/Store帯域 Load 64-byte x 2 + Store 64-byte x 1)だが、クライアント用・サーバー用であれば初期のAVXのように論理256-bit超でも物理128-bitで実装なんてこともあるのは当然で、Arm純正のサーバー用コアNeoverse V1/N2で各256-bit/128-bit幅というのは妥当そうに見える(恐らくはThunderX4も同等になるだろう)。
そう考えると、Neoverse N2のCPUコアは恐らくCortex-A78か"Matterhorn"であろうと推測できる一方で、Neoverse V1のCPUコアはサーバー専用になる可能性が高いように思われる。
Samsung 980 Pro
The Samsung 980 PRO PCIe 4.0 SSD Review - Tom's Hardware
7GB/s級の転送速度を実現したSamsung初のPCIe 4.0 SSD「980 PRO」を試す - PC Watch
SamsungがM.2 NVMe接続のSSDの新モデルを発表したそうだ。
前世代970 Proとの主な違いとしてはPCIe Gen 4への対応(データ転送の帯域が約2倍)とNANDメモリータイプのMLCからTLCへの変更(書き込みに対する耐久性が約1/10)の2点が挙げられる。速度を取るか耐久性を取るか悩ましいところである。個人的には耐久性を取りたいので今のうちに970 Proを確保するかもしれない。Micron/Crucialは先に全面的にTLC NANDに移行済だから同価格帯で入手可能なMLC NAND採用SSDは全滅したと考えてよさそうだ。
記事中で興味深いのは新開発のElpis Controllerのキュー数への言及だろう。旧来のSerial ATA・PCIe AHCIではキュー数は32コマンド x 1個で固定だったがNVMeでは最大64Kコマンド x 64K個に拡大されている。Phoenix(32キュー)からElpis(128キュー)で処理可能なキュー数が4倍に増えたという(各キューの深さは変更なし)。PhoenixはCortex-R5 5コアで構成されていたが恐らくコア数も増量されているはずだ。Phoenixの5コアの分担の割り当てが不明(例えばSATA時代のMCXコントローラーの場合、3コアがホストインターフェース・ランダムアクセス専用・シーケンシャルアクセス専用に分担されていた)のため何とも言えないが、Elpisではコア数の増量と動作周波数の向上とで前世代Phoenix Controllerの4倍程度のパフォーマンスになっている可能性もある。
SLCキャッシュの項目は性能向上という観点では面白いが、個人的には怖い仕様である。
「Intelligent TurboWrite」で一部の領域をSLCキャッシュとして使えるという機能だが、固定的に確保されているSLCキャッシュ(IntelligentでないSLCキャッシュ)6 GBはともかく動的に確保されるということはTLC NANDの一部を一時的にSLCキャッシュとして使うということで、例えば1TBモデルで最大108GBとされているがSLCはTLCの1/3の容量なのでTLC換算で324GB分のセルがキャッシュとして使われるということのように読める。
ただでさえTLC化で耐久性が下がっているところで知らない間にSLCキャッシュとして寿命を擦り減らすというのは製品寿命が見積れなくなる不安がある。よく耐久性を測る指標としてDWPDなどが使われ「仮に1日にXX GB書き込むとしたらXX年もつ」という表現が見られるが、知らない間にキャッシュとして使われてしまうとその計算は成り立たなくなる。
Nintendo Switchのプラットフォームは長期化するのか
任天堂2020年3月期経営方針説明会 - 任天堂
任天堂に限らないが、ゲームコンソールのプラットフォームの長期化が進んでいるのでSwitchプラットフォームの長期化自体は驚くことではない。個人的な疑問はプロセッサーを誰が供給するのか?という点である。
プラットフォームの長期化の原因はハードウェアアーキテクチャーの寡占化によるものだろう。
PlayStationを例に取るとPS1 (MIPS III)→PS2 (MIPS IV)→PS3 (PowerPC+Cell)→PS4 (AMD64)→PS5 (AMD64)といった具合で、以前は様々なアーキテクチャーが採用されてきたが昨今はPCアーキテクチャー(AMD64/Intel64)に統一されている。もしかするとベンダー間の移動(AMD→Intel、AMD→NVIDIA)はあるかもしれないが、同時代のハイエンドゲーミングPCクラスの高いパフォーマンスを得るなら必然的にPCアーキテクチャー(AMD64/Intel64)になるし、携帯ゲーム機ならスマートフォンに近いアーキテクチャー(Arm)になる。これはIT業界全体のトレンドなので任天堂/ソニー/Microsoftというゲームコンソールベンダーを問わず共通している。
気になるのはNintendo Switchの後継に搭載されるプロセッサーだ。スマートフォンをはじめ携帯端末ではArmが寡占化しているので、次世代プラットフォームでもSwitchと同様にArmを採用することは可能だろう。しかし、問題はSwitchにプロセッサーを供給しているNVIDIAがモバイル向けプロセッサーを手掛けていない点にある。
2017年3月に発売されたNintendo SwitchにはNVIDIAのSoC Tegra X1が採用されている。NVIDIAはこのSoCについて「500人年もの労力を、新しいゲームプラットフォームを作りあげるために、あらゆる面に注ぎ込んだ」とするものの、Tegra X1自体は2015年に発表されたAndroidタブレット用のモバイル向けSoCである。2019年にはSwitch Liteのリリースに合わせ改良版Tegra X1+に更新されたが、これはTSMCの製造プロセスを20nmから16nm FinFETに移行したものであるが、TSMCの20nmと16FFの違いは後藤氏の記事の通りフロントエンド=トランジスター層のみの変更で、電力効率は向上したが設計レベルでの変更は行われていない。
このTegra X1(デフォルトの消費電力10w)は現時点でNVIDIAの最後のモバイル向けSoCである。NVIDIAは2016年にTegra X2(7.5w)・2018年にXavier(10~30w)が発表したが、車載向けに軸足を移しており、これらのSoCにはCANなど車載で必要な(モバイルSoCでは不要な)インターフェースが多数あったり、価格が高かったり、消費電力が高めに設定されているなど、Switchのようなモバイル機器に適しているとは言えない。また、Tegra X1後継のモバイル用プロセッサーのロードマップも知られている限りでは存在しない。
任天堂は2021年にSwitch Proをリリースすると言われているが、果たしてNVIDIAが任天堂向けにカスタムチップを作るのだろうか?疑問である。既に世界で6,000万台を販売しているNintendo Switch向けならば専用プロセッサーを用意しても投資は十分に回収できると思うのだが、NVIDIAから何も情報が聞こえてこないのが不思議である。もし仮に任天堂がSwitchの次世代機のプロセッサーをNVIDIA以外から調達するとなると、Snapdragonを要するQualcomm・AMDからGPU IPのライセンスを受けるSamsung・RDNA2 GPU IPにCortex-X1 + Cortex-A78を組み合わせたRyzen C7がウワサされるAMDが候補となると思うが、ゲーム機ビジネスはスマートフォンとは違うのでGameCube/Wii/WiiUで繋がりがあったAMDかもしれない。
藤井二冠がRyzen Threadripper 3990Xを使用
藤井聡太二冠「自作PC」の値段にパソコンマニアもびっくり - NEWS ポストセブン
「藤井二冠がRyzen Threadripper 3990Xを使用している」という話題は様々な記事で見かけた(&スルーしていた)のだが、CPUが50万円することなどばかりが話題となっており、意外なことに多くのオンライン記事ではその用途について詳しい言及が無かった(中日新聞紙面では一面割いてインタビュー記事が掲載されているらしい)。
※当初「藤井二冠が50万円のRyzen Threadripper 3990Xを使用している」と聞いてビデオゲームでもするのかと想像してしまったが、まったく違う非常に建設的な使用方法で、いわば「ピアノコンクール優勝者がSteinway & Sonsのピアノを購入した」というような話だった。価格を強調した見出しは誤った印象を与えるので止めた方が良いと思う。
どうやら将棋ソフトの読みの速さにはマルチコアCPUが効くのだという。
CPUの性能で読みの速さが変わります。家庭用パソコンのCPUが1秒間に約200万手読むのに対し、藤井二冠が使っているCPUでは30倍の6000万手読めます。短時間でより多くの局面を検討できるので、効率よく研究できます
この30倍の数字がどう計算されたか示されていないが、例えばThreadripper 3990Xは64コアのため家庭用パソコン=2コアの32倍あると考えれば辻褄が合うのでおかしな数字ではない。
加えて、恐らく多数の組み合わせパターンを評価して最適なパターンを導き出すことになるから、パターンを計算するための学習データ・膨大なパターンとその評価を格納するメモリーが必要になるはずである。記事中にも「藤井二冠の妙手「3一銀」が、将棋ソフトが4億手読んだ段階では悪手なのに、6億手読むと最善手になることが話題となった」とある通り、読む手数が少ない場合と多い場合とで最善手が変わってくることも考えればメモリーに格納するパターン数や評価値も膨大な量になることが想像できる。確かにThreadripperに256GBのメモリーというのは非常に妥当な構成に思える。
海洋研究開発機構(JAMSTEC)が4代目「地球シミュレーター」にNEC SX-Auroraを採用
次期“地球シミュレータ”にNECのスパコン「SX-Aurora TSUBASA」が採用 - PC Watch
NECは2017年にSX-Auroraの発表したが何度かリフレッシュを行っており、NECによると地球シミュレーターに採用されるのはB401-8のようである。これはIntelアーキテクチャーベースのサーバーにSX-Aurora PCIeモジュールを8基搭載したものである。
以下は過去の地球シミュレーターの変遷を表にしたものであるが(※注:SX-AuroraのスペックはホストのIntelアーキテクチャーのノードは含まれていない)、概ね7年毎に更新されているようだがパフォーマンスの向上は3.1~15倍とばらつきがある。初代地球シミュレーターがいかにオバケだったか分かる気がする。
気になるのはHPCで重視されるFLOPS性能に対するメモリーバンド幅(B/F)が下がっていることである。SX-ACEなどは16 chメモリー(計1024-bit幅)を使ってでも帯域を確保しており当時のGPGPUなどと比較しても圧倒的であったが、SX-AuroraではNVIDIAやAMDのハイエンドGPUと同じHBM2で差は無くなっている。
SX-Aurora登場当初のラインナップではIntel Xeon "Skylake-SP"をホストに使い、2ソケット構成にPCIe Switchを組み合わせて8台分(PCIe x16 x 8 = 128 lane)のレーン数を稼いでいたが、B401-8ではホストがAMD Epycとなり1ソケットでPCIe 128レーンを実現している。
WikiChipなどでは2019年のSC19で発表されたType 10からType 10Eへのリフレッシュに関する記事が見つかるが、NECのスペックシートによるとType 20のようでType 10E比でベクトル演算性能が約50%・メモリー帯域が約20%程度向上している。
|
Gen 1 |
Gen 2 |
Gen 3 |
Gen 4 |
Year |
2002 - 2009 |
2009 - 2015 |
2015 - 2021 |
2021 - |
Base |
NEC SX-5 |
NEC SX-9 |
NEC SX-ACE |
NEC SX-Aurora |
Node |
CPU |
64 GFLOPS |
102.4 GFLOPS |
256 GFLOPS |
24.57 TFLOPS (3.07 TFLOPS x 8) |
RAM |
16 GB 463 GB/s |
128 GB 256 GB/s |
256 GB 256 GB/s |
384 GB (48 GB x 8) 12.24 TB/s (1.53 TB/s x8) |
B/F |
7.2 B/FLOP |
2.5 B/FLOP |
1.0 B/FLOP |
0.49 B/FLOP |
System |
# of Nodes |
640 Nodes |
160 Nodes |
5,120 Nodes |
684 Nodes |
CPU |
40.96 TFLOPS |
131 TFLOPS |
1.3 PFLOPS |
19.5 PFLOPS |
RAM |
10 TB |
20 TB |
320 TB |
262.66 TB |
IBMがOpenPOWER FoundationでA2Oを公開
IBM Contributing A2O Processor Core To OpenPOWER Community - Phoronix
以前の記事でも触れたが、7月にIBMはBlueGene/Qで採用されたA2IコアをOpenPOWER Foundatioに寄贈し無償公開した。今回はOut-of-Order実行に対応したA2Oコアを寄贈・公開したらしい。
BlueGene/Qの発表時はA2コアとされていたのが7月にはA2Iとなっていたため何のことかと思ったら、A2IはIn-Order実行コア・A2OはOut-of-Order実行コアということらしい(一部でA20(a-two-zero)と記載の記事もあるがA2O(a-two-o)である)。
A2I・A2O共にGitHubでマニュアルが公開されているが(A2I・A2O)、構成は似て非なるものである。以下は概要を表にまとめたものだが、FXUは整数演算ユニットでA2Iについては固定小数点演算も可能なようだがA2Oにはその記載が無い。AXUは倍精度浮動小数点演算も可能なISAで定義された命令すべてを実行可能なユニットとのことである。表にまとめてみるとよく似通っているようにも思えるが、各マニュアルのp45~50あたりの記載やブロック図を見てもあまり類似しているようには見えない。
|
A2I |
A2O |
ISA |
Power ISA 2.06 |
Power ISA 2.07 |
L1$I |
16 KB |
32 KB |
Decode/Issue |
2 inst/cycle |
2 inst/cycle |
SMT |
SMT4 |
SMT2 |
Execution |
In-Order |
Out-of-Order |
Simple FXU |
- |
1 |
Complex FXU |
1 |
1 |
AXU |
1 |
1 |
Branch |
1 |
1 |
LSU |
1 64-bit width |
1 64-bit width |
L1$D |
16 KB |
32 KB |