goo blog サービス終了のお知らせ 

ALH84001

私的コラム&雑記(&メモ)

最近の気になった話題(2020年第33-36週)

2020-09-06 | 興味深かった話題

MarvellがThunderX3の汎用SKUをキャンセル

Impact of Marvell ThunderX3 General Purpose SKUs Canceled - ServeTheHome
Marvell Transitions ThunderX3 to Custom Chip Platform - HPC Wire

 Marvell ThunderX3関連の記事がここ数週間で幾つか出てきたが、興味深いのは汎用(general purpose)のSKUを止めるということだろう。これはAWS・Microsoft Azure・Google Cloudといったクラウド事業者を対象にカスタマイズ・受注生産のみとするということのようだが、そもそもクラウド事業者以外だと恐らく受注もなかったろうから合理的に思える。

 ArmサーバーCPUは注目度こそ高いがクラウド以外のマーケットでは浸透していないわけだからクラウドに注力するというのは理解しやすい。
 この場合、Ampereとマーケットが競合することになるがMarvellに分があるように思われる。Marvellのアドバンテージは膨大なIPポートフォリオを持っている点で、DSPや正規表現アクセラレーターのアクセラレーター、モデム/ベースバンドプロセッサー・L2スイッチ・パケットプロセッサー・Ethernet NIC・Wi-Fiといったネットワークコントローラー、Serial ATA・NVMeといったストレージコントローラーがあり、これらを組み合わせて統合できる可能性がある。
 個人的に気になるのは、カスタマイズしたSoCの構成方法やインターフェースだ。もしSoCをカスタム設計するのだとすれば高コストになるが、チップレット構成で実現するのではないかと想像する。実際、Marvell自身は2015年にMoChi(Modular-Chip)と呼ばれるマルチチップ技術を披露している。ThunderXファミリーはMarvellが2018年に買収したCaviumの製品なのでThunderXファミリーのチップレット化の話は聞いたことがないが、類似の技術を使う可能性はあろう。

 クラウド事業者だと、傘下にAnnapurna LabsをもつAWSはともかく、Microsoft AzureやGoogle CloudなどがThunderX3を採用される可能性はありそうに思われる。
 ServeTheHomeの記事では先日のHotChipsで他社から発表のあったSoCを引き合いに出しているが、これらの例が妥当かどうかはよく分からない。上述の通りチップ間インターフェースによるが、SoCではデータ帯域の確保や遅延の低減のためにSoC化している場合もあり、Marvellに限らずMCM化に適さない場合もあろう。それよりも一般的でMarvellのポートフォリオが活きるケースは幾つも考えられる。

 そもそも、ARM CPUのIntel CPUに対する利点が省電力・省コストにあるのだとすれば、演算用のサーバーよりもネットワークアプライアンスなどへの適用が適しているというのは当然のように思える。
 例えばHDDの統計で知られるBackBlazeはストレージサーバー(通称Pod)の部品リストを公開しており4chのSATAコントローラー 3基に5ポートマルチプライヤー 3基を組み合わせることでSATA HDD 60台構成を実現しているが、このPCIe SATAコントローラーはMarvell 88SE9235・SATAマルチプライヤーはMarvell 88SM9715である。恐らくAWS S3やGoogle DriveやDropboxなども似たような構成をとっているはずで(※注:例えばGigabyteもARM SoCを使ってストレージポッドを製品化しているように、BackBlazeに限った話ではない)、そこで、MarvellがThunderX3にSATAコントローラーを組み合わせたSoCを作れば省電力でチップ点数が少ないシステムを作ることも可能だろう。
 あるいは、例えばGoogle JupiterやMicrosoft Azure SONiCなど、クラウド事業者はカスタマイズしたベアメタルスイッチをベースにカスタムネットワークOSを載せてネットワークを構築する場合が多いようだが、それらの機器はIntel CPUにBroadcom・Mellanox・Barefootのスイッチといったような汎用シリコンを組み合わせる場合が多い。このマーケットでMarvellの存在感は大きくないが、旧CaviumのThunderX CPU・Octeonネットワークプロセッサー・LiquidIO SmartNICやPrestera DXデータセンタースイッチを持っているので、これらを1社で賄えることはMarvellの強みになる可能性がある。

 今回の件で気になるのはHP / Crayの扱いである。旧Crayは旧Cavium ThunderXファミリーをXC50で採用したが、HPEによるCray買収で製品の統廃合が行われており、HPEサイトにはThunderX3搭載のHPC製品は見当たらない。今回のMarvellの決定を鵜吞みにするならばHPE/Cray向けには製品を用意しない可能性がある。
 そしてもしMarvellが将来のThunderXファミリーでHPC市場を狙わないのであればSVEがサポートされない可能性もある。上記の例のようなネットワークアプライアンス用途では256-bit以上のSIMDどころかFPU/SMID自体ほとんど出番がなくArmv8-A標準のVFPv4/NEONで十分な可能性もある。2019年のWikiChipの記事ではThunderX3かThunderX4でSVEをサポートする可能性が報じられたが、果たしてLoad/Storeに大幅な拡張を加えてまでSVE=~2048-bit SIMDをサポートするかは怪しそうに見える。

Microsoft Xbox Series XのAMD製カスタムSoC

Microsoft Xbox Series X's AMD Architecture Deep Dive at Hot Chips 2020 - Tom's Hardware

 少し古い記事になるが、Tom's HardwareがMicrosoft Xbox Series XのAMD製カスタムSoCのダイ写真を発表したそうだ。
 Xbox Series XのスペックではGPUは52 CUとなっているが、Tom's Hardwareも指摘する通り写真を見ると56 CUはありそうに見える(56CU 4CUがリザーブとすると93%が有効)。AMD RadeonのNavi 10の場合、搭載されている全40 CUが有効なのはRadeon RX 5700 XTのみで、Radeon RX 5700/5600 XTでは36 CU(90%が有効)・Radeon RX 5600 32 CU(80%が有効)でいいので、それに比べるとXboxカスタムSoCの歩留まりが低いというのも頷ける話である。

 個人的にはRyzen/Epycのようなチップレット構成を密かに期待していたのであるが今回判明したのはモノリシックなSoCということだ。言い換えれば、類似の構成を採るであろうPlayStation 5用SoCもチップレットではなくモノリシックなSoCとなる可能性が高そうだ。
 チップレットによるMCM構成はコストが高いが、チップレットがモノリシックなダイよりも大幅に低コスト(高い歩留まり・大量生産可能)である場合には総合的にMCM構成の方が安価になる場合がある。ところが、よりMCM化のコスト的な恩恵が大きそうなXbox用SoCですらモノリシック構成ということは、おそらくPS5用SoCもモノリシック構成だろう(※AMDのRyzen APUがモノリシック構成である理由はダイサイズが156mm2とコストが低く、またモバイル用に低消費電力を実現するためであろう。その点、Xbox用SoCは360mm2と巨大なうえモバイルを考慮する必要は無いから、理屈上はMCM構成の可能性は無くはなかった)。


最近の気になった話題(2020年第31-32週)

2020-08-08 | 興味深かった話題

CrayのHP Enterpriseへの統合

HPE Keeps Cray Brand Promise, Reveals HPE Cray Supercomputing Line - HPCwire

 HPC専業のCrayを買収したHP Enterprise(HPE)であるが、統合方法が発表されたらしい。
 以前も一度記事にしたが、前提として現在のCrayには三種類のHPCファミリーが存在する。これを、Shasta MountainをCray EX、Shasta RiverをCray、CSシリーズは廃止、現行HPE Apolloは残るらしい。以前の説明ではCray Shasta River・Cray CSシリーズ・HPE Apolloが統合されるという説明だったと思うので、やや話が変わっている感じがする。以前と違うのはShasta RiverがApolloにリブランドして残るということであるが、CSシリーズ・HPE Apolloはインターコネクトに標準的なEthernet・InfiniBandを採用するのに対し、Shasta Mountain/RiverはインターコネクトにCray Slingshotを採用することも関係しているのだろう。恐らく以下のような棲み分けになると思われる。

Features (Current)
Cray
(Current)
HPE
HPE + Cray
Specialized cabinet
Liquid cooling
Specialized networking
Shasta Mountain -- HPE Cray EX
Standard 19" cabinet
Air cooling
Specialized networking
Shasta River -- HPE Cray
Standard 19" cabinet
Air cooling
Commodity networking
CS500 Apollo HPE Apollo

 HPCwire記事中では富士通A64FXについても触れられているが、A64FX自体はCray CS500でもHPE Apollo 80でも採用されているため、筆者の私見では特に変化がないというのが実際のところだと思う(A64FXはShastaでは採用されていない)。
 Hisa Ando氏は「Slingshotを付けるにはPCIe4.0が必要ですが,A64FXはPCIe3.0しかサポートしていません」と仰っており、HPCwireの記事中にもHPE幹部のコメントとして同様の記載があるが、これは、Slingshotの帯域が200 Gbps(56 Gbps PAM4)なので、PCIe Gen 3だとx16レーン 128 GT/sでは十分でなくPCIe Gen 4 x16 256 GT/sが必要になるという意味だろう。Slingshotのネットワークアダプターは物理的にはMellanox ConnectX-5なのでPCIe Gen 1.1-4 x1 - x16で使うことは自体は可能だろうと思うが、本来の性能は発揮できない。
 しかし、そもそも私は以前から指摘してきたがA64FXは「富岳」向けに特化しており汎用性が無視されているので、あまり意味のない議論だと思う。A64FXのI/OはPCIe Gen 3 x16のみしかない(あと理研独自のTofu-Dもあるが「富岳」と互換機以外では使われていない)。HPCwire記事中にある基板の写真ではCPU 2基・NVMe SSD 2基・PCIe x16スロット 2基が見えるが、NVMe・PCIe x16スロットはPCIe SwitchでPCIe Gen 3 x16の帯域を共有しており、CPU同士は相互接続されていないので各1基あるPCIeスロットはEthernetなりInfiniBandなりにしか使うことができない。

 ちなみにHPCwireの記事ではA64FXブレードについて「HPE Apollo 80 Blade」と記載があるが、見た感じではCray CS500のブレードと同一に見える。

 Ando氏は「A64FXからPCIe4.0を出すのは必須」と主張しておられるが、それならば理研「京」用SPARC64 VIIIfxに対して汎用的なSPARC64 IXfxを出したようにA64FXに対して汎用的なプロセッサーを出す必要があると思う。「富岳」以外で需要が皆無なTofu-Dを取っ払ってPCIeを32レーン程度まで拡張する必要があるだろう。

Fedora 33はLinux KernedでBtrfsをサポート

Fedora 33 Making Progress With Their Btrfs-By-Default On The Desktop - Phoronix
Btrfs by Default - Fedora Project Wiki

 Linuxのカーネルモジュールはカーネルに組み込むこともモジュールとすることも可能であるが、Fedora 33ではBtrfsファイルシステムドライバーを標準でカーネルに組み込むという。

 これが驚きなのは、FedoraのスポンサーであるRed HatはRHEL 7/RHEL 8でBtrfsのサポートを打ち切ったからだ。
 一応、Red HatとFedoraは別組織なので別の仕様とすることは可能だが、Fedoraが将来のRed Hat Enterprise Linuxの基礎となることを考えればFedoraがRed Hatの決定に反するような決定をすることは驚きである。

 ここからは私の想像であるが、思うにRed Hatは開発中のStratis(ファイルシステム管理システム)を発展させるためにBtrfsを代わりに使用するのではないか。
 StratisはローレベルのファイルシステムとしてXFSを流用しつつ、ZFS・Btrfsがサポートする機能を実現しようという管理システムであるが、Stratisは2018年末頃に開発が公表されたばかりで機能も一部しか実装されておらず商用で使える状態にはなっていない。そこで一時的にBtrfsで代用しつつStratisが成熟した時点で置き換えるのではないか。Red HatはRHELの新バージョンを5年毎にリリースしている(各バージョンは10年間サポートされる)が最新RHEL 8は2019年に登場したためRHEL 9で置き換えるとすれば2024年頃ということになる。現在Linuxで広く使用されているExt4が2006年6月開発開始・2008年12月(2.5年後)にLinux Kernelにマージ・2011年1月(4.5年後)にRHEL 5.6からフルサポートというスケジュールを鑑みれば不思議でないスケジュールである。


最近の気になった話題(2020年第30週)

2020-07-26 | 興味深かった話題

NVIDIAはArm買収に興味がある?

