Hi Chrilly: You have mentioned go in hardware twice recently and I have, knowing that you have experience in hardware development, some questions:
1. What should be implemented? In your Hydra cluster I have read you implemented mobility, and somewhere you proposed something like influence. Can you explain it? Here are questions for anyone how knows or has ideas: 2. My board system. I have Bradley Terry scores of patterns built of the neighbors of all empty cells that translate to the legal moves sorted by score. I can update the 40 neighbor masks without any conditional jumps in about 3 asm instructions per neighbor, say 2 ns at 3.4GHz. In hardware you could do in parallel what I do sequentially (the 40 neighbors). But few stones have 40 empty neighbors because they may be out of the board (I once explained how I do that) or not empty, so a guesstimate of the gain for doing that in hardware is x20 (i.e. x40). If your hardware technology runs at 3.4 GHz, that's great! But if it runs at 200 MHz it is even. Then, my software is multicore. I test it with 2 cores, but expect to run in on 256 cores machines in the future. Can the hardware support this? 3. My second problem. translating patterns to scores (database search). I call it a database, but it is a set of sorted 32 bit masks where I can find really fast without any conditional jumps using cmovc instructions. So it is very similar to the previous case. Hardware is better only if clock speed is high enough and it supports multiple cores. 4. My "bottleneck": Sorting. Its not really a bottleneck because sorting few values is fast, but it is the slowest part of my m-search. (Sorting is not required for MC/UCT methods.) Is there hardware for sorting? In short: a) How fast can we expect hardware to be? b) Can you repeat the "hardware kernel" x times so that each thread own an independent kernel? c) Can you sort (in flash time) 19^2 integers? d) How many patterns could the hardware store? e) How much would it cost? Of course, implementing in software has a wider market and you should only implement something that proved to be valuable. I am not claiming that my board is, but it is an interesting subject. Jacques. _______________________________________________ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/