Regarding memory settings, unfortunately pychess doesn't support it. It uses one fixed size TrenspositionTable object.
SjaakII 1.4.0
Moderator: Ras
-
gbtami
- Posts: 389
- Joined: Wed Sep 26, 2012 1:29 pm
- Location: Hungary
Re: SjaakII 1.4.1
Wow! I'v never thought pychess will win any game against C engines
Regarding memory settings, unfortunately pychess doesn't support it. It uses one fixed size TrenspositionTable object.
Regarding memory settings, unfortunately pychess doesn't support it. It uses one fixed size TrenspositionTable object.
-
gbtami
- Posts: 389
- Joined: Wed Sep 26, 2012 1:29 pm
- Location: Hungary
Re: SjaakII 1.4.1
Interesting. I'm not sure, but doesn't this mean pychess engine can trigger a pypy bug instead?Ferdy wrote:I am not familiar with this engine.Guenther wrote: @Ferdinand & Tamas (hopefully reading here too?)
Is there a way to tell pypy which runs pychess, a max hash size?
I noticed that it used around 800MB when I came home. In the beginning
it was perhaps 200MB or so.
Guenther
I can confirm that the engine leaks memoryfortunately this only happens when using pypy. If I use python 2.7 it will not leak.
-
Guenther
- Posts: 4718
- Joined: Wed Oct 01, 2008 6:33 am
- Location: Regensburg, Germany
- Full name: Guenther Simon
Re: SjaakII 1.4.1
Probably yes. Here it was with pypy3. (precisely 3.25 Jun 19 2014 - later ones are all called beta...)gbtami wrote:Interesting. I'm not sure, but doesn't this mean pychess engine can trigger a pypy bug instead?Ferdy wrote:I am not familiar with this engine.Guenther wrote: @Ferdinand & Tamas (hopefully reading here too?)
Is there a way to tell pypy which runs pychess, a max hash size?
I noticed that it used around 800MB when I came home. In the beginning
it was perhaps 200MB or so.
Guenther
I can confirm that the engine leaks memory :( fortunately this only happens when using pypy. If I use python 2.7 it will not leak.
I can check with pypy2 once. The 'normal' python installations were already uninstalled by me, because I don't like duplicate solutions.
May be I should try py2exe for cross-compilation.
Any idea about the speed differences?
-
Ferdy
- Posts: 4853
- Joined: Sun Aug 10, 2008 3:15 pm
- Location: Philippines
Re: SjaakII 1.4.1
I am using pypy2-v5.6.0-win32gbtami wrote:Interesting. I'm not sure, but doesn't this mean pychess engine can trigger a pypy bug instead?Ferdy wrote:I am not familiar with this engine.Guenther wrote: @Ferdinand & Tamas (hopefully reading here too?)
Is there a way to tell pypy which runs pychess, a max hash size?
I noticed that it used around 800MB when I came home. In the beginning
it was perhaps 200MB or so.
Guenther
I can confirm that the engine leaks memoryfortunately this only happens when using pypy. If I use python 2.7 it will not leak.
-
gbtami
- Posts: 389
- Joined: Wed Sep 26, 2012 1:29 pm
- Location: Hungary
Re: SjaakII 1.4.1
py2exe doesn't help here. It's just an exe packer, not a Python compiler.Guenther wrote:Probably yes. Here it was with pypy3. (precisely 3.25 Jun 19 2014 - later ones are all called beta...)gbtami wrote:Interesting. I'm not sure, but doesn't this mean pychess engine can trigger a pypy bug instead?Ferdy wrote:I am not familiar with this engine.Guenther wrote: @Ferdinand & Tamas (hopefully reading here too?)
Is there a way to tell pypy which runs pychess, a max hash size?
I noticed that it used around 800MB when I came home. In the beginning
it was perhaps 200MB or so.
Guenther
I can confirm that the engine leaks memoryfortunately this only happens when using pypy. If I use python 2.7 it will not leak.
I can check with pypy2 once. The 'normal' python installations were already uninstalled by me, because I don't like duplicate solutions.
May be I should try py2exe for cross-compilation.
Any idea about the speed differences?
Pychess engine supports "benchmark" command. Results with different Python versions I have:
# PyChess 0.12.4 [python3 3.5.2]
Total: 3214246 nodes in 368.5901551246643 s: 8720.379411416672 n/s
# PyChess 0.12.4 [python 2.7.12]
Total: 3214246 nodes in 351.296264887 s: 9149.6731428 n/s
# PyChess 0.12.4 [pypy3 3.3.5]
Total: 3214246 nodes in 301.78897404670715 s: 10650.640932635726 n/s
# PyChess 0.12.4 [pypy 2.7.10]
Total: 3214246 nodes in 282.432559967 s: 11380.5787845 n/s
-
Guenther
- Posts: 4718
- Joined: Wed Oct 01, 2008 6:33 am
- Location: Regensburg, Germany
- Full name: Guenther Simon
Re: SjaakII 1.4.1
I started a match with pychess with two 'versions' one with pypy3 (3.25) and one with pypy2 (2.7.10) to get some insight about how much memory those collect (w/o releasing) with a tc of 40/3min.gbtami wrote:py2exe doesn't help here. It's just an exe packer, not a Python compiler.Guenther wrote:Probably yes. Here it was with pypy3. (precisely 3.25 Jun 19 2014 - later ones are all called beta...)gbtami wrote:Interesting. I'm not sure, but doesn't this mean pychess engine can trigger a pypy bug instead?Ferdy wrote:I am not familiar with this engine.Guenther wrote: @Ferdinand & Tamas (hopefully reading here too?)
Is there a way to tell pypy which runs pychess, a max hash size?
I noticed that it used around 800MB when I came home. In the beginning
it was perhaps 200MB or so.
Guenther
I can confirm that the engine leaks memory :( fortunately this only happens when using pypy. If I use python 2.7 it will not leak.
I can check with pypy2 once. The 'normal' python installations were already uninstalled by me, because I don't like duplicate solutions.
May be I should try py2exe for cross-compilation.
Any idea about the speed differences?
Pychess engine supports "benchmark" command. Results with different Python versions I have:
# PyChess 0.12.4 [python3 3.5.2]
Total: 3214246 nodes in 368.5901551246643 s: 8720.379411416672 n/s
# PyChess 0.12.4 [python 2.7.12]
Total: 3214246 nodes in 351.296264887 s: 9149.6731428 n/s
# PyChess 0.12.4 [pypy3 3.3.5]
Total: 3214246 nodes in 301.78897404670715 s: 10650.640932635726 n/s
# PyChess 0.12.4 [pypy 2.7.10]
Total: 3214246 nodes in 282.432559967 s: 11380.5787845 n/s
During game 7 pypy3 is already at >410MB and pypy2 at around 200MB.
I guess though when using /xreuse and /xreuse2 that would be a workaround at least for not too long time controls?
Edit:
Does some real py2exe compiler exist?
Edit2:
I think you could easily improve it by 100-200 rating points w/o too much work if you are in the mood? :)
-
gbtami
- Posts: 389
- Joined: Wed Sep 26, 2012 1:29 pm
- Location: Hungary
Re: SjaakII 1.4.1
I'm sorry but I don't know what are "/xreuse and /xreuse2" you are suggesting hereGuenther wrote:I started a match with pychess with two 'versions' one with pypy3 (3.25) and one with pypy2 (2.7.10) to get some insight about how much memory those collect (w/o releasing) with a tc of 40/3min.gbtami wrote:py2exe doesn't help here. It's just an exe packer, not a Python compiler.Guenther wrote:Probably yes. Here it was with pypy3. (precisely 3.25 Jun 19 2014 - later ones are all called beta...)gbtami wrote:Interesting. I'm not sure, but doesn't this mean pychess engine can trigger a pypy bug instead?Ferdy wrote:I am not familiar with this engine.Guenther wrote: @Ferdinand & Tamas (hopefully reading here too?)
Is there a way to tell pypy which runs pychess, a max hash size?
I noticed that it used around 800MB when I came home. In the beginning
it was perhaps 200MB or so.
Guenther
I can confirm that the engine leaks memoryfortunately this only happens when using pypy. If I use python 2.7 it will not leak.
I can check with pypy2 once. The 'normal' python installations were already uninstalled by me, because I don't like duplicate solutions.
May be I should try py2exe for cross-compilation.
Any idea about the speed differences?
Pychess engine supports "benchmark" command. Results with different Python versions I have:
# PyChess 0.12.4 [python3 3.5.2]
Total: 3214246 nodes in 368.5901551246643 s: 8720.379411416672 n/s
# PyChess 0.12.4 [python 2.7.12]
Total: 3214246 nodes in 351.296264887 s: 9149.6731428 n/s
# PyChess 0.12.4 [pypy3 3.3.5]
Total: 3214246 nodes in 301.78897404670715 s: 10650.640932635726 n/s
# PyChess 0.12.4 [pypy 2.7.10]
Total: 3214246 nodes in 282.432559967 s: 11380.5787845 n/s
During game 7 pypy3 is already at >410MB and pypy2 at around 200MB.
I guess though when using /xreuse and /xreuse2 that would be a workaround at least for not too long time controls?
Edit:
Does some real py2exe compiler exist?
Edit2:
I think you could easily improve it by 100-200 rating points w/o too much work if you are in the mood?
Regarding python compilers, there is cython http://cython.org/ and nuitka http://nuitka.net/. Telling the truth I'v never tried them.
Improving pychess engine may be trivial for real engine developers, but that is definitely not me
-
Guenther
- Posts: 4718
- Joined: Wed Oct 01, 2008 6:33 am
- Location: Regensburg, Germany
- Full name: Guenther Simon
Re: SjaakII 1.4.1
Those commands for WB/XB just reload the engine after each game, which should reload pypy too in this case.gbtami wrote:
I'm sorry but I don't know what are "/xreuse and /xreuse2" you are suggesting here :(
-
gbtami
- Posts: 389
- Joined: Wed Sep 26, 2012 1:29 pm
- Location: Hungary
Re: SjaakII 1.4.1
Ahh, I see now, thx!Guenther wrote:Those commands for WB/XB just reload the engine after each game, which should reload pypy too in this case.gbtami wrote:
I'm sorry but I don't know what are "/xreuse and /xreuse2" you are suggesting here![]()
-
Guenther
- Posts: 4718
- Joined: Wed Oct 01, 2008 6:33 am
- Location: Regensburg, Germany
- Full name: Guenther Simon
Re: pychess
I hope Evert doesn't mind for another pychess post in his Sjaak thread.
There were 4 time losses in 12 games, three of them though duplicates
and the losing side always Black. Note that resign was set too very late, 20.00 pawns.
Its seems pychess sometimes doesn't move anymore when it has found
a mate against itself, or the position is very bad, at least that is my impression?
I have no WB debug files, but as I ran it with Inbetween (because of the pypy command line) and log on, I have log excerpts.
There were 4 time losses in 12 games, three of them though duplicates
and the losing side always Black. Note that resign was set too very late, 20.00 pawns.
Its seems pychess sometimes doesn't move anymore when it has found
a mate against itself, or the position is very bad, at least that is my impression?
I have no WB debug files, but as I ran it with Inbetween (because of the pypy command line) and log on, I have log excerpts.
Code: Select all
939.235: > usermove Qeh3
939.235: < # Time left: 5.76 s; Planing to think for 0.20 s
940.030: < move h6
940.810: > time 496
940.810: > otim 20904
940.810: > usermove N@e7
940.810: < # Time left: 4.96 s; Planing to think for 0.18 s
946.785: > result 1-0 {White wins on time}
1956.034: > usermove P@g4+
1956.034: < # Time left: 44.58 s; Planing to think for 2.96 s
1956.205: < 1 -1737 16 979 Kh4 Rxh7+ P@h5 Qxf8 Nxh7 Rxh7
1957.110: < 2 -32759 106 8005 Nxg4 Rg5+ Kh4 Rxg4+ Kh5 Rxh7+ P@h6 Rxh6#
1957.110: < move Nxg4
1958.155: > time 4351
1958.155: > otim 3294
1958.155: > usermove Rg5+
1958.155: < # Time left: 43.51 s; Planing to think for 2.95 s
2001.680: > result 1-0 {White wins on time}
3192.716: > usermove P@g4+
3192.716: < # Time left: 36.52 s; Planing to think for 2.43 s
3192.841: < 1 -1737 13 979 Kh4 Rxh7+ P@h5 Qxf8 Nxh7 Rxh7
3193.543: < 2 -32759 83 8005 Nxg4 Rg5+ Kh4 Rxg4+ Kh5 Rxh7+ P@h6 Rxh6#
3193.559: < move Nxg4
3194.510: > time 3569
3194.510: > otim 3869
3194.510: > usermove Rg5+
3194.510: < # Time left: 35.69 s; Planing to think for 2.42 s
3231.217: > result 1-0 {White wins on time}
3826.174: > usermove P@g4+
3826.189: < # Time left: 39.86 s; Planing to think for 2.65 s
3826.314: < 1 -1737 12 979 Kh4 Rxh7+ P@h5 Qxf8 Nxh7 Rxh7
3827.016: < 2 -32759 83 8006 Nxg4 Rg5+ Kh4 Rxg4+ Kh5 Rxh7+ P@h6 Rxh6#
3827.016: < move Nxg4
3827.937: > time 3903
3827.937: > otim 4214
3827.937: > usermove Rg5+
3827.937: < # Time left: 39.03 s; Planing to think for 2.65 s
3866.984: > result 1-0 {White wins on time}Code: Select all
[Event "RWBC"]
[Site "CAPPUCCINO"]
[Date "2016.11.30"]
[Round "2"]
[White "PyChess-pypy3_20161118"]
[Black "PyChess-pypy2_20161118"]
[Result "1-0"]
[TimeControl "40/180"]
[Variant "crazyhouse"]
[Number "3"]
[Annotator "1. +0.28 1... -0.38"]
1. e4 {+0.28/4} e6 {-0.38/4 2.3} 2. Nc3 {+0.28/4 2.4} d5 {-0.18/4 1.9} 3.
d4 {+0.12/4 3} dxe4 {+0.02/4 4} 4. Nxe4 {-0.02/4 4} P@d5 {+0.02/3 5} 5. Nc3
{-0.02/3 5} Nf6 {-0.13/4 2.2} 6. Be3 {+0.13/3 5} Nc6 {-0.01/3 5} 7. Qe2
{+0.42/3 2.0} Bd6 {+0.12/3 2.2} 8. P@c5 {+1.10/3 4} Be7 {+0.02/3 3} 9.
O-O-O {+0.22/3 5} O-O {+0.42/3 5} 10. Kb1 {-0.05/3 1.3} e5 {+0.05/3 5} 11.
dxe5 {+3.18/4 4} Nxe5 {-3.18/3 1.9} 12. P@g5 {+3.18/2 2.1} Nfd7 {-3.18/2 5}
13. Nxd5 {+3.18/2 3} Nxc5 {-3.18/2 6} 14. P@f6 {+6.64/2 4} gxf6 {-6.64/2 5}
15. Nxf6+ {+6.64/3 3} Bxf6 {-6.64/4 2.3} 16. Rxd8 {+6.64/3 5} Bxd8
{-6.30/3 4} 17. Bxc5 {+6.30/2 2.5} R@e6 {-6.95/2 6} 18. N@h6+ {+6.82/2 2.4}
Rxh6 {-7.72/3 4} 19. gxh6 {+7.72/2 5} Bf6 {-9.23/2 5} 20. Q@f4
{+10.33/2 2.5} P@g7 {-10.33/2 4} 21. Qexe5 {+10.33/1 6} N@d2+ {-10.46/2 5}
22. Ka1 {+10.46/2 5} Bxe5 {-10.70/2 2.5} 23. N@e7+ {+10.70/2 5} Kh8
{-9.07/4 4} 24. hxg7+ {+8.82/2 4} Bxg7 {-8.53/3 5} 25. Qxd2 {+8.53/2 1.2}
N@e4 {-8.43/2 1.6} 26. Qe3 {+8.15/2 4} Q@d1+ {-8.15/1 1.2} 27. R@b1
{+8.15/1 1.2} Qxc2 {-8.58/1 7} 28. Bxa7 {+8.58/1 1.2} P@b6 {-8.14/1 4} 29.
Nxc8 {+8.14/1 8} Rfxc8 {-8.14/1 14} 30. P@d7 {+9.10/1 6} Rd8 {-9.07/1 3}
31. B@d3 {+9.13/1 1.4} N@b3+ 32. axb3 {+4.79/1 6} Rxa7+ 33. P@a2
{+4.79/2 1.7} Qxb3 {-4.79/1 0.9} 34. N@c1 {+4.87/1 4} Rda8 {-4.56/1 0.8}
35. d8=Q+ {+14.98/2 1.9} Rxd8 {-14.98/2 32} 36. Nxb3 {+14.67/2 3} Rda8
{-14.67/1 4} 37. P@a6 {+14.83/1 5} P@d5 38. Q@h5 {+14.50/1 4} B@c6 39. Qeh3
{+14.69/1 10} h6 40. N@e7 {+15.15/1 0.8}
{White wins on time} 1-0
[Event "RWBC"]
[Site "CAPPUCCINO"]
[Date "2016.11.30"]
[Round "6"]
[White "PyChess-pypy3_20161118"]
[Black "PyChess-pypy2_20161118"]
[Result "1-0"]
[TimeControl "40/180"]
[Variant "crazyhouse"]
[Number "7"]
[Annotator "1. +0.28 1... -0.38"]
1. e4 {+0.28/4} e6 {-0.38/4 5} 2. d4 {+0.28/4 3} d5 {-0.20/4 1.8} 3. Bb5+
{+0.20/3 5} Nc6 {-0.04/4 1.6} 4. Nc3 {+0.04/3 6} Nf6 {+0.06/3 5} 5. f3
{+0.08/3 2.6} Be7 {+0.43/3 4} 6. Nge2 {+0.11/3 1.6} a6 {+0.78/3 4} 7. Bxc6+
{+0.22/3 2.4} bxc6 {+0.24/4 3} 8. O-O {-0.24/3 2.8} O-O {+0.55/3 4} 9. N@a5
{-0.55/2 6} c5 {+0.40/2 5} 10. Nc6 {+0.97/3 4} Qd6 {-0.97/2 6} 11. Nxe7+
{+1.18/3 2.3} Qxe7 {-1.09/3 4} 12. B@c6 {+1.09/2 5} N@b6 {-1.00/2 5} 13.
Na4 {+2.12/2 2.4} Nxa4 {-2.12/2 5} 14. Bxa8 {+1.87/3 2.6} N@b6
{-1.87/2 1.8} 15. Bc6 {+1.87/2 6} cxd4 {-1.87/2 1.7} 16. exd5 {+1.47/2 5}
exd5 {-1.47/2 2.0} 17. Nxd4 {+1.47/1 6} P@e3 {-1.36/2 5} 18. P@b7
{+0.96/2 5} P@f2+ {-0.96/2 10} 19. Kh1 {+1.51/3 1.6} Bd7 {-1.51/2 5} 20.
R@a8 {+1.31/2 2.6} Bxc6 {-1.31/2 2.9} 21. Nxc6 {+1.25/3 1.9} Qe6
{-1.25/2 7} 22. Nd4 {+2.06/2 2.6} Nxa8 {-2.06/2 6} 23. Nxe6 {+2.06/1 5}
fxe6 {-2.06/2 1.3} 24. bxa8=N {+2.06/1 7} Rxa8 {-2.87/2 3} 25. Q@c6
{+2.87/1 5} R@g1+ {-6.67/1 4} 26. Rxg1 {+6.67/2 8} fxg1=R+ {-6.67/1 8} 27.
Qxg1 {+11.92/2 4} N@f2+ {-11.92/1 4} 28. Qxf2 {+11.92/2 6} exf2
{-11.92/1 5} 29. Qxa8+ {+11.92/2 1.6} R@f8 {-11.98/2 1.0} 30. N@e7+
{+11.82/2 4} Kf7 {-5.00/3 1.1} 31. N@e5+ {+5.00/2 3} Kxe7 {-4.89/3 4} 32.
Nc6+ {+4.89/2 4} Kf7 {-5.04/3 1.5} 33. R@e7+ {+5.04/2 3} Kg6 {-14.73/2 4}
34. R@g5+ {+14.73/2 1.6} Kh6 {-14.73/2 2.4} 35. Rgxg7+ {+14.73/1 2.3} Kh5
{-17.37/2 1.6} 36. P@g4+ {+17.37/1 10} Nxg4 {-327.59/2 1.1} 37. Rg5+
{+327.60/1 1.0}
{White wins on time} 1-0
[Event "RWBC"]
[Site "CAPPUCCINO"]
[Date "2016.11.30"]
[Round "10"]
[White "PyChess-pypy3_20161118"]
[Black "PyChess-pypy2_20161118"]
[Result "1-0"]
[TimeControl "40/180"]
[Variant "crazyhouse"]
[Number "11"]
[Annotator "1. +0.28 1... -0.38"]
1. e4 {+0.28/4} e6 {-0.38/4 5} 2. d4 {+0.28/4 1.9} d5 {-0.20/4 1.7} 3. Bb5+
{+0.20/3 5} Nc6 {-0.04/4 5} 4. Nc3 {+0.04/3 5} Nf6 {+0.06/3 5} 5. f3
{+0.08/3 2.5} Be7 {+0.43/3 4} 6. Nge2 {+0.11/3 5} a6 {+0.78/3 4} 7. Bxc6+
{+0.22/3 2.2} bxc6 {+0.56/3 5} 8. O-O {-0.24/3 3} O-O {+0.55/3 4} 9. N@a5
{-0.55/2 6} c5 {+0.40/2 5} 10. Nc6 {+0.97/2 5} Qd6 {-0.97/2 5} 11. Nxe7+
{+1.18/3 3} Qxe7 {-1.09/3 4} 12. B@c6 {+1.09/2 1.3} N@b6 {-1.00/2 5} 13.
Na4 {+2.12/2 2.6} Nxa4 {-2.12/2 5} 14. Bxa8 {+1.87/3 4} N@b6 {-1.87/2 2.0}
15. Bc6 {+1.87/2 6} cxd4 {-1.87/2 5} 16. exd5 {+1.47/2 1.6} exd5
{-1.47/2 2.0} 17. Nxd4 {+1.47/1 5} P@e3 {-1.36/2 5} 18. P@b7 {+0.96/2 5}
P@f2+ {-0.96/2 16} 19. Kh1 {+1.51/3 5} Bd7 {-1.51/2 9} 20. R@a8
{+1.31/2 2.1} Bxc6 {-1.31/2 2.6} 21. Nxc6 {+1.25/3 2.0} Qe6 {-1.25/2 5} 22.
Nd4 {+2.06/2 2.0} Nxa8 {-2.06/2 5} 23. Nxe6 {+2.06/2 4} fxe6 {-2.06/2 1.2}
24. bxa8=N {+2.06/1 8} Rxa8 {-2.87/2 3} 25. Q@c6 {+2.87/1 4} R@g1+
{-6.67/1 3} 26. Rxg1 {+6.67/2 8} fxg1=R+ {-6.67/1 7} 27. Qxg1 {+11.92/2 4}
N@f2+ {-11.92/1 3} 28. Qxf2 {+11.92/2 6} exf2 {-11.92/1 4} 29. Qxa8+
{+11.92/2 1.7} R@f8 {-11.98/2 2.9} 30. N@e7+ {+11.82/2 4} Kf7 {-5.00/3 0.9}
31. N@e5+ {+5.00/2 4} Kxe7 {-4.89/3 2.9} 32. Nc6+ {+4.89/2 4} Kf7
{-5.04/3 1.5} 33. R@e7+ {+5.04/2 3} Kg6 {-14.73/2 2.7} 34. R@g5+
{+14.73/2 1.3} Kh6 {-14.73/2 1.9} 35. Rgxg7+ {+14.73/1 1.9} Kh5
{-17.37/2 1.3} 36. P@g4+ {+17.37/1 8} Nxg4 {-327.59/2 0.8} 37. Rg5+
{+327.60/1 1.0}
{White wins on time} 1-0
[Event "RWBC"]
[Site "CAPPUCCINO"]
[Date "2016.11.30"]
[Round "12"]
[White "PyChess-pypy3_20161118"]
[Black "PyChess-pypy2_20161118"]
[Result "1-0"]
[TimeControl "40/180"]
[Variant "crazyhouse"]
[Number "13"]
[Annotator "1. +0.28 1... -0.38"]
1. e4 {+0.28/4} e6 {-0.38/4 1.6} 2. d4 {+0.28/4 1.9} d5 {-0.20/4 2.3} 3.
Bb5+ {+0.20/3 5} Nc6 {-0.04/4 5} 4. Nc3 {+0.04/3 5} Nf6 {+0.06/3 5} 5. f3
{+0.08/3 2.2} Be7 {+0.43/3 5} 6. Nge2 {+0.11/3 2.1} a6 {+0.78/3 4} 7. Bxc6+
{+0.22/3 3} bxc6 {+0.56/3 5} 8. O-O {-0.24/3 2.2} O-O {+0.55/3 4} 9. N@a5
{-0.55/2 5} c5 {+0.40/2 5} 10. Nc6 {+0.97/2 6} Qd6 {-0.97/2 5} 11. Nxe7+
{+1.18/3 4} Qxe7 {-1.18/2 5} 12. B@c6 {+1.09/2 1.3} N@b6 {-1.00/2 5} 13.
Na4 {+2.12/2 2.7} Nxa4 {-2.12/2 2.1} 14. Bxa8 {+1.87/3 4} N@b6
{-1.87/2 2.3} 15. Bc6 {+1.87/2 5} cxd4 {-1.87/2 1.9} 16. exd5 {+1.47/2 1.7}
exd5 {-1.47/2 4} 17. Nxd4 {+1.47/1 6} P@e3 {-1.36/2 5} 18. P@b7 {+0.96/2 5}
P@f2+ {-0.96/2 6} 19. Kh1 {+1.51/3 6} Bd7 {-1.51/2 8} 20. R@a8
{+1.31/2 2.2} Bxc6 {-1.31/2 3} 21. Nxc6 {+1.25/3 2.2} Qe6 {-1.25/2 6} 22.
Nd4 {+2.06/2 2.3} Nxa8 {-2.06/2 5} 23. Nxe6 {+2.06/2 4} fxe6 {-2.06/2 1.2}
24. bxa8=N {+2.06/1 6} Rxa8 {-2.87/2 4} 25. Q@c6 {+2.87/1 5} R@g1+
{-6.67/1 4} 26. Rxg1 {+6.67/2 4} fxg1=R+ {-6.67/1 8} 27. Qxg1 {+11.92/2 4}
N@f2+ {-11.92/1 4} 28. Qxf2 {+11.92/2 5} exf2 {-11.92/1 6} 29. Qxa8+
{+11.92/2 1.8} R@f8 {-11.98/2 3} 30. N@e7+ {+11.82/2 4} Kf7 {-5.00/3 4} 31.
N@e5+ {+5.00/2 4} Kxe7 {-4.89/3 3} 32. Nc6+ {+4.89/2 4} Kf7 {-5.04/3 1.5}
33. R@e7+ {+5.04/2 4} Kg6 {-14.73/2 3} 34. R@g5+ {+14.73/2 1.4} Kh6
{-14.73/2 1.9} 35. Rgxg7+ {+14.73/1 2.0} Kh5 {-17.37/2 1.3} 36. P@g4+
{+17.37/1 8} Nxg4 {-327.59/2 0.8} 37. Rg5+ {+327.60/1 0.9}
{White wins on time} 1-0