Pentium III、Athlon XPで動作しなくなったPaint.net

面白いところからちょっと懐かしい名前が出てきました。Pentium IIIとかAthlon XPとか、かつての名CPU達です。

ただニュースとしてはこのCPU達にとってはちょっとネガティブ。軽くてそこそこの機能を持つフォトレタッチ系のソフト、Paint.netがこれらCPUの上で動作しなくなったという話題です。

既にこのクラスのCPUではWindows 10はおろかWindows 7なども重くて動かすのはかなり困難だったと思いますので、事実上問題になるケースはほとんど存在しないとは思います。

ですが、これからのソフトウェアとハードウェアの関係を示す一つのいい例になると思います。

具体的にはSSE命令がないから

Paint.netは無償利用も可能で、3Dでないほうのペイント代替的なポジションのソフトになるかもしれません。

GIMPなどより本格的なフォトレタッチソフトに比べると機能は大分小さいのですが、最大の特徴はその軽さです。ちょっとスクリーンショットを撮って、ちゃちゃっと簡単な修正を入れて保存、と言った目的にはぴったりの1本です。

で、このソフトがPemntium III、Athlon XPで動作しなくなった理由ですが、これら「古い」CPUが「SSE命令」実装前のアーキテクチャのCPUだからです。

SSE命令はインテルアーキテクチャのCPUでは初の本格的な「ベクトル演算」命令です。「SIMD命令」なんて呼ばれたりもしますが、一つの命令で多数の数値演算をいっぺんに行えるちょっと特殊な命令です。

複数のデータに同じ処理を施すことになりますので使い途は少し限定されますが、用途によっては劇的な演算性能向上が期待できます。

画像を処理するソフトや動画のエンコードはそういった性能向上のパターンにバッチリはまるタイプの処理で、処理の高速化にはもはや必須の機能と言っていいものになっています。

Paint.netも各種フィルターや画像をJPEG形式で圧縮して保存する際などにSSEの処理を使ってる可能性があります。

有償ソフトなどではSSE命令がないCPUサポートのためにSSEを使わない処理も準備して設定で処理を使い分ける機能が搭載されたりもしますが、そうするとプログラム本体が肥大化してしまうデメリットがあります。

Paint.netはそちらのリスクを嫌った形ですね。さすがにもうPentiumIIIやAthlon XPを使い続けているユーザーもレアだろう、という判断もあったでしょう。

これからのソフトの流れになる、かも?

しばらく前、マイクロソフトが最新のCPUはWindows 10でしかサポートしない、という発表を行なって大騒動を招いたことがありました。

今回のPaint.netの旧CPUの「排除」的なアップデートは、このマイクロソフトの動きと同じようなもので、今後のソフトウェアのサポートの形の一つの方向性を示すものになると思います。

パソコンなどで使われるx86とかx64と呼ばれるCPUのアーキテクチャ、実は年々改良と機能の追加が継続的に行なわれていて、これらのアーキテクチャが最初に世に出た頃から見ると随分と機能が大きくなってきています。

SSEから始まるベクトル演算機関連にまつわる機能がどんどん拡張されていて、最新のCPUではAVX512と呼ばれる合計512bitの演算を一気に行える機能まであります。(単精度の浮動小数点演算を16個いっぺんに処理可能)

この演算器を活用する形でAI系のディープラーニング処理を大幅に効率化する仕組みも組み込まれ始めました。

そのようなCPUの新機能をフル活用するソフトは旧CPUでは本来の性能を発揮することが難しくなりますし、代替機能を持つプログラムも入れ込むとプログラムサイズの肥大化が問題になります。

今後はPaint.netが取った方針のように、ある程度古いCPUでは「動作しない」ソフトウェアが段々増えてくるかもしれません。