やじうまの杜

化石レベルの古いCPUは切り捨て ~「Google Chrome 89」でx86版はSSE3命令が必須に

「Chrome 87」から警告バナーをだしているそうだけど、実際に目にした人はあまりいないかも

 “やじうまの杜”では、ニュース・レビューにこだわらない幅広い話題をお伝えします。

c86版「Google Chrome」で“SSE3”命令セットを必須とするというドキュメント

 Googleは「Chrome」で古いCPUの切り捨てを計画しているそうです。昨年9月に公開されたドキュメントによると、x86版「Google Chrome 89」でCPU命令セット“SSE3”が必須となります。SSE3非対応CPUを搭載した環境では、実行時に「Chrome」がクラッシュします。

 “SSE”(Streaming SIMD Extensions:ストリーミングSIMD拡張命令)は、CPUの命令を複数のデータへ同時に適用できるようにしたものです。暗号化やマルチメディアの処理にあると便利な命令で、同時に単一データ・単一命令(SISD)しか扱えないCPUに比べて大きくパフォーマンスがアップします。Intel系CPUの場合、ご先祖にあたるMMXから順に、SSE、SSE2、SSE3(SSSE3というものもあるが、別物)、SSE4と進化し、現在ではAVXという命令セットにまで発展してきました。

  • SSE2:2000年にIntel x86 CPUで、2003年にAMD x86 CPUで導入。64bit CPUではすべてに搭載されている
  • SSE3:2003年にIntel CPUで、2005年にAMD CPUで導入

 「Chrome」の場合、2014年からSSE2が必須となっていますが、今年からはSSE3も必要となります。「Chrome 87」以降、SSE3が検出できない場合、画面上部に警告バナーが表示され、バージョン情報画面(chrome://settings/help)に“もうすぐアップデートを受信できなくなる”というメッセージが追加されるようになっているとのことです。

「Chromium」での警告バナーとメッセージ

 もっとも、SSE2までしかサポートしていないCPUはもはや販売されておらず、入手は困難です。稼働しているシステムもほぼ残っておらず、この移行措置を実際に目にできる人はごく僅かでしょう。Googleも、この変更で影響を受けるユーザーはごくわずかであろう(64bit化が完了しているMacでは影響なし)としています。

 ちなみに、SSE3命令を必須にすることで「Chrome」のバイナリはほんのちょっとだけ小さくなるとのこと(公式ビルドの場合で5KB)。ユーザー側のメリットはあまりありませんが、不要なコードが減って見通しがよくなることは開発者にとってありがたいことです。