ALH84001

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

今週の興味深かった記事(2019年 第26週)

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

Raspberry Pi 4

別途記事を書いたので、そちらを参照されたい。

GPD P2 Max

GPDが考える真のUltrabook「P2 Max」正式発表

 2002年頃に富士通のTransmeta Crusoe搭載機を使っていた身としては、iPadのサイズでCore m3・Celeron YシリーズとCoreマイクロアーキテクチャー系プロセッサーが載って$700というのは感慨深いものがあり非常に無力的に見える。

 もっとも、私の使い方では使い道を見出せないので個人的には見送ることにした。
 私事で恐縮だが、私はメインに12インチ・1kgクラスのモバイルラップトップThinkPad X220(Sandy Bridgeベースの7年物。近々買い替え予定)、それより軽量のモバイルとしては8.9インチと8インチのAndroidタブレットを使用している。両社の棲み分けは明確で、前者は自宅のテーブルに据え置かれ何かを作る場合に使用し・後者は自宅内/旅先で持ち歩く閲覧専用端末となっている。
 ここに9インチクラスのWindows機を導入する場合、OSとアプリのUIが9インチクラスに最適化されたiPadならともかくWindowsで何かを生産するのは難しく、閲覧だけならAndroid機の方が狭い画面での使い勝手がよく軽量で適している。また、Celeron搭載版/Core m3搭載版がそれぞれ$525/$700と決して手軽に買って失敗できる価格ではないから、私の場合はメインのラップトップの買い替え方に予算を回した方が建設的に思える。

 個人的に懐疑的なのはWindowsのOSやアプリケーションのUIが9インチクラスでの使い勝手である。これはユーザー個人の視力や手の大きさなどに依存するから私が判断することではないが、どうしても中途半端になってしまうと思う。

PC Watch後藤氏によるZEN2解説記事

AMD Zen 2の高い性能効率を支えるフロントエンドアーキテクチャ
AMDがZen 2で採用した現在最強の分岐予測「TAGE」
AMD Zen 2は実行パイプライン拡張で浮動小数点性能が2倍に
処理能力が2倍に拡張されたAMD Zen 2のAVXユニット

 全4回に渡る詳細な解説記事で読み応えがある。ZEN2の強化部分はZENで既に実装されていた機能の強化なので順当な内容と言えるが、個人的にはAVXの強化の記事が面白かった。

 ZEN2でのAVX帯域の強化自体は驚くべきことではない。ZENで論理256-bitのAVXの物理実装が128-bitだったことは2017年末から知られていたが、Intelが512-bit SIMDのAVX-512を物理で実装していることを考慮すれば、将来バージョンでAVXが強化されることは想像できていた。その上で今年2月にZEN2版EPYCが発表された際にAVXの帯域が倍になったことは説明されていたから、順当な進化だったと言える。

 実のところ、この論理SIMD長の1/2で物理実装するというテクニックはIntelが論理128-bitのSSEをPentium IIIで物理64-bitで実装したりと昔からポピュラーである。なにせ (1) 論理256-bit SIMDとは32-bit 8-wayといった並列演算で各値同士に依存関係は無いから2サイクルに分割して実行することが可能だし(※AVX-512は例外)、(2) SIMD演算ユニットは他の演算ユニットとリソースを共用する場合が多いが、SSE/SSE2=128-bit・FP64=64-bitと共用することでリソースを無駄なく利用することができる。
 もし、SIMDの物理実装の長さを2倍に拡張する場合、実装コストが増えるだけでなく、1サイクルあたりの処理可能なデータの増加に合わせロード/ストア帯域も2倍にする必要があるから実装コスト・消費電力などで問題が出る。帯域の向上をとるか、実装コスト・消費電力をとるかというバランスの問題である。

 このような背景を踏まえると、ZEN2でのAVXの帯域強化は順当だったわけだが、6月27日の記事で説明されているのは物理実装を256-bit幅にする合理性で、論理長と物理長を合わせることでスケジューリングやOut-of-Order実行で必要となるトラッキングがシンプルになってリソースを食わなくなったのだというのは目から鱗であった。

 ところで、後藤氏は記事の中で、以前のAMDが「SIMD演算はどちらかというと、APUに内蔵したGPUコアにまかせるという傾向が強かった」というが、私の理解では当時のAMD(Phil Hester氏がCTOだった時代)は具体的な数字を明確にしていなかったと記憶している。
 私の想像では、AMDが想定していたGPUにオフロードするSIMD長は512-bitで、これはAMD GPUが32-bit x 16 lane x 4 cycle(つまり物理512-bitのSIMD x 4 cycle)のWavefrontで処理しており辻褄が合うためであるが、その一方で当のAMD自身が128-bitのSSE5でGPUへのオフロードに言及したりしているので判然としない。もっとも、当時のAMDはBulldozerなどのゴタゴタで遠い未来の壮大な構想ばかりで、翌年リリースする製品との乖離が問題となっていたから、どのようにCPU・GPU間の溝を埋めるつもりだったのか今となっては分からない。

 印象深いのが、後藤氏が繰り返しZEN2をSkylakeと同じと表現していることだ。Nehalem以降のIntelプロセッサーの系譜を眺めると、まず第二世代のSandy Bridgeでひとつの完成形を迎えた後、4年間・4世代をかけて各ユニットがバラバラに増強されており、例えば実行ユニットはHaswellで強化されたが命令デコードやロード/ストアは強化されずアンバランスだった。それが再度バランスを取り戻し高い完成度を達成したのが第6世代のSkylakeだった。

Comment