Page 4 of 4

Re: New engine: a0lite

Posted: Sat Sep 19, 2020 3:46 am
by dkappe
Tony P. wrote: Fri Sep 18, 2020 11:13 pm
dkappe wrote: Thu Apr 30, 2020 8:35 pm On to a julia version.
Awesome, thanks! Just in case, Tord Romstad has changed the license of his Chess.jl to MIT this month :)
Good news.

Re: New engine: a0lite

Posted: Sun Dec 06, 2020 9:08 pm
by Madeleine Birchfield
Are there any plans to implement parallel search and multithreading in a0lite?

Re: New engine: a0lite

Posted: Sun Dec 06, 2020 9:46 pm
by dkappe
Madeleine Birchfield wrote: Sun Dec 06, 2020 9:08 pm Are there any plans to implement parallel search and multithreading in a0lite?
Yes, but not in python. Working on a julia version. As per usual, the simplest version will be in master and the fancier ones will be in branches.

Re: New engine: a0lite

Posted: Sun Dec 06, 2020 10:11 pm
by Madeleine Birchfield
dkappe wrote: Sun Dec 06, 2020 9:46 pm Yes, but not in python. Working on a julia version. As per usual, the simplest version will be in master and the fancier ones will be in branches.
Is python not suited for parallel search and/or multithreading?

Re: New engine: a0lite

Posted: Mon Dec 07, 2020 12:06 am
by dkappe
Madeleine Birchfield wrote: Sun Dec 06, 2020 10:11 pm
dkappe wrote: Sun Dec 06, 2020 9:46 pm Yes, but not in python. Working on a julia version. As per usual, the simplest version will be in master and the fancier ones will be in branches.
Is python not suited for parallel search and/or multithreading?
It’s a question of speed, really. Julia will run the chess and mcts code an order of magnitude or more faster.

Re: New engine: a0lite

Posted: Mon Dec 07, 2020 12:16 am
by Madeleine Birchfield
dkappe wrote: Mon Dec 07, 2020 12:06 am It’s a question of speed, really. Julia will run the chess and mcts code an order of magnitude or more faster.
So maybe sometime in the future we might see a0Clite or asm0lite using C or an assembly language instead of Julia?

Re: New engine: a0lite

Posted: Mon Dec 07, 2020 12:45 am
by dkappe
Madeleine Birchfield wrote: Mon Dec 07, 2020 12:16 am
dkappe wrote: Mon Dec 07, 2020 12:06 am It’s a question of speed, really. Julia will run the chess and mcts code an order of magnitude or more faster.
So maybe sometime in the future we might see a0Clite or asm0lite using C or an assembly language instead of Julia?
If someone else writes it. I’m mostly trying to educate. My hope is we’ll get a bunch more MCTS/NN engines with innovations, much like we’ve gotten a huge crop of ab engines over the years. I know of a few folks working on such engines right now. A0lite’s participation in TCEC with its ridiculous 450 nps has been a real eye opener, I guess.

Making a better, simpler NN and training platform that is easier to extend (no custom, binary training data format) is next on my list.

Re: New engine: a0lite

Posted: Sun Dec 27, 2020 8:46 pm
by dkappe
The julia version of a0lite is making some great strides. Here it is on cpu using the 32x4 Mean Girl 8 net versus the latest version of Tek (ccrl 2400).

[pgn]
[Event "?"]
[Site "?"]
[Date "2020.12.27"]
[Round "2"]
[White "teki"]
[Black "MeanGirl"]
[Result "0-1"]
[ECO "C64"]
[GameDuration "00:08:33"]
[GameEndTime "2020-12-27T13:36:10.960 CST"]
[GameStartTime "2020-12-27T13:27:37.529 CST"]
[Opening "Ruy Lopez"]
[PlyCount "100"]
[TimeControl "180+2"]
[Variation "Classical (Cordel) defense"]

