Zeta OpenCL Chess - v 093x - developer release -

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

smatovic
Posts: 2663
Joined: Wed Mar 10, 2010 10:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic

Zeta OpenCL Chess - v 093x - developer release -

Post by smatovic »

Heyho,

i published the source of Zeta 0933 and 0934.

https://github.com/smatovic/Zeta/tree/zeta_nvidia_0933

https://github.com/smatovic/Zeta/tree/zeta_nvidia_0934

I managed to get a a negamax without ab-pruning running on one SIMD Unit with 128 threads and based on a LIFO-Stack:

Zeta 0932, search depth 4, no ab pruning, 128 threads on one simd unit:

nodes: 206603 ,movecount: 206603, bestmove: 17900673 ,sec: 0.640000
nodes: 286578 ,movecount: 286578, bestmove: 17913158 ,sec: 0.710000
nodes: 554825 ,movecount: 554825, bestmove: 9008591 ,sec: 2.170000
nodes: 575267 ,movecount: 575267, bestmove: 17963090 ,sec: 3.380000
nodes: 632190 ,movecount: 632190, bestmove: 17892385 ,sec: 1.640000
nodes: 620515 ,movecount: 620515, bestmove: 17983893 ,sec: 1.630000
nodes: 636666 ,movecount: 636666, bestmove: 648577536 ,sec: 1.640000
nodes: 912485 ,movecount: 912485, bestmove: 219372902 ,sec: 2.420000
nodes: 673506 ,movecount: 673506, bestmove: 44564488 ,sec: 1.790000

Negamax worked fine, but AlphaBeta Pruning performs bad.

Because i don't use a linked list as LIFO Stack i am not able to delete all Boards pruned by a Beta Cutoff, i have to visit every Board and then do the Cutoff again.

Zeta 0933, search depth 4, bad ab pruning, 128 threads on one simd unit:

nodes: 76869 ,movecount: 76869, bestmove: 17900673 ,sec: 0.330000
nodes: 97599 ,movecount: 97599, bestmove: 17913158 ,sec: 0.280000
nodes: 209102 ,movecount: 209102, bestmove: 9008591 ,sec: 0.560000
nodes: 206391 ,movecount: 206391, bestmove: 17963090 ,sec: 0.560000
nodes: 187838 ,movecount: 187838, bestmove: 17892385 ,sec: 0.500000
nodes: 276374 ,movecount: 276374, bestmove: 17983893 ,sec: 0.760000
nodes: 142551 ,movecount: 142551, bestmove: 648577536 ,sec: 0.400000
nodes: 173269 ,movecount: 173269, bestmove: 219372902 ,sec: 0.460000
nodes: 229713 ,movecount: 229713, bestmove: 44564488 ,sec: 0.640000


A shared LIFO-Stack doesn't perform well with AlphaBeta Pruning, so maybe i can use one LIFO-Stack per thread and distribute somehow work accross threads.

Zeta 0934, search depth 4, good ab pruning with move ordering, one thread:

nodes: 1922 ,movecount: 11492, bestmove: 17900673 ,sec: 0.600000
nodes: 3055 ,movecount: 18177, bestmove: 17913158 ,sec: 0.750000
nodes: 11336 ,movecount: 60309, bestmove: 9008591 ,sec: 2.790000
nodes: 7692 ,movecount: 40912, bestmove: 17963090 ,sec: 2.780000
nodes: 5075 ,movecount: 29170, bestmove: 17892385 ,sec: 1.370000
nodes: 14323 ,movecount: 66261, bestmove: 17983893 ,sec: 3.190000
nodes: 4775 ,movecount: 37989, bestmove: 648577536 ,sec: 2.860000
nodes: 3471 ,movecount: 23288, bestmove: 219372902 ,sec: 1.120000
nodes: 9960 ,movecount: 37534, bestmove: 44564488 ,sec: 1.980000
nodes: 19522 ,movecount: 69898, bestmove: 17829968 ,sec: 4.000000


--
Srda