Apple Intel Coreから自社製"Apple Silicon"への移行を発表
AppleがArmベースのSoCをMacに採用する背景 - PCWatch
このApple Siliconなる名前が気に入らないが…。IntelのCoreやIBM/Sony PlayStation 3 CPUのCELLなど一般名詞の固有名詞化は今回に始まったことでもないが、いくらなんでも語呂が悪すぎ・ダサ過ぎではないか。もっとも、AppleのiPhone/iPad用Aシリーズ・AppleWatch用Sシリーズ・MacのTouch ID用Tシリーズ・AirPods/AppleWatchのWi-Fi用WシリーズといったApple製カスタムSoC群を総称してApple Siliconと呼ぶようだから、実製品の発表時には別のブランド名になっているかもしれない。
AppleのARMアーキテクチャライセンスに基づく自社開発CPUコアのIPC(動作周波数あたり/1コアあたりの実行性能)でIntel Core系プロセッサーに比肩することは2008年にA7に搭載されたCycloneコアの登場以降、新コアが発表されるたびに話題となった(参考1、参考2)。
もっとも、A7の場合ではTDP 5W以下のはずでiPhoneで2コア1.2 GHz・iPadで2コア 1.4 GHzに過ぎないから、iMacやMac Proに搭載されるようなTDP 65W超で3.0 GHz 4コア以上のIntel Core/Xeonプロセッサーに絶対的なパフォーマンスで勝てるはずはなかったが、TDP 15W程度のMacBookにiPadが肉薄しており、さらに言えば、iPad Proにも搭載されているA12Zではハイパフォーマンスコアが4コアだから最新のハイエンドiPadとエントリーレベルMacBookとの差は2008年から年々縮まってきていたのが現状である。
これらを踏まえればIntel x86-64からARM64への移行でパフォーマンス面への疑問は少なかったのではと思う。
問題はアーキテクチャー移行による対応ソフトウェアの問題だろう。
MacOS向けアプリケーションはPowerPCからIntel x86-64への移行時と同様にRosettaで変換するとして、BootcampでWindowsを動かすことはできなくなる。私は個人的にはMacのARMへの移行には懐疑的だったが、その主な理由はBootcampで、MicrosoftがWindows on ARMのマーケットを拡大してから移行するものと思っていた(※いや、もしかしたら待てど暮らせどWindows on ARMが普及しないので見切ったのかもしれないが…)
Rosetta 2での変換によるパフォーマンス低下
ArmベースMac移行用のDTK、ベンチマークスコアが流出 - Engadget
Engadgetの記事が酷いことは置いておくとして、Intel x86-64ネイティブアプリケーションをRosetta 2で変換して実行した場合、概ね20~40%のパフォーマンス低下ということになるようだ。
そもそもプロセッサーが異なるため何をもって「XX%パフォーマンス低下」とするか悩ましいところだが、仮にA12ZのLightningコアがIntel CoreのSkylakeのコアと同等と仮定し、かつIntelのTurboを無視した場合、シングルコアあたりでIPCが38%程度しか達成していない計算である。これはエミュレーションした場合のオーバーヘッドとしては経験則(パフォーマンスが約1/3)に近く妥当な数字である。恐らく実際にはCore i3のTurboが効いているはずなので実際は1/2~1/3ではないかと思うが。
A12Zのマルチコアが一見すると健闘しているように見えるのは4コアが搭載されているからで、4コアと2400MHzという動作周波数を考えれば妥当そうに見える。
A12Z | Core i3-1000NG4 | |
---|---|---|
Geekbench Single-core |
around 750 - 850 (Avg. 825.91) |
1005 |
Geekbench Multi-core |
around 2550 - 2950 (Avg. 2851.23; 712.81 per core) |
2014 (1007 per core) |
Arch | Lightning | Comet Lake |
Core | 4C/4T | 2C/4T |
Freq | 2400 MHz | 1100 MHz (Turbo 3200 MHz) |
逆の言い方をすれば、Appleがオーバーヘッドでパフォーマンスが1/2~1/3になってもIntel x86-64からARM64へ移行できると判断したということは、同じ消費電力枠・同じコストでコア数や動作周波数の引き上げで2~3倍のパフォーマンスを達成(つまり合計でイーブン)できると判断したということなのだろう。
例えば、上述の通りA8XはCPUコア単体ではIntel Coreと同等クラスのIPC(動作周波数あたり/1コアあたりの実行性能)を達成していたが、3コア・1500 MHzでしかなかった。これでは絶対的なパフォーマンスでA8Xが当時のCore i3と相当を達成できるとは考えられない。それが、A12Zでは上の表の通りCore i3と同等のパフォーマンスを達成しているように見えるのは、A8Xの2014年から6年間を経てIPC向上・コア数の増量・動作周波数向上を積み重ねた結果と言える。A12ZのTDPは公表されていないが他のタブレット用アプリケーションプロセッサーと同等とすれば5W以下のはずで、Core i3-1000NG4のTDP 8Wを下回っている。
Intel Lakefield
「Comet Lake」と「Lakefield」について新しく深くわかった事 - マイナビ
発表されたLakefieldはカスタマイズ版Windows10向け - ASCII
Intel Launches Lakefield: An Experiment With Multiple New Technologies - WikiChip
Lakefieldの発表記事を読んで苦笑したりガッカリした人は筆者だけではないはずだ。
LakefieldはIntel版big.LITTLEとも言える、省電力コアとハイパフォーマンスコアを組み合わせた構成となっている。ARMがbig.LITTLEを発表したのは2013年のことなので、見方を変えればIntelには7年間もの猶予があったとも言えるわけだが、そんな中登場したLakefieldは、とても歪に見える。
前提としてARMが実装したbit.LITTLEについてはPC Watchにて後藤氏が詳しく解説されているので割愛する(2013/12/18の記事、12/20の記事)が、ARMは2013年から現在のDynamIQに至るまで4段階に分けて段階的に実装してきている。キモは (1) 同じ命令セットをサポートするbigコアとLITTLEコアが同時にリリースされていて(ARMv7-Aのbig.LITTLEでCortex-A7/A15・ARMv8-Aのbit.LITTLEでCortexA53/A57・ARMv8.2-AのDynamIQでCortex-A55/A75)(2) それらをサポートするためのバスなどのハードウェアやスケジューラーなどのソフトウェアが同時にリリースされている点であろう。
IntelなりMicrosoftなりがARMの実践したものを踏襲したり、ARMが築いたインフラをそのまま利用しようとするならば、必然的にbig.LITTLE/DynamIQの制約を受け継ぐことになるわけだが、この制約のためにLakefieldでは各種機能が無効化されているようだ。
現在のIntel CPUについて振り返ってみると、Core系コアとAtom系コアの2種類のコアが存在し前者がハイパフォーマンス・後者が電力効率に最適化されている。その意味ではbig=Core系コア・LITTLE=Atom系コアでbig.LITTLEを構成するというアイデアは解らなくもない。
しかし、問題は命令セットで、Core系コアはCoreブランドではSSEだけでなくAVX/AVX-2/AVX-512をサポートするのに対しAtom系コアも含まれるPentium/CeleronブランドではSSE4.2までしかサポートしていない。そのため、LakefieldではSunny Coveコアが搭載されているにも拘らずAVX/AVX-2/AVX-512が無効化されSSE4.2までのサポートに留まっている。また、Sunny Coveコア・TremontコアはそれぞれSMTに対応するがこちらも無効化されている。
つまり、bigコアとLITTLEコアとで命令セットを共通化したりスケジューラーを準備することでbig.LITTLEを整備してきたARMに対し、Intelの実装はbig.LITTLE相当の構成をとる準備が不足している感が否めない。例えばTremontコアにAVX-512は無理でもAVX/AVX-2の実装は難しくはなかっただろうし(※AVX-512は物理512-bitでの実装が必須だが、AVX/AVX-2では物理128-bitでもSSEを拡張することで実装可能である)、記事中で指摘されているようなコア数やSMTの制限についても改善できたのではと思う。
理研「富岳」
Top500の1位は理研の富岳スパコン、Green500はPFNのMN-3が獲得 - マイナビ
理研と富士通が開発してきた「富岳」が1年前倒しで稼働開始となり、Top500の1位を獲得した。
既報の通り「富岳」はHigh Perf LINPACK(HPL)に最適化されているわけではない上、来年以降で米国・中国の1 ExaFLOPSクラスHPC計画が続々と控えていることから来年のどこかで別のシステムにTop500トップの座を奪取されるものと思われる。
ところで「1年前倒し」というのは驚異的なことのように思われるが、個人的には1年遅い計画の方がおかしかったと思う。
例えば前回までTop500 1位だったORNL/IBM Summitは2018年6月から首位を保持しているが、搭載されているIBM POWER9は2017年8月・NVIDIA Volta V100も2017年12月に発表されている。プロセッサーの製品化からHPCシステムの稼働まで半年しかない。半年というと短いように思われるがエンジニアリングサンプルなどを合わせると恐らく+1年間程度(合計で1年半ほど)はあっただろうからIBMやNVIDIAがメインボードやOSやドライバーなどを整備することは並行して可能なので驚くことではない。
これに対しA64FXの最初のシリコンが発表されたのは2018年6月のことである。恐らく富士通・理研内ではCPUの検証・デバッグと並行してOSやドライバーなどの整備も進んでいただろうが、それを踏まえて2019年12月に建造開始・2020年6月に稼働開始というスケジュールは妥当で、むしろ2021年6月に稼働開始したらその方が驚きだ。
「富岳」はお金が足りなくて0.5 ExaFLOPSなのか?
マイナビの記事も執筆されているHisa Ando氏は「富岳は、ラックが432本並ぶ構成となっている。なお、京コンピュータは864本であったので、ラックの数では半分の規模となっている。技術的には864ラックのシステムとしてエクサスケールのスパコンとすることは可能であるが、お金が足りなかったという」と、予算不足を指摘されているが、これについてはどうかと思う。
まず、私の理解では2018年頃(まだ「ポスト京」と呼ばれていた時期)の時点で既に1 ExaFLOPSにはならずHPLで500 PFLOPS程度にしかならないという話だったかと思う(その根拠の記事は調査中)。
「富岳」が目指していたのは「アプリケーション性能で「京」の100倍」という話だったかと思うが、半導体業界で有名な「ムーアの法則」(半導体スケーリングの問題で鈍化・法則が崩れつつあるが)を参考にするなら「京」の登場した2012年から2021年では9年間=108カ月で、つまり「富岳」は「京」の2^6倍=64倍の性能が期待できる。「富岳」のプロセッサーA64FXは「京」のSPARC64VIIIfx比でトランジスター数が11倍・コア数が6.5倍・FP64性能が21倍・FP32性能が42倍に増加している(つまりノードあたり21~42倍の性能)。これは法則通りの64倍からは乖離しているが、一方でノード数は1.8倍に増えている(88,128ノード→158,976ノード)。そのため、結果としてアプリケーション性能が約40~100倍の間という数字は妥当そうに見える。
次に、予算の総額の観点から見れば「京」は1120億円(2012年当時)で、一方の「富岳」は1300億円(2019年時点での計画)で、2012年から2019年の日本のインフレ率を当て嵌めて計算してみても2012年当時の1120億円は2019年での約1190億円相当と考えられ、1300億円というコストが不足しているとは考え難い。むしろ「京」ですら事業仕分けされそうな危機に陥っておきながら「X000億円あれば二倍にできたが予算が足らなかった」と言うのならX000億円の予算を確保できるという想定が間違っている。もちろん一般的なインフレ率とIT業界・半導体業界のインフレ率に乖離がある可能性はあるが、とりあえず「十分な予算はかけた(お金が無かったわけではない)」と思われる。
要するに、私から見ると計画通りに開発・構築した結果、予想通りに「京」比で40~100倍の性能になったという話で、「アプリケーション性能で100倍」という点を誇張した当初の計画の方に問題があった気がしなくもない。
ところで、864ラック入れられるところを432ラックになった件については、個人的にはむしろ今後はより軽い開発に移行して開発コストを6割程度に落として432ラック単位で設置とすべきだと思う。
神戸市の理化学研究所計算科学研究機構には「京」1システム(=864ラック分)しか設置スペースが無く、そのため「富岳」導入にあたり2019年8月で「京」を停止していた。言い換えれば10カ月の空白期間が空いていた。もっとも、「京」自体が約8年も前に導入した古いコンピューターで電力効率もコストあたりの性能も良くなかったから撤去することは間違ってはいない。
私が提案したいのは、開発コストを圧縮して4~5年単位で新システムを半分(432ラック)ずつ導入する方式である。「京」を例に挙げると、「京」では富士通がSPARC64fx VIII(2009年)を開発したが、その後富士通はコア数を16コアに倍増したSPARC64 IXfx(2011年)・さらに32コアに4倍増したSPARC64 XIfx(2015年)を発表しているにも拘らず「京」(あるいは理研)はそれを導入していない。2015年時点で432ラックのシステムを組んでいれば「京」の8倍近い性能のシステムができていた可能性もあり、そして、既成のSPARC64 XIfxを使うのであれば1000億円を超えるような馬鹿げた予算は必要なかったはずである。
この方式の場合、4~5年間単位で432ラックずつ入れ替えるため、「京」のようにシステムを停止して1年間近く空白期間が空くなどということはなくなる。
※米国のフラッグシップHPCはシステム単体では$500M(約600億円)程度である。この理由は多数あろうが、(1) 研究予算とシステムの予算が分割されており$500Mはシステムのコストである (2) 米国企業の既成のプロセッサーを流用している、の2点が大きいだろうと思う。