I updated the opencl kernels and have created a PR. When you get a chance, I would appreciate if you can take a little time to review the PR and see whether I missed any place. If not, I'll pull latest code to my repo and start training.
Whole PR:
https://github.com/gcao/KataGo/pull/3/filesOpenCL kernel changes:
https://github.com/gcao/KataGo/pull/3/f ... 028e9db1cdNot sure whether I need to update this place as well.
https://github.com/lightvector/KataGo/b ... s.cpp#L125Here is a short summary of the design of supporting Daoqi in the board.h/cpp and related code.
I moved the diag offsets to a separate field called diag_offsets. Both adj_offsets and diag_offsets take 8 values. The first 4 are for regular board positions, the last 4 are for edge positions.
In all places where adjacent points are computed, we use adj_offsets[0-3] to find adjacent points and check its value. If it's C_WALL, we use adj_offsets[4-7] to get the alternative adjacent points.
I hope this will work but if you find any issue with this, please do let me know. I don't want to start the training with any wrong design/implementation because I feel it's very hard to catch these issues during the training phase.