Nvidia Eyes Biggest-Ever Chip Deal in Pursuit of SoftBank’s Arm - Bloomberg

 Bloombergなど複数メディアによると、NVIDIAがソフトバンクからのArm買収に関心を示しているという。

 先週の話題で述べたAppleよりは現実味のある話に思えるが、NVIDIAによる買収の場合でもArmのエコモデルを崩壊させる可能性があるのは同様で、また、ソフトバンクがArm買収に費やした$32Bという金額も併せて考えると、あまり現実的とは思えない(NVIDIAの過去最大の買収は昨年のMellanox買収で$7Bであった)。

 もっとも、NVIDIAとAppleの置かれている状況は似て非なるものだ。
 まず、AppleとNVIDIAの市場における立ち位置が異なる。Appleは過去に2度アーキテクチャーの移行を達成してきたが、それはAppleが垂直統合型の企業だから可能だった。逆に、これまではMC68K・PowerPC・x86のいずれでもCPUを外部に依存してきたため、CPUベンダーの製品開発が行き詰まるとApple自身も行き詰まってしまうため移行を余儀なくされてきた。今回は自社開発CPUに移行するため今後は同じ問題は発生し難いが、もし仮に将来的に何らかの理由でArmアーキテクチャーからの移行を余儀なくされたとしても他のアーキテクチャー、例えばRISC-Vのような移行先はある。

 一方のNVIDIAは水平分業型モデルであり、以前からCPU開発に関心を持ってきた。ドル箱であるGPUでCUDAなどを動作させるにはCPUアーキテクチャー向けにドライバーや開発環境を提供し、さらに効率よく動作させるにはCPU−GPU間を適切なインターフェースで接続する必要があるがCPUのコントロールが無いからだ。例えば一般に出回っているIntelやAMDのCPUではNVLinkのようなキャッシュコヒーレンシのある高速なインターフェースを使用できない。
 だから、NVIDIAはAppleを含む多くの企業よりもArmアーキテクチャー/Armプラットフォームの発展に貢献してきた実績がある。例えばTegra 4iではNVIDIAの技術者がArmに入ってCortex-A9r4を開発したし、big.LITTLEはNVIDIAの4+1省電力コア実装にインスパイヤされたものであることをArm自身が認めている。ARMv8の開発にあたってはNVIDIAが数百人のエンジニアを送り込んで協力したという。

 一方で類似点もある。それは、AppleもNVIDIAもArmアーキテクチャーには依存しているものの、Qualcomm・Samsungなどと比較すると相対的にArmコミュニティーへの依存は小さい点だ。
 Qualcomm・SamsungなどがArmコミュニティーへの依存が大きいのはAndroidや既存の組込Linuxへの依存が大きいからだ。Androidは亜流のJava MEベースなのでプラットフォームへの依存は強くないとされるが実際にはArm以外への実装は細々としかされておらず、例えばAndroid-x86は最新版がAndroid 9.0と1年以上遅れている。OSのサポートやコンパイラーの最適化なども考えるとArm・x86以外の選択肢はコストが高すぎる。
 その点、NVIDIAのAndroid依存は小さく見える。NVIDIAもかつてはShieldブランドでAndroid端末を手掛けていたが、Shield端末もモバイル向けTegraも大成功とは言えず、一方で現在は自動運転向けに注力している。もし仮にNVIDIAかAppleがArmを買収してLinaroメンバーを含む主要Armチップベンダーが別アーキテクチャーに移行しても、恐らくNVIDIAはビジネスを継続できることだろう。これはiOS/Macという独自プラットフォームを持つAppleも同様である。

 とはいえ、思うにAppleもNVIDIAもArmは独立性を保ち中立であることが望ましく買収しても利益がないことを知っているはずだ。ましてや$30Bを超えるような場合にはなおさらである。
 ただ、今回が2016年以前と異なるのはArmは独立しておらず既に誰か=ソフトバンクに所有されている点だ。言い換えればソフトバンクによるArmの売却先次第ではこれまでよりも独立性が侵害される可能性がある(例:中国企業など。米国政府当局が承認しないとは思うが)。もしArmの独立性が損なわれそうな場合には、その阻止のために買収に乗り出すことはあるかもしれない。

Intelが1年間の7nm遅延を発表

Intel's 7nm is Broken, Company Announces Delay Until 2022, 2023 - Tom's Hardware

 個人的には、Intelは自縄自縛に陥っているような気がしている。
 現在進行形で10nmも計画より遅れており、その顛末はASCII大原氏の記事に詳しいが(参考1参考2)、簡単にまとめれば、10nmは「2016年に出荷が開始され」「14nm++プロセスを置き換える」予定だったのが、実際には「2019年後半に出荷が開始され」「一部製品でしか14nm++を置き換えられない」のが実態である(※厳密にはCannonlakeが1 SKUのみ出荷されたので「2019年後半の出荷開始」は正しくないが、大量出荷されたわけでもないので無視してよかろう)。

 Intelの先端プロセスの先進性や困難さは後藤氏も書かれておられるし(参考1参考2)、その合理性も頷けるが、それで会社の事業計画が5年間に渡って遅滞するようでは元も子もない。
 Swan氏以前のIntel CEOは初代CEOのRobert Noyce氏(元半導体研究者)から先代CEOのBrian Krzanich氏(元製造部門トップ)まで、元技術畑出身者で占められてきたが、2016年からの製造プロセス問題が続く2018年にCEOに就任したのが前CFO・財務畑出身のSwan氏である。私には、技術的な先進性を求め過ぎた結果、製造技術の優位(2011年頃の時点では他社より1~2年先行していると目されていた)を失墜させた技術一辺倒からの脱却を狙ったように見えたのだが、そうでもなかったのだろうか。

 私見だが、TSMCやSamsungといったファウンドリーが優れているのは「ハーフノード世代」を作るなどして段階を踏んで手堅くプロセスを移行している点にあると思う。
 例えば先代14/16nm世代から7nm世代までであれば、微細化以外で技術の変革は2回あった。まずはPlanerからFinFETへのトランジスタータイプの移行であり、さらにUVからEUVへの露光技術の移行である。TSMCの場合、まずFinFETへの移行はバックエンドを20nmと共通化した16FFで乗り越え、14/16nm世代では16FF+・12FFN・10FFを追加した後、既存技術を流用したN7を製品化した上でN7+でEUVに移行している。Samsungも同様の移行方法を採っている。この方法だと微細化と複数の新技術を一度に導入しないのでリスクを軽減でき、もし失敗した場合でも別のプロセスで繋ぐことができる。もちろん、同じファウンドリーでもGlobalFoundriesのように失敗するケースもあるが、ファウンドリーはプロセス開発が完全に失敗した時点で事業が成り立たなくなるせいだろが、手堅いし、失敗時の見切りも早い。
 TSMCは既に5nm世代N5のリスク生産を始めており、今年末から来年中盤にかけてApple A14など採用製品が市場に出てくる予定だが、予定通りになると見られている。

 しかしIntelの場合、FinFETへ移行した22nmこそうまく移行したが(その結果、他社より1~2年先行しているとされたが)、EUVではよく分からない。現状、10nmのコバルト配線の躓きから回復しておらず、7nmではさらにEUVを導入する。面白いのはThe Vergeなどは「早くとも2022年まで遅れる(delayd until at least 2022)」と書いている点だ。恐らく誰もIntelの予定を信用していない。

日本にTSMCを誘致する案

07/30 - 表現の不一致・誤記を修正しました。
TSMCの誘致は無理、でもファウンドリ事業を始めるべき(津田建二) - Yahoo!ニュース

 どういった経緯で出てきたのか理解に苦しむが、米国に続き日本もTSMCのファブを誘致すべきという案があるらしい。日本へのTSMC誘致も馬鹿げているが、Yahoo!ニュースにある指摘も馬鹿げていると思う。いずれも日本の半導体生産の現状を把握しているとは思えない。

 問題は日本の半導体市場が成長していない云々ではなくて、日本の半導体企業がすべて弱小という点にある。そこへファウンドリー=TSMCを誘致しても問題は解決しない。
 そもそも半導体企業のトップ10に日本企業はキオクシア(旧 東芝メモリ)以外ランクインしておらず、しかもキオクシアはNANDプロセスであってロジックプロセスではない(SK Hynix・Micronも同様)。要するに、製造工場の場所に関わらず日本企業には製造する半導体製品が無い。

 まず、ファウンドリー=半導体製造企業とファブレス半導体企業を混同してはいけない。
 記事中にある半導体市場の推移のグラフは恐らくファブレスを含む半導体企業の売上高だろうが、ファウンドリーの数字が恐らく含まれていない。ファウンドリーを含むと二重にカウントされてしまうためである。例えば上のリンクにあるEE Timesの記事ではトップ10のうち4社はファブレス半導体企業で、これらの企業は自社では製造せずTSMCなどに委託している。
 半導体製造で先端を走っているのは、台TSMC・韓国Samsung・米Intelで、1〜2世代遅れで中国SMIC、米GlobalFoundries・台UMCといった企業が続き、Intel以外はファウンドリー(受託生産)ビジネスを行っており、Intel・Samsung以外は自社向けに半導体製品を作っていない製造専業である(UMCなどは一応そういうビジネスもあるが…細々としたものである)。

 記事にある通り世界では半導体市場は成長しているし米国の半導体市場もまた成長しているはずであるが、米国の場合はIBM・AMD・旧Freescaleなど、元々自社で製造していた企業が製造から撤退しており、またQualcomm・Broadcom・Marvell Technologiesなどトップクラスのファブレス半導体企業も米国に所在している。その多くが上述のファウンドリーなどに委託している。だから、TSMCがファブを米国に建設すれば米国半導体企業が機密を米国外に持ち出すことなく利用できる。つまり、現在Designed in USA・Made in TaiwanなのをTSMCの誘致によってDesigned in USA・Made in USAとするわけだ。
 ところが日本の場合、仮に日本にTSMCなりのファウンドリーがファブを建設しても、そこで製造する日本メーカー製の製品はほとんど無い(つまりDesigned in Japanがほとんど無い)。そもそも自社ファブ/ファブレスに関わらず日本の半導体企業が弱小なのだから当然である。

 TSMCの誘致ではなく日本にファウンドリーを作るというのはそもそも不可能に近い。
 やや古い記事だがPC Watch後藤氏の2008年の記事では「2世代毎にFabは1.5倍、プロセス開発は2倍のコスト増」「開発コストについては(中略)22~12nmプロセスになると13億ドル」「先端Fabの建造には(中略)22~12nmプロセスでは45~60億ドル($3.5-$6B)へと膨れあがる」としている。もちろん企業によって前後するだろうし世代によっても変わるが傾向は理解できる。ちなみに、7nmクラスでは高価なEUV露光装置の導入が必要など、この高騰化する傾向はさらに加速している。
 後藤氏の記事を参考にするなら、2021~22年の最先端5nmプロセスを作りたければプロセス開発に26億ドル程度・ファブ建築に60~90億ドル程度が必要になる(ちなみにTSMCが米国に建造するファブは120億ドル≒約1兆2900億円規模である)。しかも2~3年毎に世代が更新するので、毎年45~60億ドル(ざっくり5000億円)程度の投資が必要になる。さらに言えば、これら後藤氏の記事の数字はTSMCやIntelなど現時点で先端を走るノウハウを持った企業での数字なので、新規参入するとなるとより大規模な投資が必要となるだろう。年間の研究開発予算トップ3が日本を代表する自動車会社・トップ3以下は年間の研究開発予算5000億円未満などという現状では逆立ちしても不可能だ。

リピーターとIEEE 802.11s

