Quote:
Originally Posted by PokerHero77
The 2+2 evaluator would not be a good candidate for GPUs.
There is an evaluator that I'm working on converting to a GPU that is comparatively fast (about 1 second on my Dell to evaluate all 133,784,560 7 card combinations in Java). It involves clever bit-shifting which a GPU can do well. The code uses 1 IF statement which I am in the process of removing, which as you may know kills GPU performance.
Apologies for not addressing this sooner. The fastest I could get my 1080ti was 70M/second, which is only about half the speed of the Java based hand evaluator running on a single thread.
Because efficient hand evaluators require only a few operations per hand, GPUs lag behind a CPU. I'm guessing if 100+ operations were required per hand, then GPUs would be faster.
I did not test my GPU evaluating multiple hands per iteration to return the best hand(s), i.e. multiple input array arguments. There would be a point of diminishing returns as a larger input array reduces the number of parallel threads on the GPU.