更新 08/11
SSEの対応すぐ入れる方法思い付いたので入れた。
http://int.main.jp/files/waifu2x-converter_x64_0811.zip
http://int.main.jp/files/waifu2x-converter_x86_0811.zip
以下のような優先度で処理する
- CUDA
- AMD GPU OpenCL
- FMA
- AVX
- Intel GPU OpenCL
- SSE (SSE3 を持ってないCPUでは無効命令で死ぬ) ← 追加
- GPU が無くて横幅が奇数なら OpenCV filter2D (x2 は常に横幅偶数なのでノイズ除去のみ filter2Dになる可能性がある)
実際にはSSE3が必要なので、Prescott の Pen4以降が必要です。Pen3とかの世の中に出回っている大半のPCでは動かないかも。
前のOpenCV filter2D 版はよく考えたらマルチスレッドにしてなかったのでかなり遅かった(オリジナルのwaifu2x-converter-cppより遅かった)。
なので、8〜10倍ぐらい速くなってるかも。でもAtomとかのキャッシュ小さいのだとよくわからん(あとで試す)。
まあでもこういうSIMD効く問題は世代毎に体感できるぐらいかなり性能上がってるし、Core2とかPentiumとかはやめて新しいi5,i7を使うべきだと思う。
https://github.com/tanakamura/waifu2x-converter-cpp/commit/1a65160e1d3881bb13b4e62fcda47bb33dce0ee3
差分見ればわかるが、ゆるふわ対応なのでチューニングの余地はあるかも。(そもそも確認すらしてない)
あとついでに GeForce の OpenCL でも動くようにした。CUDAのほうがはやいので実用性は無いけど…まあ、動かないのが気になってた人とかは更新すると良いのではないかな…