リビングのテレビ&ゲーム機接続環境をWi-Fi 6に変更 - Internet Watch

 中継機に関する記事だが、果たしてこれが妥当なのかよく分からない。レビュー記事なら他の構成も踏まえて書いて貰いたいところだ。

 記事中では序盤で「これまで筆者宅の (中略) 両フロア間が4ストリーム最大1733MbpsとなるWi-Fiで接続されていた。これに対して新しい環境では (中略) 両フロアの間は最大1201Mbpsで接続されることとなる」としているにも関わらず、結論は1階2階のフロア間は330 Mbpsで接続され「結果的に満足できる構成となった印象」としている。
 Wi-Fiは干渉を受けやすく理論上の性能の1/10も出ないような状況が多いため、言いたいことは解からなくもないが(例えばNetflixの最高画質=Ultra HDが25 Mbpsなので実効330 Mbpsあれば十分とも言えるが)、330 Mbpsで接続されて満足というのは妥当性がよく解からない。

 ある程度大きな家(あるいは鉄筋コンクリートなどWi-Fiの電波が通りにくい戸建)という環境であれば802.11sメッシュ対応ルーターを選ぶという方法もある。
 802.11sメッシュは欧米で「Whole Home Wi-Fi(家まるごとWi-Fi)」と呼称されるシステムで、他の802.11規格と違い無線通信そのもののプロトコルではなくメッシュ通信のプロトコルを定義している(つまりユーザーが使うWi-Fi接続はこれまで通り802.11acや802.11axである)。
 802.11s対応デバイスの利点は、最初からAP間接続のためのbackhaulが考慮されている点だ。Wi-Fiに限らず有線LANスイッチでもダウンリンクを束ねるアップリンクが太くなければならないのは当然だ(例えば仮に中継先APに2台の端末が500 Mbpsで接続したければアップリンクは1000 Mbpsでなければならない)。多くのWi-Fiルーター/APなどだと2バンドしか無くbackhaul専用チャンネルが割り当てできないし1台以上の中継に問題があるが、802.11sメッシュ対応ルーター/APではそういった問題が避けられる(記事中でも、5 GHz帯を1Fと中継器のbackhaulで共有して2Fの中継器は5 GHzでの接続をOFFにしている)。
 もっとも、現状の802.11sメッシュ対応ルーター/APには主に2種類の問題がある。まずはルーター/APを複数配置することになるので導入コストが高くなることと、ピークパフォーマンスではなく全体の接続性を重視した製品のため一部製品を除きゲーミングルーターなどに搭載される機能・性能が考慮された製品が少ない(Netgear XRM570ASUS AX3000Linksys MR9000ぐらいだろうか)。プロセッサーでいうと多くの802.11sメッシュ対応ルーター/APはQualcomm IPQ401xシリーズベース(Cortex-A7 quad-core・NPUなし)で、ゲーミングルーターの搭載するIPQ80xxシリーズ(Cortex-A53 quad-core・NPU dual/quad-core)とは性能的に大きな違いがある。
 このようにまた、利点・欠点のある802.11sメッシュ対応ルーター/APだが、ネットワークを扱うメディアでも802.11sの検証記事は少ないため、理屈はともかく実際の速度は情報が少ない(参考)。もっとも、802.11s対応は基本的にソフトウェアでの対応のため、802.11ax/WiFi 6以降では通常のルーターに802.11sメッシュ参加機能が付加された製品も増えている(例:ASUS AiMesh)。

 802.11sメッシュ対応ルーター/APは導入コストが高いとは書いたが、記事中ではハイエンドのバッファロー WXR-5950AX12にTP-Link RE505Xを組み合わせて使用しているため計約40,000円で、それだけの予算であればASUS RT-AX3000 2台という手もある(dual-bandなので802.11sの利点を最大限に利用できないのが難点だが…。海外であればASUS AX6100 2台という構成もある。欧米で2台で~$400で買えるのに対し日本では1台30,000円以上するから無理)。個人blogのレビューでなくプロのライターのレビューなのだから、そういう検証もして頂きたかったところである。


最近の気になった話題(2020年第29週)

2020-07-19 | 興味深かった話題

Neural-network Processing Unitの行方

The Elegance (And Limitations) Of Precisely Engineered Accelerators - The Next Platform
NVIDIAのAmpereで対応した新技術「プルーニング」 - PC Watch
第3世代のディープラーニングプロセッサはモデル圧縮技術が鍵- PC Watch

 PC Watchで後藤氏がNVIDIAがAmpere A100で実装したDeep Neural Network処理用の機構について解説されている。その内容自体も興味深いのだが、やはり個人的に気になったのは「A100はGraphic Processing Unitなのか?」という疑問である。この疑問はA100発表時から感じていたことでもある。

 例えばSIMD演算ユニットを考えてみたい。最初に一般に普及したSIMD演算ユニットはIntel MMXであろうが、そのウリは「専用プロセッサー無しにMPEG-1のVideo-CDを再生できる」というものであった(参考)。1996年頃のことである。SIMD演算ユニットは汎用的な演算器だから、それがMPEGのデコードに使われるのか、AESなどの暗号化/複合化に使われるのか、Deap Neural Network処理に使われるのかというのは単にアプリケーションの違いに過ぎない。また、そんなSIMD演算ユニットをクラスタリングしたGPU=Graphic Processing Unitが、例えば海洋シミュレーションのような物理演算やDeep Neural Network処理用に使用されることも不思議ではないし、また、そういうトレンディングなアプリケーションの違いによって対応するデータフォーマットがINT16/INT32・FP32/FP64さらにINT8/FP16と変化することも驚くべきことではない。
 一方、後藤氏の記事にあるような処理はDeep Neural Network処理に特化したものに見える。記事の内容は論理的で納得のいくものなので、そういう機能がDeep Neural Network処理に利用されることは理解できる。
 しかし、それがGPUに実装されると言われると訳が分からなくなるのである。むしろ、Intelが買収したHabana LabsのGoya/GaudiやGraphcoreのColossus MK2のような専用プロセッサーに実装されたと言われた方が納得がいく。

 ところが、Hisa Ando氏の記事で知ったのだが、GraphcoreのようなNeural Network処理専用の製品を選ぶ顧客は減っているのだという。
 The Next Platformの記事から理解するに、これはNeural Network処理用のプロセッサーが要らないとかいう話というよりも、GoogleやAWSのようなCloud Hyperscalerは特定のプロセッサー(Google=Google TPU・AWS=Annapurna Inferentia/NVIDIA Tesla・Microsoft=Intel FPGA・Facebook=Intel Nervanaなど)しか採用しないので、Cloud Hyperscalerに採用されない、それ以外のNeural Network専用プロセッサー製品は誰も要らない、それぐらいなら他のこと(GPU・CUDAなどGPGPU)にも使えるNVIDIA Teslaを選ぶということなのだろう。

 ここで個人的に気になるのはAMD GPU・Intel GPUの動向である。上述を踏まえると良いポジションにいるはずであるが、米エネルギー省のHPC=Aurora(Intel GPU)・Frontier・El Capitan(共にAMD GPU)に採用されることが決まっているが、どういう機能を作り込んでくるのか興味深いところである。特にAMDはNeural Network処理用の機能を次々とGPUに盛り込んできたNVIDIAに対し、AMDはせいぜいFP16対応程度に留まり静観しているように見えるが、そもそもFP16/FP32/FP64などの対応を見ても、NVIDIAが個別に演算ユニットを作り込んできたのに対し、AMDは全対応の演算ユニットを作ることでプロセッサーを小さく保ってきている(IntelはそもそもGPGPUを未提供なのでスタンスが不明)。AMD・IntelのGPUがNeural Network処理に対応したとき、Neural Network専用プロセッサーは滅ぶのかもしれない。

ソフトバンクはArm株を売却またはIPOするのか

ソフトバンクがArmの売却を検討 - Gigazine

 ソフトバンクはSoftbank Vision Fund(SVF)で利益を出すためにも株式の一部を売却すると想像する。

 ソフトバンクは2016年にArmを$32Bで買収したが、25%にあたる$8B相当分をSVFに移管している。そのため、ファンドが出資者に収益を還元する2029年までに現金化する必要がある。そういう意味では、2029年までに少なくとも25%を売却というのは2017年からの既定路線だろうと思う。

 しかし、それでも可能な限り51%は保持し続けると見る。その理由は、そもそもソフトバンクがArmを買収した動機がArmのIoT関連のライセンシングを通じてIoT業界の生の情報が入ってくるからと見られているからだ(関連1関連2)。これはSVFとも関連しているはずで、ファンドの投資先の見極めのインプットになっているのであれば過半数を手放すことは避けたいところだろう。
 もっとも、Gigazineの記事にもあるがSVFが投資に失敗しソフトバンクが創業以来の大赤字を計上が報道されている通りで(関連1関連2)、その補填のために必要であれば過半数以上も売却する可能性はあるだろう。実際のところ、上述の通り「Armの情報が投資に役立つ」はずにも関わらず、大赤字を計上しているということは、実は大して役に立っていないと見ることも可能だろうからだ。

 ただし、一部Appleファンサイトで予測されているような、AppleがそのArm株を取得するという事態は考え難い。仮にあっても議決権ベースで35%未満に留まるだろう。それは、AppleがArmアーキテクチャーを採用する意味が薄れるからである。

 そもそも、ArmがiOS端末やAndroid端末で採用されて注目を浴びたにも関わらず、2016年にソフトバンクに買収されるまで買収されなかったのは関連企業が「買収できなかったから」あるいは「買収するうま味が無かったから」である。
 同業他社のIPベンダーの場合はSynopsys(2020年7月現在 時価総額$29.5B)やCadence(2020年7月現在 時価総額$28.0B)が買収するには巨大過ぎたし、投資ファンドの場合は既に成長しきっており含み益を生み辛かったからだろうが、Qualcomm・Samsung・HiSiliconなどのArmプロセッサーを採用する半導体各社にとってはArmが中立であることが望ましかったからである。
 かつてコンピューター業界の支配的なプラットフォームといえば長らくMicrosoft Windows + Intelだったわけだが、この牙城を切り崩しつつあるのは多数の企業や個人のコミュニティーに支えられたオープンな技術だ。オープンソースソフトウェアのLinuxやGCCが代表的だがオープンかつ中立であることで多数の企業や個人のコミュニティーからの支援で開発されるエコモデルが形成されている。同様に、Intelのような巨大企業連合に対抗するArmプラットフォームを支えているのは、そのオープン性に基づくコミュニティーである(例:Linaro)。NVIDIA(Cortex-A9/A15、AArch64)や富士通(SVE)やアーキテクチャーや命令セットの定義で、SamsungなどのLinaroメンバー(big.LITTLEやLinux Kernelスケジューラー)はLinuxやGCCの実装で、Armと協業したことが知られているが、これらの企業がArmと協力したのも、そのオープン性とコミュニティーによるものである。共存共栄というわけだ。
 ところが、これを特定の1企業(例:Apple)が買収してしまうとその企業の競合他社(例:Samsung・Qualcomm・HiSilicon)は他のプラットフォームへ乗り換えを検討せざるを得なくなる。なぜならArmプラットフォームに貢献することが競合他社(例:QualcommやSamsungがApple)に利益を貢いでいることとイコールになるからだ。
 つまり、AppleがArmの過半数を握った瞬間にArmエコシステムは崩壊する。これまで継続的な成長ができなくなったプラットフォーム(Motorola MC68K・IBM/Motorola PowerPC)に見切りをつけてきたAppleがArmプラットフォームの継続的な成長を阻害する買収に踏み切るはずがないのである。

 ところで、その点でソフトバンクは独特な立場にある。
 半導体企業でもIPベンダーでもなくArmプラットフォームのコミュニティーや競合他社とは直接的な関係が薄いのでArm社を独立さえさせておけばコミュニティーの崩壊を招くこともないし、一応はSoftbank Vision Fundとは切り離されているので必ずしもArm株で利益を上げる必要はないし、上述の通りArmのライセンシング状況を見ることで次の投資先の情報を得られるようになる。
 仮にArm株式の過半数を売却するとしてもIPOではないかと思う。Armのオープン性を維持しつつArmを買収できる/したい企業は限定的だからだ。

IntelもArmプロセッサーを開発する?

元Mac開発トップ、インテルもArmプロセッサ開発を余儀なくされると予測 - Engadget Japanese

 元Appleのジャン ルイ ガセーJean-Louis Gassée氏がIntelもArmプロセッサーを開発することになると予想したと報道されている。もっとも、私は彼の歯に衣着せぬ物言いは好きだがガセー氏の予想が当たったことを見たことが無いが…。


最近の気になった話題(2020年第28週)

2020-07-12 | 興味深かった話題

Apple Arm版Mac用"Apple Silicon"のコストは?

