15.05 new qualtiy system benchmarks
720p
======================================================================
  [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  OVERALL BENCHMARK SUMMARY
======================================================================
      Puzzle      Moves     Unique    GPU Lay    GPU NoL    CPU Lay    CPU NoL
  -----------------------------------------------------------------------------
         4x4         26         25       0.9s       0.7s       0.8s       0.7s
         5x5         98         95       1.1s       0.9s       1.2s       0.9s
         6x6        213        208       1.5s       1.2s       1.7s       1.4s
         7x7        425        401       2.2s       1.7s       2.9s       2.2s
         8x8        707        652       3.0s       2.3s       4.5s       3.1s
         9x9       1251       1079       4.8s       3.3s       7.6s       4.7s
       10x10       1569       1362       6.9s       4.5s       9.7s       6.1s
       12x12       2883       2470      11.2s       8.1s      16.5s      10.7s
       16x16       7132       5692      20.7s      18.8s      39.4s      23.6s
       20x20      14203      11177      43.6s      32.3s      78.0s      43.0s
======================================================================

benchmarks 14.05 after gpu optimizations
============================================================
  OVERALL BENCHMARK SUMMARY
============================================================
  Puzzle     Moves   Unique       CPU      GPU  Speedup GPU Info
  ---------- ------- ------- -------- -------- -------- ------------------------------
  4x4        26      25          0.6s     0.7s     0.9x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  5x5        98      95          1.0s     0.9s     1.1x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  6x6        213     208         1.7s     1.2s     1.4x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  7x7        425     401         3.1s     1.8s     1.7x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  8x8        707     652         5.1s     2.8s     1.8x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  9x9        1251    1079        8.8s     4.5s     2.0x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  10x10      1569    1362       10.0s     5.0s     2.0x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  12x12      2883    2470       19.6s    10.4s     1.9x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  16x16      7132    5692       65.2s    34.3s     1.9x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  20x20      14203   11177     130.1s    76.6s     1.7x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
============================================================
============================================================
  OVERALL BENCHMARK SUMMARY (no-layout)
============================================================
  Puzzle     Moves   Unique       CPU      GPU  Speedup GPU Info
  ---------- ------- ------- -------- -------- -------- ------------------------------
  4x4        26      25          0.4s     0.6s     0.7x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  5x5        98      95          0.5s     0.6s     0.8x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  6x6        213     208         0.8s     0.9s     0.9x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  7x7        425     401         1.3s     1.3s     1.0x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  8x8        707     652         2.3s     2.0s     1.1x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  9x9        1251    1079        4.1s     3.1s     1.3x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  10x10      1569    1362        4.0s     3.5s     1.1x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  12x12      2883    2470        9.5s     6.6s     1.4x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  16x16      7132    5692       31.4s    20.7s     1.5x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  20x20      14203   11177      74.1s    44.8s     1.6x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
============================================================


benchmarks 14.05 after cpu optimizations (before gpu fixes)
============================================================
  OVERALL BENCHMARK SUMMARY
============================================================
  Puzzle     Moves   Unique       CPU      GPU  Speedup GPU Info
  ---------- ------- ------- -------- -------- -------- ------------------------------
  4x4        26      25          0.6s     0.9s     0.7x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  5x5        98      95          1.0s     1.2s     0.8x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  6x6        213     208         1.8s     2.0s     0.9x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  7x7        425     401         3.2s     3.3s     1.0x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  8x8        707     652         6.0s     5.9s     1.0x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  9x9        1251    1079        9.2s     9.5s     1.0x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  10x10      1569    1362       11.1s    10.1s     1.1x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  12x12      2883    2470       20.4s    22.4s     0.9x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  16x16      7132    5692       65.3s    72.6s     0.9x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  20x20      14203   11177     131.7s   146.3s     0.9x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
============================================================
============================================================
  OVERALL BENCHMARK SUMMARY (no-layout)
============================================================
  Puzzle     Moves   Unique       CPU      GPU  Speedup GPU Info
  ---------- ------- ------- -------- -------- -------- ------------------------------
  4x4        26      25          0.5s     0.6s     0.8x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  5x5        98      95          0.6s     0.8s     0.8x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  6x6        213     208         0.9s     1.2s     0.8x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  7x7        425     401         1.6s     1.9s     0.8x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  8x8        707     652         2.7s     3.2s     0.8x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  9x9        1251    1079        4.6s     5.4s     0.8x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  10x10      1569    1362        4.8s     6.0s     0.8x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  12x12      2883    2470       10.7s    13.0s     0.8x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  16x16      7132    5692       41.9s    47.4s     0.9x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  20x20      14203   11177      87.4s   111.3s     0.8x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
============================================================

benchmarsk 13.05
============================================================
  OVERALL BENCHMARK SUMMARY
============================================================
  Puzzle     Moves   Unique       CPU      GPU  Speedup GPU Info
  ---------- ------- ------- -------- -------- -------- ------------------------------
  4x4        26      25          1.1s     0.7s     1.6x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  5x5        98      95          1.5s     1.0s     1.5x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  6x6        213     208         3.4s     2.6s     1.3x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  7x7        425     401         6.7s     3.4s     2.0x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  8x8        707     652        10.7s     5.6s     1.9x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  9x9        1251    1079       20.8s     9.9s     2.1x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  10x10      1569    1362       22.7s    10.7s     2.1x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  12x12      2883    2470       63.0s    23.3s     2.7x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  16x16      7132    5692      381.7s    77.6s     4.9x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  20x20      14203   11177          —   163.2s        — [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
============================================================
  OVERALL BENCHMARK SUMMARY (no-layout)
============================================================
  Puzzle     Moves   Unique       CPU      GPU  Speedup GPU Info
  ---------- ------- ------- -------- -------- -------- ------------------------------
  4x4        26      25          0.7s     0.4s     1.8x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  5x5        98      95          1.0s     0.6s     1.7x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  6x6        213     208         1.4s     1.0s     1.4x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  7x7        425     401         2.8s     1.9s     1.5x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  8x8        707     652         4.9s     3.4s     1.4x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  9x9        1251    1079       11.3s     5.9s     1.9x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  10x10      1569    1362       12.8s     6.0s     2.1x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  12x12      2883    2470       39.6s    13.9s     2.9x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  16x16      7132    5692      296.8s    52.2s     5.7x [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
  20x20      14203   11177          —   114.0s        — [ReplayVideoGenerator] GPU ON (NVIDIA GeForce GTX 1660 SUPER)
============================================================

benchmarks 12.05
| Puzzle | Moves | Unique | Lay CPU | Lay GPU | NoL CPU | NoL GPU |
| ------ | ----- | ------ | ------- | ------- | ------- | ------- |
| 4×4    | 26    | 25     | 1.2s    | 0.7s    | 0.8s    | 0.3s    |
| 5×5    | 98    | 95     | 2.3s    | 1.4s    | 1.1s    | 0.6s    |
| 6×6    | 213   | 208    | 6.0s    | 3.1s    | 2.1s    | 1.2s    |
| 7×7    | 425   | 401    | 9.5s    | 6.6s    | 4.2s    | 2.6s    |
| 8×8    | 707   | 652    | 16.5s   | 11.2s   | 8.8s    | 5.7s    |
| 9×9    | 1251  | 1079   | 30.4s   | 20.2s   | 15.8s   | 8.7s    |
| 10×10  | 1569  | 1362   | 31.3s   | 22.8s   | 15.6s   | 11.7s   |
| 12×12  | 2883  | 2470   | —       | 52.7s   | —       | 20.8s   |
| 16×16  | 7132  | 5692   | —       | 158.8s  | —       | 80.5s   |
| 20×20  | 14203 | 11177  | —       | 330.1s  | —       | 175.4s  |

benchmarks 11.05
| Puzzle | Moves | CPU    | GPU    | Speedup |
| ------ | ----- | ------ | ------ | ------- |
| 4×4    | 26    | 4.3s   | 0.8s   | 5.4×    |
| 5×5    | 98    | 4.6s   | 1.4s   | 3.3×    |
| 6×6    | 213   | 6.1s   | 2.7s   | 2.3×    |
| 7×7    | 425   | 9.9s   | 5.4s   | 1.8×    |
| 8×8    | 707   | 18.9s  | 8.5s   | 2.2×    |
| 9×9    | 1251  | 25.9s  | 14.0s  | 1.8×    |
| 10×10  | 1569  | 26.9s  | 16.2s  | 1.7×    |
| 12×12  | 2883  | —      | 36.4s  | —       |
| 16×16  | 7132  | —      | 112.6s | —       |
| 20×20  | 14203 | —      | 217.0s | —       |

benchmarks 10.05
| Puzzle | Moves | CPU    | GPU    | Speedup |
| ------ | ----- | ------ | ------ | ------- |
| 4×4    | 26    | 3.6s   | 3.2s   | 1.1×    |
| 5×5    | 98    | 6.1s   | 3.8s   | 1.6×    |
| 6×6    | 213   | 10.8s  | 4.9s   | 2.2×    |
| 7×7    | 425   | 22.9s  | 7.5s   | 3.1×    |
| 8×8    | 707   | 38.7s  | 10.5s  | 3.7×    |
| 9×9    | 1251  | 69.1s  | 16.4s  | 4.2×    |
| 10×10  | 1569  | 100.0s | 18.5s  | 5.4×    |
| 12×12  | 2883  | —      | 36.3s  | —       |
| 16×16  | 7132  | —      | 101.7s | —       |
| 20×20  | 14203 | —      | 213.9s | —       |

benchmarks 09.05
| Puzzle | Moves | CPU    | GPU    | Speedup |
| ------ | ----- | ------ | ------ | ------- |
| 4×4    | 26    | 4.5s   | 3.5s   | 1.3×    |
| 5×5    | 98    | 7.9s   | 4.1s   | 1.9×    |
| 6×6    | 213   | 17.1s  | 6.3s   | 2.7×    |
| 7×7    | 425   | 36.6s  | 9.8s   | 3.7×    |
| 8×8    | 707   | 73.0s  | 16.7s  | 4.4×    |
| 9×9    | 1251  | 141.6s | 24.8s  | 5.7×    |
| 10×10  | 1569  | 199.3s | 29.3s  | 6.8×    |
| 12×12  | 2883  | —      | 52.6s  | —       |
| 16×16  | 7132  | —      | 194.0s | —       |
| 20×20  | 14203 | —      | 930.6s | —       |

benchmarks 09.05 older
| Puzzle | Moves | Frames | CPU | GPU | Speedup |
|--------|-------|--------|-----|-----|---------|
| 4×4    | 26    | 27     | 4.5s   | 3.1s   | 1.4× |
| 5×5    | 98    | 99     | 9.4s   | 4.1s   | 2.3× |
| 6×6    | 213   | 214    | 22.3s  | 7.0s   | 3.2× |
| 7×7    | 425   | 426    | 52.6s  | 9.8s   | 5.4× |
| 8×8    | 707   | 708    | 96.7s  | 16.3s  | 5.9× |
| 9×9    | 1251  | 1252   | 208.4s | 30.5s  | 6.8× |
| 10×10  | 1569  | 1570   | 284.9s | 33.1s  | 8.6× |
| 12×12  | 2883  | 2884   | —       | 63.7s  | — |
| 16×16  | 7132  | 7133   | —       | 341.6s | — |

| Puzzle | Moves | Frames | CPU | GPU | Speedup |
|--------|-------|--------|-----|-----|---------|
| 4×4    | 26    | 27     | 4.5s   | 3.1s   | 1.4× |
| 5×5    | 98    | 99     | 9.4s   | 4.1s   | 2.3× |
| 6×6    | 213   | 214    | 22.3s  | 7.0s   | 3.2× |
| 7×7    | 425   | 426    | 52.6s  | 9.8s   | 5.4× |
| 8×8    | 707   | 708    | 96.7s  | 16.3s  | 5.9× |
| 9×9    | 1251  | 1252   | 208.4s | 30.5s  | 6.8× |
| 10×10  | 1569  | 1570   | 284.9s | 33.1s  | 8.6× |