1. e4 {book} e5 {book} 2. Nf3 {book} Nc6 {book} 3. Bb5 {book} Bc5 {book}
4. Nc3 {+0.06/14 7.4s} Nd4 {-0.16/1 16s} 5. Bc4 {+0.53/13 6.9s} d6 {+0.01/1 16s}
6. Na4 {+0.36/13 6.8s} b5 {-0.01/1 14s} 7. Bd5 {+0.28/14 6.6s} c6 {-0.18/1 13s}
8. Nxd4 {0.00/14 7.0s} cxd5 {-0.19/1 12s} 9. Nxb5 {-0.05/15 6.4s}
Bd7 {-0.10/1 12s} 10. Qe2 {+0.31/15 6.3s} Rb8 {-0.05/1 11s}
11. Nxc5 {+0.32/15 6.2s} Bxb5 {+0.68/1 9.9s} 12. Nd3 {+0.11/14 6.0s}
dxe4 {+0.60/1 9.3s} 13. Qxe4 {+0.07/15 5.9s} Nf6 {+0.64/1 8.6s}
14. Qe3 {+0.12/14 5.8s} O-O {+0.49/1 8.2s} 15. b3 {+0.34/13 5.7s}
Nd5 {+0.84/1 7.7s} 16. Qe4 {-0.20/14 5.7s} Nf4 {+0.91/1 7.1s}
17. Nxf4 {-0.20/14 5.8s} exf4 {+1.07/1 6.6s} 18. Kd1 {-1.16/16 5.3s}
Re8 {+1.27/1 6.4s} 19. Qxf4 {-2.26/15 5.3s} Be2+ {+1.42/1 5.9s}
20. Ke1 {-3.79/13 5.2s} Qc8 {+1.70/1 5.5s} 21. f3 {-3.79/13 5.1s}
Qxc2 {+1.26/1 5.4s} 22. Kf2 {-0.45/13 5.0s} Bd3 {+1.09/1 4.8s}
23. Qxd6 {+0.48/14 5.1s} Re2+ {+1.10/1 4.6s} 24. Kg3 {+0.29/14 4.8s}
Rbe8 {+0.91/1 4.4s} 25. h4 {+0.14/12 4.7s} h5 {+1.05/1 4.2s}
26. Kh2 {+0.73/12 4.7s} R8e6 {+1.05/1 4.0s} 27. Qb8+ {+0.35/12 4.6s}
Kh7 {+0.75/1 3.8s} 28. Qxa7 {+0.59/13 4.5s} Qc6 {+1.62/1 3.6s}
29. Qxf7 {-2.31/12 4.5s} Qd6+ {+1.98/1 3.5s} 30. f4 {-11.08/12 4.4s}
Bg6 {+2.37/1 3.4s} 31. Qxg7+ {-12.18/11 4.3s} Kxg7 {+6.16/1 0.68s}
32. Bb2+ {-12.53/12 4.2s} Kg8 {+19.59/1 3.2s} 33. Be5 {-13.20/11 4.2s}
Qd5 {+27.59/1 3.2s} 34. Rhg1 {-10.37/10 4.1s} R6xe5 {+12.04/1 3.1s}
35. Raf1 {-13.50/10 4.1s} Re6 {+19.54/1 3.0s} 36. Kh1 {-13.26/11 4.0s}
Be4 {+16.71/1 3.0s} 37. Rc1 {-28.39/11 4.2s} Bxg2+ {+19.89/1 2.9s}
38. Kh2 {-M10/14 3.9s} Rg6 {+2.75/1 2.8s} 39. Rc8+ {-M10/15 4.1s}
Kh7 {+4.67/1 2.7s} 40. Rc7+ {-M8/22 3.8s} Rg7 {+4.92/1 2.6s}
41. Rxg7+ {-M8/13 4.0s} Kxg7 {+24.80/1 2.7s} 42. a4 {-M6/128 2.9s}
Qxd2 {+4.91/1 2.5s} 43. Re1 {-M6/128 2.3s} Bf3+ {+30.77/1 2.5s}
44. Rxe2 {-M4/18 3.6s} Qxf4+ {+19.25/1 2.5s} 45. Kg1 {-M8/21 3.6s}
Bxe2 {+4.33/1 2.4s} 46. Kg2 {-M6/128 2.2s} Qf3+ {+44.38/1 2.4s}
47. Kh2 {-M4/128 0.027s} Qf4+ {+36.88/1 2.4s} 48. Kg2 {+0.20/41 3.6s}
Qf3+ {+12.16/1 2.3s} 49. Kh2 {+0.20/48 3.5s} Qf2+ {+8.26/1 2.3s}
50. Kh1 {-M2/128 0.007s} Bf3# {+76.16/1 2.3s, Black mates} 0-1
[/pgn]

Re: New engine: a0lite

Posted: Sun Dec 27, 2020 9:30 pm
by dkappe
dkappe wrote: Sun Dec 27, 2020 8:46 pm The julia version of a0lite is making some great strides. Here it is on cpu using the 32x4 Mean Girl 8 net versus the latest version of Tek (ccrl 2400).
Sorry, Teki.

a0lite with hybrid nnue

Posted: Thu Jan 21, 2021 10:41 pm
by dkappe
I’ve combined Night Nurse 0.3 and Bad Gyal in a0lite julia. Night Nurse is running in a simple pvs with a pv hash (poor man’s TT). Its doing policy augmentation similar to leelafish, but with some more smarts around how much to boost policy. Once checkmate appears over the night nurse horizon, it tends to reduce trolling.

While leelafish was a combination of leela and stockfish, which sometimes had different opinions of which move was best, night nurse is trained off of bad gyal data and so should have somewhat similar opinions. Maybe.

I’ll post a game vs halogen when one of my gpu machines frees up.