Apple Siliconの製造コストは100ドル未満? - マイナビ
Apple to Start Mass Producing Self-Designed Mac SoC, Projected to Cost under US$100, in 1H21 - TrendForce

 マイナビの記事は特に後半は滅茶苦茶なので無視するとして、TrendForceの「$100以下」という予想は興味深い。
 TrendForceのApple製プロセッサーの「$100以下」という予想は「iPad用プロセッサーと同等か類似」と言っているに等しい。

 まず、既存の半導体や製造面をおさらいしたい。
 そもそも現行のiPhoneやiPadに搭載されているApple Aシリーズプロセッサーのコストは同種のプロセッサーの中では非常に高コストで恐らく$70~80はかかっている。AppleはBOMコストを公開していないが、iPhone用プロセッサーは$60前後(例:TechInsightはiPhone 11用プロセッサーを$64と見積もっている)と見られており、iPad用はさらに+20%ほどは巨大≒高コストだから概ね$70~80程度になろう。
 ちなみに、QualcommのハイエンドSnapdragon 800シリーズは概ね$50前後(※算出方法によって変化するし、世代によっても異なるので「おおよそ」の価格帯である)と言われているが、Snapdragonの売価はQualcommの利益が加算されているのに対し、プロセッサーを内製しているAppleはプロセッサー単体での利益を考える必要がないが、その一方で概ねSnapdtagon 800シリーズより巨大≒高コストでさらにモデムやWi-Fiなど多数の部品が外付けだから、やはり$60超えてくるのは妥当である(PC Watch後藤氏の関連記事1関連記事2)。

 つまり、iPhone・iPad用プロセッサーで既に$60~80程度はするので、仮にMacBook用プロセッサーが「$100以下」だとするなら、MacBook用プロセッサーがiPhone・iPad用プロセッサーと同等か、あるいは拡張規模が小規模なプロセッサーということになろう。

 しかし、よく考えてみれば「$100以下」というのは、随分とらしくない数字である。
 スマートフォン/タブレット用なら$50はハイエンド用プロセッサーの価格だが、PC用では$100はローエンド用の価格帯である(※コストのモデルが違うので単純比較はできないので注意)。例えばローエンドのMacBookに搭載されているCore i3-1000GN4は公開されていないため不明だが、それと同価格帯のCore i3-1005G1はロット単価が$281である。
 そして、スマートフォンでAppleがやっていること、つまり(Qualcommの利益が含まれた)$50のSnapdragonを買うのではなく、自前で$60~のプロセッサーを内製していることを踏まえれば、同価格帯でIntel版MacBookをArm版MacBookで代替するにあたり、Intel製の$250~300のプロセッサーを内製の$300~350のプロセッサーで代替しても不思議はない。
 現在のiPhone/iPadに搭載されているAシリーズプロセッサーではCore i3は代替できるがCore i7は代替できる性能はないのでMac用に何らかの変更(例:コア数増量・動作周波数向上・GPUを外付けなど)が必要と思われる。例えばCPUコア数を倍増・GPUをAMDから調達すると仮定すると、現行のMacBookのプロセッサーをCore i3からCore i7まで代替することは可能であろうが、その場合に$100で済むとは思えない(CPU $100+AMD GPU $150というのはありえる)。

 では「$100以下」とするTrendForceの予想は的外れなのか?というと、そうでもない。この「$100以下」という予想についてTrendForceは理由を図示している。
 TrendForceの図では「Mac SoC」は2021年以降からで、最初のMac用プロセッサーはiPadと同じ「A14X」とされている。つまり、$70~80のiPad用SoCをそのまま流用するのでMac用SoCは$100以下なのである。私はこのTrendForceの予想は正しいと見る。理由はTrendForceは台湾のマーケット調査会社でTSMCなどの半導体製造会社にコネがあるからだ。半導体は設計完了後1年間ほどは検証・その後半年間ほどで量産するため、言い換えれば、今年末~来年初頭に最初の製品を投入したければ、iPhone用プロセッサー・iPad用プロセッサー・Mac用プロセッサーを既に量産に入っている必要がある。
 TrendForceはもちろんTSMCもプロセッサーの中身の詳細を知ることはできないし、仮に知っていても口外することはできないが、小型と大型のプロセッサーを製造していて、それが2種類(iPhone用・iPad/Mac用)なのか3種類(iPhone用・iPad用・Mac用)なのかぐらいは簡単に分かる。


最近の気になった話題(2020年第27週)

2020-07-05 | 興味深かった話題

IBM BlueGene/QのCPUがオープンソースに

Big Blue Open Sources The Core Inside BlueGene/Q Supercomputers - TheNextPlatform
A2i, A2i Docs - GitHub

 POWERアーキテクチャーのオープン化OpenPOWERを進めるIBMが一環としてBlueGene/Q(BG/Q)で使用されたA2コアをA2iとしてVHDLでCreative Commonsライセンスでオープンソース化した(※注:出典によって「PowerA2」などとする記事もあるが、IBMのリリースには単に「A2」としか記載がない)。

 BG/QについてはASCIIの大原氏の記事などに詳しいが、2012年6月に「京」を退けてTop500首位に立った米エネルギー省LLNLのHPCである。「世界1位のスパコンのCPUがオープンソース化」といえば大事のように聞こえるが、そもそもBG/L・BG/Pからのコンセプトが安価・低消費電力なプロセッサーを大量に並べて超並列で動かすというものなので、CPUコア単体での性能は大したものではないので注意が必要である。

 A2は2イシューのIn-order実行パイプラインで、4スレッドをインフライトで実行できる。1コアあたりのシングルスレッド性能は低い代わりにトランジスタ予算が小さくて済み、多コアを1チップに集積しマルチプロセス・マルチスレッド処理に特化している。
 BG/Qの先代BG/L・BG/Pは組込用PowerPC440を使っていたが、PPC440とA2を比較すると恐らくIPC(サイクルあたりの性能)はPPC440の方が上で高クロック動作させることでパフォーマンスを稼いでいた(BG/Lの700 MHz・BG/Pの850 MHzに対しBG/Qは1.6 GHz)。その他のPowerPC440に対する優位性としてはマルチプロセッサーサポート・SMT4などが挙げられる。
 恐らくBG/Qの演算性能のキモはQXP浮動小数点コプロセッサー(FP64 x 4-way)で、CPUコア自体はQXPに命令とデータを供給し続けることができればよかったのだろう。ちなみに今回のA2のオープンソース化には浮動小数点コプロセッサーは含まれていない。

 A2はもともと「Wirespeed Processor」ことPowerENネットワークプロセッサーで使用されたCPUコアであるが、同種のプロセッサーとしては旧Sun Microsystemsが2005年に製品化した「UltraSPARC T1」が挙げられる。UltraSPARC T1はA2と同様2イシュー・In-order実行で8-core/32-threadで製品化されたが、後継のUltraSPARC T2と共にOpenSPARC T1OpenSPARC T2としてVerilogがGPLv2ライセンスでオープンソース提供されている。

 A2のソースコード公開は、A2を何かに組み込みたいという人や学習用途には朗報だが、大騒ぎするほどのことではないと思う。
 IBMのOpenPOWERで命令セットが公開された時も悪用を恐れて騒いでいるニュースメディアもいたが命令セットもA2もそれ単体では大した影響力はない。類似のオープンソースコアとしてはOpenSPARC T2がある(が、ビジネス的に影響があったなどという話はない)し、15段パイプライン・4命令イシュー・Out-of-Order実行のRISC-V BOOMv3がオープンソース公開されている状況では、A2の影響は極めて限定的だと思う。

Preferred Networks MN-3a

 先日発表されたGreen500でPreferred Networks MN-3aがトップになったという話題があったが、MN-3aおよびMN-Coreについては昨年11月にWikiChipが報じている
 個人的に驚いたのはGreen500 = HP LINPACKを実行できるという点で、恥ずかしながら、てっきりGoogleのTPUのようなマシンラーニング用のプロセッサーだと勘違いしていた(というか、WikiChipの書きっぷりだとそのように読める気がする)。

 PE(Processor Element)x4個とMAU(Matrix Arithmetic Unit??)x1個でMAB(Matrix Arithmetic Block)が構成され、1チップには計512個のMAB・1パッケージには4チップ(計2048 MAB)が集積されている。
 個人的には高いパフォーマンスを実現できた秘訣が知りたいところである。膨大な演算ユニットが搭載されているので理論上のピークパフォーマンスが高いのは理解できるが、他のNPU・GPUだとホストCPUとのリンクに広帯域・キャッシュコヒーレンシ可能なリンクを採用したり(例:NVLink・OpenCAPI)・メモリー帯域を確保したり(例:HBM2・GDDR6)といった工夫(?)が見られるが、それらしい説明が無いので、どのようにして高い性能を実現しているのか興味がある。

 ちなみに、このプロセッサーには「GRAPE-PFN2」と刻印がある通り神戸大の牧野教授と研究グループ(ゴードンベル賞を7回も受賞している)と東大の平木敬名誉教授が関わっているそうである。ちなみに牧野教授の個人ページによれば実行効率はまだ41%だそうである。

 


最近の気になった話題(2020年第25-26週)

2020-06-30 | 興味深かった話題

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点が大きいだろうと思う。


今週の気になった話題(2020年第24週)

2020-06-13 | 興味深かった話題

Jim Keller氏がIntelを辞職

Intel CPUアーキテクトのジム・ケラー氏が辞職 - PC Watch

 多数の有名なプロセッサーを手掛けたCPUアーキテクトとして有名なJim Keller氏がIntelを辞職するそうだ。今回が前回(Tesla)や前々回(AMD)と少し異なるのは辞任後も6カ月間にわたってコンサルタントとして携わることが明言されている点だろう。

 聞いた話になるが、Jim Keller氏に限らずCPUアーキテクトが企業を渡ることは珍しくないようだが、実際の製品が市場に投入される何年も前に離職することが少なくないようだ。近年の高性能CPUは約4年間の開発期間を要するのに対し、アーキテクトが設計するのは最初の~2年間程度の上流工程だからだ。
 例えばZen開発に関してAMDに参加したのは2012年8月のことであるが2015年9月に辞職し2016年1月にTeslaに参加、同職を2018年4月に辞職してIntelに移籍している。AMDの場合はZenが発表されたのは2017年3月のことで、Teslaの場合もFSDが発表されたのは2019年9月のことだから、いずれも1年半ほど前に辞職していたことになる。

 もちろん、今回も辞職後半年ほど経ってから別の企業に移籍するということは十分に考えられそうだが今回はHotChipsでの基調講演が予定されている状況での辞職のため、あらかじめ計画されていなかった可能性が高そうだ。

AMD Ryzen 3000CシリーズSoC

AMD Ryzen 3700C and 3250C Benchmark Results Point to Google Zork - Tom's Hardware

 Google Zork向けというAMD Ryzen 3700C・3250CがGeekBenchの結果に登場したそうだ。
 記事中ではGoogle Zorkを「2-in-1のPixel Bookではないか」と言っているが、恐らくChromeOSベースのデバイスだろう(※注:Pixel BookはChromeOSデバイスである)。Androidベースのデバイスと異なりChromeOSベースのデバイスではIntelプロセッサーが標準でサポートされているし、ChromeOSデバイス用プロセッサーにサフィックス「C」が付く例はこれまでもあった(例:Rockchip RK3288C)。

 Ryzen 3000Cシリーズが興味深いのは、Tom's Hardwareの記事中にある通り、通常のRyzen 3000U/3000G APUとは異なりチップセット無しのSoCであることだ。実際には、Zen/Zen+世代Ryzen APU(Raven Ridge / Picasso)はRyzen Embedded V1000・R1000シリーズに見られるようにチップセット無しのSoCとして利用できるため不思議な事ではない。

 恐らくPC用のRyzenがチップセットを必要とする背景には様々な理由/目的があるのだろうが、ユーザー視点・技術的な理由としてI/O数を増やす目的がある。後述するがCPUから出せるI/Oには限りがあるからだ。
 現在のAMDチップセットはPCIe x4で接続され、例えばB550の場合はここからPCIe Gen 3 10レーン・SATA 6レーン・USB 3.1 Gen 2 2レーンなどを取り出すことができる、ハブの役割を果たしている(※注:PCIeとSATAの高速シリアルI/Oは合計10レーンの排他利用)。言い換えれば、Thin ClientやChromeBookのようなレガシーフリーでI/Oの少ないプラットフォームではチップセット無しでも問題とならない場合がある。

 AMD Zen/Zen+シリーズのAPUはSoCとして使用する場合には合計16レーンの高速シリアルインターフェース(PCIe・SATA)が使用できる。Google Zorkの仕様は不明だが、一般的なChromeBook/ラップトップPCとして考えるならM.2 NVMe SSD(PCIe x4)・M.2 Wi-Fi(PCIe x1)・1GbE(PCIe x1)・SD Card Reader/Writer(PCIe x1)といった具合で合計16レーンで十分に足りてしまう。

 Intel Coreシリーズプロセッサーの場合、CPUは単体でブート可能なようにはできておらず、PCIeやビデオ出力以外のI/Oも搭載されておらず、チップセットありきのデザインとなっている(Core-Uはチップセットをパッケージに統合しているため外付けチップセットは必要ないが)。

余談:Ryzen Embedded SoC

 Ryzen 3000Cシリーズ≒Ryzen Embedded V1000/R1000シリーズと仮定してRyzen Embedded V1000/R1000について。
 AMD ZenシリーズとIntel Coreシリーズは製品としては似ているが大きく異なるコンセプトを持っている。それはZenシリーズが組込界の設計思想を取り入れたSoCとしての利用を想定した製品である点だ。これはGPUが統合されたAPU製品(Ryzen Embedded)だけでなく単体CPU製品(Epyc Embedded)でも共通の特徴である。

 組込とPCでの半導体製品の大きな違いは、組込では一般にチップに搭載されている機能を全て同時に利用することができず選択的/排他的に取り出すことが多いことだろう。組込では組み込まれる対象のデバイスの用途によって必要な機能(≒必要なI/O)が異なるが、特定の用途に限定されているので同時に利用可能なI/Oの種類は多くなくていい。むしろ、チップの半導体面積(≒4辺がI/O用)やパッケージのフットプリントが小さい方が良いためI/Oは必要最小限の方が良い。
 より具体的には各種コントローラーは論理層と物理層が別々に実装されているが、取り出すことが可能な機能は実装されている物理層≒高速シリアルI/O(いわゆるSerDes)の数に制約を受ける。

 以下の表は第1/2世代ZenのAMD APUの仕様(※一部推定を含む)をまとめたものであるが、左端がチップそのものの仕様、中央3項目が同チップから派生させた製品、右端が同チップの採用例(≒ユーザーから見た仕様)である。

