更新 07/26

AVX無いと遅いのをなんとかしようと思ってSSE版を作ろうと思ったのだけど、最近のPentium, CeleronとかだとSSEよりGPUのほうがはやい気がしたので、AVXが無い場合はOpenCLを使うようにしてみた。

http://int.main.jp/files/waifu2x-converter_x64_0726.zip
http://int.main.jp/files/waifu2x-converter_x86_0726.zip


優先度が以下のようになる。


あわせて、waifu2x-converter-cpp.exe に、--force-OpenCL オプションを追加した。CUDA, FMA, AVXがある環境でもOpenCLを使うようになる。

試した範囲だと、

  • Haswell i7 4コア : FMAのほうが速い。Iris Pro 5200 も試したがFMAのほうが少しはやい。多分4コアあるi5もFMAのほうがはやい
  • Baytrail 4コア : SSE実装が無いので OpenCL のほうが大分はやい。SSE実装を真面目に作ればそっちのほうがはやいかも
  • Braswell 4コア : OpenCLのほうが大分はやい。SSE実装の理論値をこえてるので、SSE実装まじめに作ってもOpenCLのほうがはやい

試してない範囲だと、

  • Haswell i5 4コア : 多分i7と一緒。FMAのほうがはやい
  • Haswell i3 2コア : 際どい。もしかしたらOpenCLのほうがはやいかも
  • Haswell Pentium, Celeron : SSE実装無いのでOpenCLのほうがはやい。真面目にSSE作ったら際どい
  • Ivy, Sandy : 多分AVXのほうがはやい
  • Broadwell : もしかしたらi7でもOpenCLのほうがはやいかも?

という感じ。

誰か試してみた人いたら結果教えてもらえると助かります。