追記06/09
http://int.main.jp/files/waifu2x-converter_x64_staticgcc.exe
本家のブロック分割をマージした。大きいファイルでも動くはず。
その影響でちょっと遅くなったのでそれをリカバーするためにOpenCVごとGCCでビルドしなおした。
960x540 でブロック分割しないと10.6[sec]、512x512のブロック分割ありで11.3[sec]ぐらい。
VCは、
v00 = MADD<have_fma>(_mm256_loadu_ps(&w[0*VEC_WIDTH]), i00, v00); v01 = MADD<have_fma>(_mm256_loadu_ps(&w[0*VEC_WIDTH]), i01, v01); v00 = MADD<have_fma>(_mm256_loadu_ps(&w[1*VEC_WIDTH]), i01, v00); v01 = MADD<have_fma>(_mm256_loadu_ps(&w[1*VEC_WIDTH]), i02, v01); v00 = MADD<have_fma>(_mm256_loadu_ps(&w[2*VEC_WIDTH]), i02, v00); v01 = MADD<have_fma>(_mm256_loadu_ps(&w[2*VEC_WIDTH]), i03, v01);
こういうコードで _mm256_loadu_ps(&w[X*VEC_WIDTH]) のロードをスケジューリングしてしまって、レジスタスピルする悲しいコードを出していた。(GCCは想定どおりレジスタ14個使うコードを出していた)
32bit版はOpenCVビルド面倒なのでちょっと待って。欲しい人いるなら連絡もらえればやる気出てやると思う。