Product line N/A Ryzen-U / -G Ryzen Embedded
V1000
Ryzen Embedded
R1000
Example:
Sapphire BP-FP5
Ryzen V1000/R1000
Memory Std DDR4 2400 - DDR4 3200
Channel 2
PCIe lanes 16 SerDes lanes
upto 16 PCIe
upto 8 SATA
upto 2 10GbE
PCIe Gen 3
12 (4 for SCH)
16 SerDes lanes
upto 16 PCIe
upto 2 SATAIII
upto 2 10GbE
8 SerDes lanes
upto 8 PCIe
upto 2 SATAIII
upto 2 10GbE
1 M.2 PCIe x4 or SATA
1 M.2 PCIe x1
1 SATA
SATA -
Ethernet - 2 1GbE (PCIe x1)
USB 4 USB3.1

 チップ自体は16レーンの高速シリアルI/O(SerDes)を搭載している。これは搭載しているPCIe 16レーン + SATA 2レーン + 10Gb Ethernet 2レーンとコントローラーの総数よりも少なく、取り出せるI/Oは排他利用となる。

 PC用Ryzen 2000シリーズAPU(Raven Ridge / Picasso)では16レーンすべてをPCIeとして使い、うち4レーンをチップセットとの接続・残り12レーンのうち8レーンをGPUなどPCIe・4レーンをM.2として使用するケースが多い。
 組込ではやや状況は変わり、利用可能なコントローラーから組込ベンダーが組み合わせを選択できる。例えばSapphire NP-FP5・BP-FP5ボードの場合、V1000・R1000両対応から8レーン分のI/Oが使用されている。M.2 2280 B+M KeyでPCIe x4またはSATA 1レーン・M.2 2230 A+E KeyでPCIe x1またはUSB・2基の1GbEでPCIe x1を2レーン・SATA 1レーンで合計8レーンを使用している。

 ちなみに、ここでいう高速シリアルI/O≒物理層とは、チップ間接続などでいう物理層のことでEthernet/OSIモデルの物理層とは異なる。例えばAPUにはSynopsys製10GbEのMACが搭載されているが、ここでいう物理層とはこのMACとPHYの間を接続するXGMIIシリアルI/Oのことである。これを他ノードとケーブル接続に利用するには外付のPHY(Ethernet/OSIモデルでの物理層)が別途必要になる。

 ところで、Ryzen Embedded搭載製品について調べていると、10GbEが有効化されていないことへの疑問の声が聞かれるが、恐らくこの10GbEはそのような利用を想定していないのではないか(メーカーがサポートしていないのではないか)と思う。
 まず、上述の通りRyzen Embeddedに搭載されているのはバックプレーン用の10GBASE-KRのMAC層であり、I/Oとして取り出すにはバックプレーン(PCB基板上での通信)としての使用が想定されている。恐らくSFPなどを使えば10GBASE-LR/ER/SR(光ファイバーでの通信)で使用できると思われるが、果たして消費者向けに浸透しつつある10GBASE-Tとして使用できるかは疑わしい。
 ちなみに、このMACは1GbE x2レーンとしても使用可能なようだがPHYを外付けする必要があるためコストパフォーマンスは良くない。MarvellあたりのPHYよりもRealtekのPCIe x1接続1000BASE-Tコントローラーの方が安価だったりするからだ。

 ちなみにCOM Express(組込用のプロセッサーモジュール規格)を使用する場合、Ryzen Embeddedの仕様はCOM Expressの仕様と完全には合致していない。これはEpyc Embeddedの仕様がCOM Express Type-7と完全に合致する(≒そういう意図で設計されている)のとは対照的である。

  COM Express Types AMd Embedded Processor family
Type COM Express
Type-6
COM Express
Type-7
Ryzen Embedded
V1000
Epyc Embedded
3000
PCIe lanes 24 32 upto 16 lanes upto 32
SATA 4 2 upto 2 upto 8
10GbE 0 4 upto 2 upto 4
1GbE 1 1 upto 2(?) upto 4(?)
USB3.0 4 4 4 4
USB2.0 8 4 1 0
Video LVDS A&B 0 LVDS 0

 


最近の気になった話題(2020年第22-23週)

2020-06-07 | 興味深かった話題

AMDがARMベース・モバイル用のRyzen C7を開発か

AMD Ryzen C7, an Arm Cortex-X1/A78/A55 Processor with MediaTek 5G Modem? (Leak) - CNX Software

 真偽は定かではないが、個人的には眉唾かと思う。
 事実だと仮定して、疑問はどの市場をターゲットとしているか?である。Chromebookのような薄型Armベースのラップトップなのか?Androidタブレットなのか?あるいはAndroidスマートフォンなのか、これにより話は変わってくる。

 記事によると、ARM製CPUコアCortex-X1/A78/A55にAMD Radeon GPU・MediaTekからライセンスされる5Gモデムを組み合わせたものだという。
 AMD製GPUのモバイルプロセッサーへの組込については、SamsungがAMDからRadeon GPUのIPをライセンスを受けて同社のExynosプロセッサーに組み込む計画がある。恐らくExynos 1000シリーズはCortex-X1/A78/A55 CPUコアとRadeon GPUを組み合わせたプロセッサーになる可能性が高い。言い換えればRyzen C7が事実だと仮定するとRyzen C7とExynos 1000シリーズとはモデム以外の主要スペックが同一になる可能性がある。

 CNXの記事では競合としてQualcomm Snapdragon 8cxの名を挙げている。つまりWindows on Armプラットフォームであるが、Windows on Armは何時消滅しても不思議ではない不安定なマーケットなので参入する意義は薄いが、この電力枠であればGoogleのChromebookで採用される可能性はある。

 Radeon C7が現実だとすると、Qualcomm Snapdragon 8cxか800シリーズと競合することになるが、AMDが勝てるとは思えない。
 Qualcomm Snapdragonをはじめモバイルプロセッサーの性能はしばしばCPUやGPUの性能で語られるが、半導体ダイの面積(≒製造コスト)ベースで見てもそれらが占める割合は5割に満たない。世代によって多少前後するがCPUが~20%・GPUが~25%といったところで、モデムやDSPの方が大きいほどである。モバイルプロセッサーにはCPU・GPUのほか画像処理ISP・動画/音声デコーダー/エンコーダー・NPUと様々なDSPが搭載されており、それらをシームレスに使い分けている。
 GSMArenaの写真の場合、Snapdragon 845のKryo 385 Goldコア(Cortex-A75)とExynos 9810のExynos M3コアとでは後者の方が3倍近くも巨大(≒ロジックが複雑≒高性能?)であるが、各種ベンチマークを見るとExynos 9810が勝っているのはCPUシングルコア性能だけで(AnandTechの記事の前半)、アプリケーション性能(AnandTechの記事の「System Performance」)ではSnapdragon 845の方が優秀であることが分かる。言い換えれば、よく話題になるCPU性能よりもGPU・DSPなどアクセラレーターを統合した性能が重要になる。

 AMDはQualcommよりも高性能なGPUを持っているし、ARMからCXCライセンスを受けることでQualcommと同等のCPUを得ることは可能だろうが、上述の通りモバイルプロセッサーはCPU+GPUで決まる世界ではなく統合させる技術が必要になる。世界で最も出荷されているDSP=Hexagonを統合的に組み合わせてきたQualcomm相手には分が悪いだろう。
 もっとも、このようなことはAMDも知っているだろうし、逆に火の無い所に煙は立たぬわけで、例えばAMDとMediaTekが共同開発したプロセッサーが出てくるなどの、何らかの新製品が企画されているのかもしれない。

FreeNASはTrueNASに統合・LinuxベースのTrueNAS SCALEが追加

Starting our next Open Source Project - TrueNAS SCALE - iX Systems

 PCベースの無償のNAS用OSでFreeNASというものがあるが、その開発元=iX Systemsのアナウンスがあり、この無償版FreeNASと有償版TrueNASのコードベース/配布OSイメージが統合されるのだという。無償版と有償版のコードベースが同じで追加機能の有無やサポートの有無で差別化されるというのはよくある話であるが、これまで無償版と有償版とでリリースのプロセス(QAテストなど)に差分があったものを統合することでエンジニアリングリソースを効率化するということだそうで、納得できる話である。これが発表されたのが3月5日のことである。
 …と、ここまでであれば特に取り上げるべくもないのだが、そのiX SystemsがTrueNASファミリーにDebian GNU/LinuxベースのTrueNAS SCALEを追加するという。要するに、FreeNASとTrueNASの統合でエンジニアリングリソースに空きを作ることで新製品を追加するという。これもよくある話であるが、過去の経緯を知っていて、Linuxベースであること、SCALEという名前からすると色々と考えさせられるものがある。

 FreeNASはLinuxベースではなくFreeBSDベースである。巷に出回っているオープンソースのファイルシステムで最もハイエンド向け機能が充実しているのがZFS(CDDLライセンス)であるが、ライセンス非互換のLinuxとは違いFreeBSDでは以前からZFSが統合されている。つまりZFSを利用できることはFreeNAS(やNexentaStor)のアドバンテージでもあるわけだが、拡張性やスケーラビリティーなどを考えた場合にLinuxの方が優れているという議論もあるだろう。その議論は約10年前2009年にもあり、当時FreeNASの主要デベロッパーのひとりだった人物が作ったのがOpenMediaVaultである。
 ちなみにCanonicalなどが取り組んでいるLinux KernelモジュールでのZFS実装=OpenZFSであるが、昨年11月にFreeBSDは現在のZFS実装からOpenZFSへの移行を発表している。つまりライセンス問題はともかく、コマンドや機能という点ではFreeBSDでもLinuxでもZFSを同様に扱える。

 ただ、2009年当時と2020年とでは「スケーラビリティー」の意味はやや違ってくる。それはクラウドの存在に起因している。
 2020年と2009年とで違うLinuxのFreeBSDに対するアドバンテージはDockerやKubernetesと使えること・クラウド(例AWS)で動くことだ。2009年に開発が始まったOpenMediaVaultはスタンドアローンのNAS・FreeNASのLinux版でしかなく、単にFreeNASよりもアプリケーションやファイルシステムや対応ハードウェアへの対応が充実している程度でしかないが、2020年現在ではDocker時代の使い方を組み込める。Debianベースという選択肢も、2009年当時であればAPTをバックエンドにできるためWeb UI経由でパッケージを追加・削除しやすいと考えられるが、2020年ではそれに加えてDockerfileの書き易さが加わる。

 もっとも、ストレージのほかデータベースでも言えることだが、格納されているデータが重要なサブシステムでホストシステムのスケーラビリティーが果たして重要か?という疑問はある。アプリケーションとは違いストレージやデータベースはコンテナー化ではスケールさせ難い。バックエンドがスケールしなければフロントエンドだけがスケールしても性能は上がらないからだ。
 ただ、例えば現在TrueNAS(やSambaベースのWindows Share)を使用している企業が、クラウドのフロントエンド=SMBサーバにTrueNAS SCALE・バックエンドにAWS S3やAWS FSxを利用することで、ユーザーから見たフロントエンドを変えずにクラウドプロバイダーのPaaSをバックエンドに変更することは可能になる。また、フロントエンド側をコンテナー化することで容易に可用性を高める(落ちたら別のコンテナーを起動する)ようにはできるだろう。

 


最近の気になった話題(2020年第21-22週)

2020-05-31 | 興味深かった話題

ARMがCortex-A78とCortex-X1を発表

Arm Unveils the Cortex-A78: When Less Is More - WikiChip Fuse
Arm Cortex-X1: The First From The Cortex-X Custom Program - WikiChip Fuse

 ARMがハイエンドのアプリケーション用CPUとしてCortex-A78とCortex-X1を発表した。

 個人的にはこれは解り難かった。
 A78より高速なX1を発表するのであればA78を「ハイエンド」と呼ぶことには語弊があるように思われるが、A78もX1もハイエンドなのは、この2種類のコアは異なるライセンスでの利用を目的としているからである。

 本題に入る前に、現在のARM IP製品の命名ルールとライセンス形態について説明したい。
 ARMはARMv7-A命令セットを実装したコアからA・R・Mの3シリーズを展開してきた。AはApplication用で相対的にパフォーマンス重視のスマートフォンなどに使われる。RはRealtime用で低遅延が求められる組込で使用されている。MはMicrocontrollerで低フットプリントの組込コントローラー/マイコン向けだ。
 この中でCortex-AシリーズはARMv7-A系32-bit製品はA5~A17の若いモデル番号が割り当てられ、ARMv8-Aが発表された際にモデル番号の割り当てが二度変更になった。まず、ARMv8-A初代のA53/A57がリリースされA50シリーズのモデル番号が割り当てられたが、それ以降はハイエンド=A70(A72~A78)・ミッドレンジ=A50(A53/A55)・ローエンド=A30(A32/A35)のように割り当てられている。ちょうどIntelのCore i7/i5/i3のような位置づけだ。これとは別にA65が発表されているが、こちらはSMT仕様で性能の特性が異なる。
 今回、Cortex-A78とX1が発表されたが、A78については明確に現行A77後継のハイエンドだと分かるのだが、この時点でX1の異質さが際立つ。

 次にライセンス形態についてだが、ASCIIで大原氏が説明されている
 2016年以前のライセンス形態では、ARMは設計済のCPUコアのライセンスと、命令セットのライセンス(Architectural Licenseと呼ばれる)を行っていた。後者にはCPUコアのデザインは含まれないため、ライセンシーが独自にCPUコアを設計・実装することになる。代表的な例がAppleだが2020年現在ほかにMarvellとHuaweiが独自にCPUコアを開発している。これら3社以外は前者のCPUコアのライセンスと考えられる。
 2016年にここに加わったのがBuilt-on-Cortex Technologyライセンスで、二種類のライセンスの中間的なライセンスである。つまりARMが設計したCortex CPUコアを基にライセンシーが様々なカスタマイズを加えることができる。このライセンシーの代表例がQualcommである。QualcommはSnapdragon 820まではAppleと同じArchitechtualライセンスで独自CPUコアを開発していたが、Snapdragon 835からBuilt on Cortex Technologyに切り替えている。

 今回発表されたCortex-X1はBuilt-on-Cortex Technologyライセンスを発展させた新しいCortex-X Custom(CXC)ライセンス向けのコアだとされている。そのCXCライセンスはBuilt-on-Cortex Technologyのカスタマイズの自由度を増やしたライセンスなのだという。

 個人的には、なぜBuilt-on-Cortex Technologyライセンスに似たCXCライセンスで別途CPUコアが必要なのか?(なぜCortex-A78はCXCに対応しないのか?)という点がよく解らないのだが、需要があることは理解できる。

 例えばSnapdragon 820がハイエンドに位置づけられていた2016年、現在よりも多くの企業がArchitectual Licenseに基づきコアを実装していた。Apple・Qualcomm・NVIDIA・AMD・Broadcom・Cavium(後にMarvellが買収)・AppliedMicro(後にMacomが買収。独自設計CPUコアはAmpereに売却)・Samsung・Huawei(スマートフォン向けではなくサーバー用)がそうで計10社もある。これが撤退や企業間の売買など紆余曲折があって僅か4年後の現在ではApple・Marvell・Huaweiの僅か3社しか残っていない。
 これはARMがライセンスする純正コアの性能が高く独自開発しても差別化が難しくなったせいだろう。実際、昨年でいえばQualcomm Snapdragon 855とSamsung Exynos 9820がAndroidスマートフォンのハイエンドとして採用されていたが、SamsungがArchitectual Licenseに基づき独自設計したExynos M4コア搭載のExynos 9820に対しSnapdragon 855のCPUコアはCortex-A76のBuilt-on-Cortex Technologyカスタマイズ版であるが、市場での評価はSnapdragon 855の方が上だった。

 給料の高いエンジニアを集めて設計部門を組織し、一般に約4年間ともいわれる長い歳月を費やしリスクをとって開発した独自実装のCPUが、ARM純正のCPUコアと同等で差別化要因とならないのでは費用対効果が悪い。

 つまり、一般的なARM純正CPUコアと差別化を図りたければゼロから新規設計するのではなくBuilt-on-Cortex Technologyライセンスでカスタマイズした方が省コスト・低リスクと考えられる。
 ライセンスする側のARMからすれば、Built-on-Cortex Technologyライセンス/CXCライセンスの顧客は、少し高額のライセンス料を払ってでも差別化を図っているのだから、CXC専用のコアやカスタマイズの自由度向上をした方がライセンシーに喜ばれる(≒より儲けられる)と考えられる。

 ところで、ARM Cortex-X1については、WikiChip Fuseの解説記事を御一読いただきたいが、インフライトで実行できるアウトオブオーダーの命令数が増えているなど、リソースが増強されAMD Ryzen "Zen 2"に近いスペックを持っている(SIMD演算だけは1/2であるが)。
 2014年にAppleのカスタムCPUコア"Twister"が発表された際に動作周波数あたりの性能がIntel Coreシリーズに匹敵することが一部で話題となったが、Cortex-X1はそのクラスの性能が期待できる。もっともARMアーキテクチャーはx86-64アーキテクチャーと比較しコンパイラーレベルの最適化で劣勢と言われているのでベンチマーク記事が楽しみである。
 ちなみに、2016年のApple独自の高性能コア"Hurricane"の場合、当時のARM純正の高性能コアCortex-A72と比べ、性能は約2倍だったが半導体面積(≒製造コスト)は約2.5倍を超えた。ARMはA75以来、効率重視から性能重視へ方向転換してきているのでX1の半導体面積も気になるところである。

 一方のCortex-A78についてはあまり見るべき部分が少ない。
 前世代A77と比べ、電力あたりのパフォーマンスが向上しているようだが改善の内容はおとなしい。(1) キャッシュの構成の変更 (2) 4基ある整数演算ユニットのうち1基のみ除算・積和算に対応・残り3基は和算・論理演算のみのシンプルな演算ユニットだったものを1基に積算に対応させたことと (3) ロード/ストアユニットのアドレス生成ユニットをロード/ストア両対応の2基からロード2基・ストア1基に強化したことの主に3点である。

 


今週の気になった話題(2020年第20週)

2020-05-17 | 興味深かった話題

NVIDIAがAmpere世代Tesla A100を発表

NVIDIAが“Ampereアーキテクチャ”のモンスター級GPU「A100」を発表 - PC Watch

 率直に感想を述べれば、これは本当にGPUなのだろうか?と思った。
 もちろんGPUとはGraphic Processing Unitの略であるが、いくらGPUがGraphics以外の用途でも使われるようになって久しく、またNVIDIAがディープラーニング(DNN)に注力して10年ほど経つとはいえ、DNNとGraphicsの主従が入れ替わっているように思えるし、何よりDNN用プロセッサー(いわゆるNPU)とGraphics用プロセッサー(GPU)とが無理に1チップに同居する必要性も分からない。

 このことは単に不可解なだけでなく、過去のNVIDIAの方針からも矛盾しているように見える。
 A100の前世代はV100だが、V100ベースのHGX-2発表の際NVIDIA CEO Jensen Huang氏はCPUとGPUという異なるプロセッサーを統合するというアイデアを否定して語っている(以下PC Watch記事より引用)「こちら(Volta GV100ベースのHGX-2)は、統合を嫌う。理由は、異なるコンフィギュレーションが必要になるからだ。あるときは1個のCPUと1個のGPU、別なケースでは1個のCPUと8個のGPUといった具合だ。塩と胡椒の組み合わせを考えてみよう。料理はそれぞれ異なる塩と胡椒の加減が必要となる。塩胡椒が一緒になっていると、使い勝手が制限されてしまう。それと同じで、CPUとGPUも1種類のコンフィギュレーションでは制約されてしまう」。
 つまり、V100の時点でのHuang氏の主張を採用するならば、ワークロードの比率が異なる異種プロセッサーを統合すると使い勝手が制約されてしまう。

 もっとも消費者向け=ゲーミングGPUであればDNNとGPUが共存するのはまだ理解しやすい。
 例えば従来のGPUのワークロードではベクタ演算性能が重要だが、画面出力する前にTensor演算で画像を加工することでよりユーザー視点で美しい描画が可能になるだろう。これは写真をTensor演算で加工するのと同じアイデアだ。また、そもそも消費者は予算や設置場所の都合から何個もプロセッサーを揃えられないから安価に統合されていることには意義がある。

 しかし、それが大学や国立研究所クラスの科学演算でも同じというわけではなかろう。
 日本で科学演算と言えば例えば気象・海洋シミュレーションがあるし、米国では核爆弾のシミュレーションがある。これらのシミュレーションでGPUが処理するFP64ベクトル/SIMD演算とDNNプロセッサーが処理するマトリックス/Tensor演算が同一コード中で共存するだろうか。
 例えば気象や海流や核爆弾のシミュレーションする場合では流体や熱力学のシミュレーションのため膨大なFP64ベクトル演算が必要になることだろう。また、気象予報をする際に過去の気象データを学習し推論するTensor演算も必要だろう。しかしそれらは分割されている用に見え、同じマシンや同じプロセッサーで実行する必然性があるようには思えない。

 個人でも国立研究所でもないユーザー、例えばGAFAのようなハイパースケーラーや、ハイパースケーラーの提供するクラウドサービスを利用する場合はさらに同一プロセッサーである必要性が無い。
 そもそも、クラウドサービス事業者・ハイパースケーラーはグラフィックス/科学演算用とDNN用というレベルではなく、DNN用ですら学習用と推論用で2種類のプロセッサーに分かれている。例えば昨年Intelが買収したNevanaHabana Labsの場合では学習用=Gaudiと推論用=Goyaとに別れており、両者のアーキテクチャーは似通ってはいるものの、扱えるデータ型・ホストやピアとのインターフェース・メモリー帯域が異なっている(IntelのNervanaはFacebookが採用していると見られている)。
 これは、学習と推論とでは求められる性能やデータフローが異なるし、これらのプロセッサーを採用するユーザーは学習用と推論用とで個別のマシンを揃えられる規模と予算があるので、恐らくその判断は正しい。

 ここで気になるのは、米エネルギー省が2021~23年頃に設置される3台のExascale HPCにNVIDIAを採用しなかった点である。1システム(ANL Aurora)はIntel CPU + Intel GPU、他の2システム(ORNL Frontier、LLNL El Captain)はAMD CPU + AMD GPUという構成である。NVIDIA GPUが採用されたのはPre-Exascale世代のLBNL Perlmutterだけだ。

TSMCが米アリゾナ州に5nm半導体工場の建設計画を発表

TSMC to build a 5-nanometer Fab in Arizona; Invest $12B over the next 8 years - Wikichip Fuse

 トランプ政権の要請に応えたものとして報道されているが、それだけではなかろう。

 この20年間ほどの間にTSMCを取り巻く環境は大きく変わっただろうと思う。
 2000年頃の時点ではIntelだけでなくAMDやIBMも自社工場を保有しており、TSMCやUMCのようなファウンダリーはSOIなど高価な素材を使わず最適化されていない、二番手のような扱いだった。もし当時、米国が軍事や宇宙開発向けに半導体を起こすとすればIntelやIBMやFreescaleが開発・製造していたことだろう。
 しかし、この20年間でTSMCを取り巻く環境は大きく変貌した。まず、Intel・TSMC・Samsungを除く半導体企業(ロジック)は10nm世代までに工場を閉鎖するか売却するなどして最先端プロセスの開発を止めてしまい、Freescaleは蘭NXPが買収・IBMは工場を売却したうえ組込プロセッサーを止めてしまった。例えば米空軍F-35の初期ロットではミッションコンピューターのプロセッサーFreescale MPC7448にセンサー処理にXilinx FPGAを使っていると言われるが、いずれも米国では製造されていない(MPC7448は恐らくGlobalFoundriesがドイツで製造・Xilinx FPGAはTSMCが製造)。さらにIntelも最先端プロセスの開発に失敗した結果TSMCは世界最高の半導体製造企業に躍り出た。例えば、NASAとBoeingは宇宙開発用の次世代プロセッサーHPSCを開発中だがBoeingは半導体工場など持っていないからIntelかTSMCあたりに委託することになるだろう。

 そういった環境の変化を踏まえ、TSMCが米国に工場を置くことはその点で双方にとってメリットがあるのではと思う。米国政府・企業にとっては米国製半導体を採用することができ、台湾・中国間の問題から遠ざけることもできる。また、TSMCとしても顧客には多くの米国企業(Apple・Qualcomm・Broadcom・AMDなど)が含まれるから、米政府の判断や関税などのリスクを排除し易いだろう。


最近の興味深かった話題(2020年第18-19週)

2020-05-09 | 興味深かった話題

※COVID-19の影響か、目ぼしい話題が少ないため複数週でまとめています。

Mellanoxを買収完了したNVIDIAが今度はCumulusを買収

NVIDIA acquires Cumulus Networks - ServeTheHome

 NVIDIAがCumulusの買収を発表したらしい。先日のMellanox買収完了と関連付けて報じるメディアが多い。
 もっとも、NVIDIA+Cumulusのシナジーは見え難いと思う。NVIDIA+Mellanoxはシナジーがあるし、Mellanox+Cumulusもシナジーは解り易いが、MellanoxならともかくNVIDIAがCumulusを買収するメリットはあまりよく分からない(後述)。

 まず、NVIDIA+Mellanoxのシナジーであるが、NVIDIAは科学演算/機械学習用にTeslaを持っているが複数GPUで分散処理を行うことがある。これらのアプリケーションでは演算量も演算対象のデータ量も膨大になるため、GPU-GPU間で直接データをやり取りしたりGPUで直接ジョブのやり取りをできた方が遅延を小さくでき、総合的な性能を高くできる。そのためMellanoxはGPUDirectと呼ばれるRDMA技術を実装しており、NVIDIAがMellanoxを傘下に収めることは理に適っている。
 次にMellanox+Cumulusのシナジーであるが、Cumulusはベアメタルスイッチ用Linux環境のリーダーとして知られている。OpenCompute標準のONIEは元はCumulusの製品で、今日では多くのクラウド ハイパースケーラーで採用されている。例えばFacebookのMinipackはFacebookとCumulusの共同開発(装置はEdgeCore・Celestica・Arista)している。MinipackではBroadcom Tomahawk III+Cumulus Linuxの構成であるがMellanoxとCumulusが組むことでハイパースケーラーとの共同開発がし易くなる可能性がある。

 このようにNVIDIA+MellanoxやMellanox+Cumulusのシナジーは解り易いが、一方でNVIDIA+CumulusやNVIDIA+Mellanox+Cumulusによるシナジーは見え難い。
 NVIDIAがGPUを使った科学演算/機械学習を効率化するためにGPU-GPU間のネットワーク(GPU-NIC-Switch-NIC-GPU)を最適化しようとするのは解るが、それだけならMellanoxだけで充分な可能性がある。MellanoxはConnect-Xシリーズ ネットワークアダプター・Spectrumシリーズ スイッチチップ・ONIE対応のSNシリーズ ボックススイッチ・さらにはONIE対応スイッチOS Onyxまで開発・販売しているため全てGPU-GPU間をすべてMellanoxで網羅することが可能でCumulusが絶対に必要とも思えない。

 このように考えると、NVIDIA-Cumulusのシナジーとは単純なネットワーク接続のことではなく、NVIDIAはFacebook MinipackやCray Slingshotに近いことをしようとしているようにも思える。
 例えば、Facebook Minipackの場合、独自にF16ネットワークトポロジーとHGRIDアグリゲーションを開発しているが、Facebookの記事によるとスイッチチップ=Broadcom Tomahawk IIIを一般的な400GbE x 128 ports x 4 planesとしてではなく100GbE x 128 ports x 16 planesとして使っているという。こういったスイッチチップの機能はスイッチチップベンダーの設計次第だが、その機能を使ったスイッチはスイッチベンダーとスイッチOSベンダーの対応が必要になる。
 あるいは、例えばCray Slingshotの場合、スイッチチップはこちらもBroadcom Tomahawk III(CrayはBroadcomと共同開発したRosettaと呼んでいる)だが、HPCに最適化してLayer 2ヘッダーを除去したり最小フレームサイズを変更したりと通常のEthernetから手を加えたプロプライエタリーなHPC Ethernetプロトコルを採用している。この場合もスイッチチップとスイッチを制御するOS側の両方の対応が必要になる。

Huawei/HiSiliconが中国企業として初めて半導体トップ10入り

中国勢初のトップ10入りを果たしたHiSilicon - マイナビ

 米IC Insightsの調査によると2020年第1四半期の半導体売上高でHuawei半導体子会社=HiSiliconが中国企業として初めてトップ10入りを果たしたそうだ。

 この報道は個人的には驚いている。理由は採用ベンダーの数である。
 例えば、PCやスマートフォンを持っているとする。それがDell製PCであれSony製スマートフォンであれ米国ベンダー製マイクロプロセッサーと米国または韓国ベンダー製メモリーがほぼ確実に入っている。業界は水平分業であるが、ビッグプレイヤーは限定されていてマイクロプロセッサーであればPCで米Intel/米AMD(製造は台TSMC)・スマートフォンで米Qualcomm/台MediaTek(いずれも製造はほぼ台TSMC。一部Samsung)、メモリーやSSDであれば韓Samsung/韓SK Hynix/米Micronがほぼ独占しており、Sony製スマートフォンだろうがOnePlus製スマートフォンだろうが多くの場合で違いはない。
 唯一の例外は垂直統合型ベンダーの場合で、Apple iPhoneであればApple製プロセッサー、Samsung Galaxyであれば一部モデルでSamsung製プロセッサーを採用している。しかし、IntelやQualcommは数百~数千という企業に出荷され数万という製品に採用されるのに対し、Apple/Samsungのような垂直統合型の製品を搭載している企業は各1社・機種も限定的だから、これによって半導体売上ランキングに大きな影響があるとは思えない。

 つまり、半導体売上という観点では水平分業型の専業の半導体ベンダーが優利だ。実際、今年のトップ10のうち9社と、記事中にもある昨年のトップ10で脱落したKioxia(東芝メモリー)もInfineonも専業半導体ベンダーである。

 ここで驚くべきは、HiSilicon製品は垂直統合型の半導体ベンダーで、ほぼHuawei製品にしか採用されていない(記事中では9割がHuawei向け)にも関わらずトップ10入りしている点であろう。
 HiSiliconはスマートフォン用マイクロプロセッサーとしてKirinシリーズ、サーバー用マイクロプロセッサーとしてKunpengシリーズを展開しているが、いずれもHuawei製Mate/HonorスマートフォンやHuawei製TaiShanサーバーにしか採用されていない。
 むしろ個人的に気になるのはHuawei以外の製品に採用されている残り1割で、想像するに中国の国・軍関係の組込製品向けではないかと思うのだがデータが無いのでよく分からない。


最近の興味深かった話題(2020年第14-17週)

2020-04-25 | 興味深かった話題

 このところ企業活動の停滞のせいか、興味深い内容が少ない上に、個人的にやらなければならない作業が滞っていたため、第14週~第17週分を纏めたいと思う。

第15週:CXLとGen-Zが提携

CXL and Gen-Z Lay Borders with a Formal MOU We Talk Impact - ServeTheHome

 CPUとのキャッシュコヒーレンシーをとれるアクセラレーター接続規格はCCIX・OpenCAPI・Gen-Z・CXLと乱立しており、いずれも利点・欠点があるが、その中でCXLとGen-Zが提携し棲み分けるという。

 これら4規格を各々推進するコンソーシアムは類似した目的を掲げているため、一見すると類似した規格が乱立していると錯覚してしまうが、これらの中で最もユニークなのはGen-Zである。なにせ他の規格が単一ノード内や同一ラック内のシャシー間での接続を掲げるのに対し、Gen-Zだけはノードを跨いだ接続を可能とし、クラスターサーバー構成でメモリープールを構成可能にしているからである。
 そのため、私のような部外者から見れば4種類の規格のうち生き残るのは「Gen-Zとどれか」だと思っていた。

 このノードを跨いだ接続の実現・メモリープールの実現というGen-Zの特徴は、発起人の1社がHP Enterpriseであることを考えれば当然かもしれない。同社は試作ではあるが「The Machine」と呼ばれるMemory Driven Computingコンセプトを発表しているし、それに近い思想で48TBもの大容量メモリーを扱えるSuperdome Flexを製品化している。製品化の予定がそもそも無い「The Machine」はコンセプトとしては面白いし(参考)、Superdome Flexは既存製品としてはそれに近いが、依然としてギャップは大きい。

 実際、Superdome Flexの48TBというメモリー搭載量は大容量に聞こえるが、4ソケット構成のIntel Xeon Goldプロセッサー(各64GBのDDR4メモリー6ch・12スロット。これを4ソケットで計3TB/ノード)を16ノード(計48TB)を完全結合で接続したものに過ぎない。
 ネットワークは独自だが最大16ノードでメモリープール専用のノードがあるわけでも、そのような構成を想定したプロセッサーを使っているわけでもないのでスケーラビリティーは高くなく、しかもXeon Goldしか選択肢が無いので非常に高価だ(1ソケットあたり$ 1,221.00~)。
 ちなみに、既存製品に囚われず独自設計した「The Machine」では2017年時点で160TBのメモリープールを実現している。計算ノードとは別のメモリープール専用ノードとメモリープールに対応したファブリックの実現がなければ不可能だろう。

 「The Machine」とSuperdome Flexのギャップは広いが、Gen-Zが実現すればこのギャップは小さくなる。

 このように、Gen-Zにはユニークな機能と市場が存在するが、それ以外の3規格は似たり寄ったりだ。
 個人的にはCXLには懐疑的だ。CCIXと違いキャッシュコヒーレンシーはCPU→アクセラレーター方向のみで、GPUなどのキャッシュをCPUがスヌープするようにはできていない。これはCXLを規格化したのがIntelと考えれば納得だが(※CXL 1.0はIntelがコンソーシアム設立前に独自に規格化完了している)、これにAMDが同意したとすれば意外だ。

第16週:AMD Zen4はTSMC Enhanced 5nmプロセスを採用か

AMD Zen 4 Powered Ryzen & Epyc CPUs Get Exclusive ‘Enhanced 5nm Node’ From TSMC - WCCF Tech

 TSMCがAMD向けに特殊なプロセスノードを作るという。
 このウワサの真偽は不明だが、真実だと仮定するとAMDは現行製品でいうCCD + IODのチップレットデザインを継続しCCDで5nmを採用することになるだろう。

 AMDに限らず、今日のチップデザインはIPベンダー(Synopsys・Cadence・Mentorなど)からのライセンスに強く依存しており、例えばZen 4では恐らくAMDを含む多くの企業がCadenceのDDR5 PHYを採用すると言われている。ちなみにZen/Zen+/Zen2のDDR4 PHYはSynopsysのIPだった。ロジックの設計は、ある程度プロセスに依存しない形(例:RTL)で合成できるようになっているがPHYはプロセスに強く依存する。
 実際、PHYがIPベンダーに依存することがZen 2世代でもAPU "Renoir"がディスクリートCPU "Matisse" や "Rome" より遅れる原因のひとつと言われている。単体CPUではI/OはIODに統合されるが、IODは12nmプロセスで製造されておりIPベンダーのPHYも出揃っている。これに対し7nmプロセスで高い電圧に耐えるPHYは開発が遅れる傾向があり自社開発するかIPベンダー待ちとなる。

 先端プロセスではロジックを実装できても高い電圧で高速動作するPHYが足枷になる。
 カスタムプロセスを採用するとIPベンダーからのライセンスを受けられない可能性がある(何がカスタムなのかにもよるだろうが)。つまり、もしカスタム5nmプロセスを使うとCCD + IOD構成では問題が無いが、APUを開発する際にPHYで困る可能性がある。

第17週:MIPSは滅びるのか

Wave Computing and MIPS Wave Goodbye - SemiWiki
Wave Computing Set to File Chapter 11, With MIPS the Likely Winner - EETimes

 MIPSを保有する企業として知られるベンチャーWave Computingがチャプター11破産申請を準備中だそうだ。2012~17年の間、MIPSは英Imaginationの傘下だったが、同社はAppleとの提携解消により経営状況が急速に悪化し、MIPSも資産整理の一環として中国資本の米国ベンチャーキャピタルTallwoodに売却された。Waveは同じくTallwood傘下のベンチャーで、2018年に同社CEOの希望によりWaveに買収された。

 Waveについては昨年半ばから良くないウワサが多かった。
 8月のHot Chipsや9月のAI Hardware Summitでの発表がキャンセルされた一方で、真偽不明ながら従業員の半数をレイオフするウワサや、MIPSの従業員の大部分が辞めたというウワサも聞こえた(Hisa Ando氏の関連記事1関連記事2)。さらに9月には当時のCEOが辞任している。

 このため、Waveのチャプター11申請は驚くことではないのだが、SemiWikiとEETimesではMIPSに関する論調に違いがある。SemiWikiは「WaveとMIPSにさよなら」と表現しているのに対しEETimesは「MIPSは事業を継続する」と言っている。ただ、個人的にはどちらが正解とも言えない気がしてならない。
 理屈の上ではEETimesの主張は正しい。MIPSはWaveに吸収されたわけではなく独立した子会社であり、MIPSの顧客企業(Intel傘下のMobilEyeやMediaTekなど)はMIPSコアのライセンス契約をWaveとではなくMIPSと締結している。つまりMIPSには一定の収入があり事業を継続できる。
 しかし、その一方でMIPS自身も過去15年間で疲弊している。日本語版Wikipediaによると2008年に500人以上いた従業員が2010年で約150人にまで減少しているという(そして恐らく昨年から今年の間にさらに大幅に減少している)。また、MIPSはImaginationに買収される前の2012年で580件の特許を持っていたがMIPS社と共にImaginationが買収したのは82件に過ぎず、残りの498件はARMを中心としたメンバーによりAllied Security Trust(AST)に移管されている。これでMIPSの事業が以前の通りに継続できるかは疑わしく思える。

第17週:富士通がJAXAのHPCを受注

富士通、JAXAの新スパコン製造へ 「富岳」の技術活用 - ITMedia

 PRIMEHPC FX1000とあるので理研「富岳」と同じTofu-Dインターコネクト採用モデルである。
 A64FXベースのシステムとしては「富岳」への採用だけでなく、Crayとの提携により英気象庁・米Oak Ridge国立研究所・Los Alamos国立研究所・米Stony Brook大・英Bristol大での採用が決まるなど順風満帆にも見えるが、個人的には富士通がArmでどこまでしたいか疑問だ。

 富士通が理研と開発した「京」は富士通のUNIXサーバー用SPARC64プロセッサーを基に開発された。
 「京」で採用されたのはSPARC64 VIIIfxだが、富士通が1995年にSPARC64シリーズを始めてから第8世代で2017年までに第12世代が発表されており、うちVIII・IX・XIがHPC用・それ以外がUNIXサーバー用である。言い換えれば同社とOracleのUNIXエコシステムの恩恵を受けて開発されたことになる。
 これは今日の中国を除く多くのHPC用プロセッサーと同じである。IBM BlueGene/QあたりまではHPC専用CPUなども見られたが、それ以降はIntel XeonやIBM POWERやNVIDIA Teslaといった、民生品のPCサーバーやUNIXサーバーで採用されているCPU・GPUや派生させた部品で構成されている。HPCとPCサーバー・UNIXサーバーの市場規模を考えれば、巨大なPCサーバー・UNIXサーバーのエコシステムにHPCを組み込むことは自然に思える。

 ところが、富士通がこれまでSPARC64プロセッサーを開発してきたUNIXサーバー(Solaris)はもう終焉という感がある。
 少なくともOracleはSolarisのロードマップを2018年から更新しておらず、最新Solaris 11.4以降の予定は同バージョンが2034年までサポートされること以外は発表されていない。そして、Linuxを使うのであればSPARCに勝機は無い。実際、OracleもExadataなど同社製アプライアンスではIntel XeonにOracle Linux(Red Hat Enterprise Linuxクローン)の組み合わせである。ちなみにOracleはOracle Linux 7まではIntel64とSPARC64をサポートしていたがOracle Linux 8からはIntel64とARM64のサポートへと移行した。

 つまり、富士通は「京」の時とは違い、エコシステムを継続できない可能性がある。
 富士通が2016年に理研とのHPC用にA64FXを発表した際、同社はSPRACサーバーの開発継続を表明したし、同社は同一技術をSPARC64とメインフレーム用GSプロセッサーに派生させてきた実績があるので、技術的にはGS・SPARC64・A64を並列して継続することは可能なのかもしれないが、そもそもSPARC64/UNIXサーバーは市場が消滅しつつあるので、技術以前に製品を継続できない可能性が高い。

 もしUNIXサーバーを継続できないとすれば富士通は、それ以外の買い手を探す必要がある。

 富士通以外のArmプロセッサーベンダーはクラウドをターゲットにしている。クラウドであればアーキテクチャーの縛りから比較的自由であるし、また、Microsoft AzureなりGoogle Cloudなりのハイパースケーラー(※AWSは傘下AnnapurnaLabs製Gravitonがあるため必要ない)に採用されれば一括で数万個の需要が期待できる。ただし、その小さいパイをMarvell・Ampareと取り合うのだから、こちらも楽ではない。


今週の興味深かった話題(2020年第13週)

2020-03-29 | 興味深かった話題

初のExaFLOPS超えはFolding@Home

新型コロナ解析で分散処理プロジェクト「Folding@home」が1EFLOPS超え - PC Watch

 COVID-19関連で、参加者が急増したFolding@Homeが世界で初めてExaFLOPSを達成したそうだ。
 多くのHPC技術者やウォッチャーが考えていた、最初のExaFLOPSコンピューターは米エネルギー省/Intel/Crayが建造予定のAuroraだろうと思っていたわけだが、思わぬ伏兵が現れた。

 Folding@Homeに代表される、一般人参加型のグリッドコンピューティングが注目を集めたのは1999年に地球外生命探査を支援するSETI@Home以降である。当時はCPUやGPUに省電力機能も搭載されておらず性能の90%以上を浪費しているといわれていた。
 例えば多くの人々は仕事でPCを使うわけだが、例えばExcelを使う場合も数値を入力したり・その計算結果が出たりするのに必要なパフォーマンスを考えてみても、CPUの10%も使用していないことは容易に想像できる。最近のCPUであればSpeedStepなどの省電力機能で動作周波数と駆動電圧を下げるのでさほど問題ではないが、Intel SpeedStepが発表されたのは2005年のことである。それまでの間はCPUパフォーマンスが文字通り浪費されていたことになる。この浪費されていたパフォーマンスを使ってプロジェクトに貢献しようというのがSETI@Home・BOINC@Home・Folding@Homeなどのプロジェクトである。

 ちなみに、グリッドコンピューティングの先駆けとなったSETI@Homeは3月末で休止されることが発表されている。


今週の興味深かった話題(2020年第12週)

2020-03-21 | 興味深かった話題

Sony PlayStation 5とMicrosoft Xbox Series Xの仕様概要が公開

Inside PlayStation 5: the specs and the tech that deliver Sony's next-gen vision - Eurogamer
Inside Xbox Series X: the full specs - Eurogamer

 仕様が公式で発表されたが、概ねウワサ通りの内容だったと言えるだろう。もっとも、開発者向けには1年以上前から開発キットが配布され採用される機能が説明されるから、漏れ伝えられることは不思議ではない。

  • AMD Zen 2 8コア CPU
  • AMDの次世代RDNA GPUでレイトレーシング対応
  • GPUは概ね40 CU。Xboxの方が性能がやや上

 ざっくりとしたスペックはウワサ通りだったとはいえ、蓋を開けてみると随分と違う印象がある。
 Sony(SEI)の方はゲーミングPCのような素直なアーキテクチャで概ね予想通りだが、Microsoftの方はCPUのSMTの有効/無効で動作周波数が切り替わったりメモリーコントローラーに二種類のモードがあったりとカスタマイズに手が込んでいる。これは前世代PlayStation 4・XBox Oneの時もそうで、Microsoftの方はeSRAMがあったりとPCのx86-64アーキテクチャーベースは共通ながら手が込んでいた。
 もっとも、ゲームコンソール向けのカスタマイズはメリット・デメリットがあるのでカスタマイズした方が優利とも限らない。理論上の性能では優位に立てるかもしれないがゲームデベロッパーが対応してくれるとも限らず、そもそも近年のゲームソフトは複数プラットフォームへの対応が当然なので、特定のプラットフォーム向けのチューニングが行われるかは怪しい。極端に言えば、もしデベロッパーがPlayStation 5とXBox Series X向けにほぼ同一仕様でゲームを出すとしたら、Microsoftの手の込んだトリックも、少し割高なコストも無駄になってしまう可能性がある。

 特に興味深いのはメモリーである。
 前世代がGDDR5 8 GB前後だったため、今回のGDDR6 16 GBの採用は順当である。また、ハイエンドゲーミングPC用GPUのメモリーインターフェース幅が256~384-bit前後であることからも、PlayStation 5の256-bit幅やXBox Series Xの320-bit幅というのも順当と言える。
 このような仕様の場合、通常はPlayStation 5のような実装になる。GDDR6チップは16-bitまたは32-bit幅のため8チップ構成(32-bit x 8 = 256-bit)となり動作周波数に比例した帯域が得られる。つまり256-bit x 1750 MHz x 4 (QDR) x 2 (WCK) = 448 GB/sとなり、PlayStation 5の仕様と辻褄が合う。

 ところがXBox Series X は違う。
 そもそも容量16 GBに対しインターフェース幅が320-bit(10チップ構成)で、単純計算すれば1チップあたり1.6 GB/12.8-Gbitなどという市場に存在しない代物ということになってしまう。また、16GBを単純に10GBと6GBに分割しても帯域560 GB/sの10GBモード(GPU optimal memory)と帯域336 GB/sの6GBモード(standard memory)の辻褄が合わない。
 しかし、よくよく考えてみればこの実装は単純で、10個・16 GBのメモリーは6個の2GBメモリーと4個の1GBメモリーで構成されていると推測できる。つまり、2 GBメモリーチップは10GBモードの1 GBメモリーと6GBモードの1 GBメモリーに分割して使用される。10個のメモリー(計320-bit幅)に並列でアクセスする場合と6個のメモリー(計192-bit幅)にアクセスする場合とでモードを区別している。この場合、メモリー自体は同じPlayStation 5と同じ1750 MHzで320-bit x 1750 MHz x 4 (QDR) x 2 (WCK) = 560 GB/sと192-bit x 1750 MHz x 4 (QDR) x 2 (WCK) = 336 GB/sとなり辻褄が合う。

  PlayStation 5 PlayStation 4 Pro XBox Series X XBox One X
Standard GDDR6 GDDR5 GDDR6 GDDR5
Capacity 16 GB 16 GB 13.5 GB (Game)
2.5 GB (System)
12 GB
I/F width 256-bit 256-bit 320-bit (10GB mode)
192-bit (6GB mode)
384-bit
Frequency 1750 MHz 1700 MHz 1750 MHz 1700 MHz
Bandwidth 448 GB/s 217.6 GB/s 560 GB/s (10GB mode)
336 GB/s (6GB mode)
326 GB/sec

MarvellがThunderX3を発表

Marvell ThunderX3 Arm Server CPU with 768 Threads Per Node in 2020 - ServeTheHome

 先日Ampere ComputingがAltraを発表したところだが、今度はMarvell(旧Cavium)がThunderX3を発表した。

 パイプライン構成などThunderX2からの変更点の詳細は明らかになっていないが、最大96コア/768スレッドという数字は圧巻である。
 ThunderX2のVulcanコアはもともとBroadcomが開発しCaviumに売却したものであるが、元を辿ればBroadcomが2012年に買収したNetLogicが2008年に買収したRaza Microelectronics(RMI)の開発したMIPS64ベースのネットワークプロセッサーXLRファミリーに行き着く。RMIのMIPS64プロセッサーはXLRXLSXLP・XLP IIと展開された後(XLP IIは現在でもBroadcom製品として掲載されている)、命令セットをMIPS64からARMv8-Aに変更したものがVulcanである。

 Vulcanの特徴は高性能でSMT4実行のコアであるが、この特徴はXLR時代から踏襲している。MIPS64ベースのネットワークプロセッサーからARMv8-Aベースのサーバー用プロセッサーへの変更というのはRMIとCaviumとで共通しているが、Caviumは低性能・省コストのコアを多数並列動作させることでスレッド数を稼いだのに対し、RMIが高性能なコアでSMT4でスレッド数を稼いだ点が異なっており、2008年頃の時点で両社とも最大で64スレッドを達成した。
 これらの特徴の違いはARMv8-Aプロセッサーにもそのまま受け継がれたが、ネットワークプロセッサーとしてどちらが優れているかは一長一短あるものの、サーバー用プロセッサーとしてはRMIの方針の方が優位だったのだろう。結果的に、Caviumは自社開発のThunderXからBroadcomから買収したVulcanに乗り換える形となった。

 ThunderX3でVulcanからTritonへの変更点の詳細が不明なためAmpere AltraとMarvall ThunderX3の比較はできないが、前世代ThunderX2のVulcanコアとAltraのNeoverse N1(Cortex-A76)コアとを比較すると、恐らくシングルスレッド性能はNeoverse N1の方が若干高性能と考えられる。また、Vulcanの場合は僅か6本の実行ポートをSMT4でシェアするわけだからポート競合は避けられず、複数スレッドが動作している環境ではシングルスレッド性能はさらに低下することだろう。代わりにマルチスレッド性能は高いはずである。結果、高いシングルスレッド性能が求められる、例えばデータベースなどではAltra、高いマルチスレッド性能が活かせるWebサーバーやネットワーク機器ではThunderX3の方が優位と想像できる。
 もっとも、もしThunderX3でSMTの有効/無効を切り替えられるのであればシングルスレッド性能でほぼ互角・マルチスレッド性能でThunderX3優利ということも考えられなくもないが。

  Neoverse N1 (Cortex-A76) ThunderX 2 "Vulcan"
L1 Instruction Cache 64 KB 32 KB
Multi-Threads N/A (1) 4
Decode (OPs/cycle) 4 4
Issue (OPs/cycle) 8 6
Reorder Buffer 128 180
Exec Ports 8 6
ALU (Simple) 2 1 (shared)
ALU (Complex) 1 2
FPU / SIMD 2
Branch 1 (shared) 1 (shared)
Load 2 2
Store Address
Store Data 1
Load Buffer 68 64
Store Buffer 72 36
L1 Data Cache 64 KB 32 KB