CUDA is the new programming environment of NVidia.
With it we can exploit to the best the GPU.
It allows the management of the parallelism computing.
Could we use the GPU for chess engines work?
The problem is that to use the programming language CUDA, is not easy.
But I think that exploiting at the most CPU and GPU of our PC, we could still increase the power of Rybka.
www.nvidia.com/cuda
www.ddj.com/hpc-high-performance-computing/207200659
With it we can exploit to the best the GPU.
It allows the management of the parallelism computing.
Could we use the GPU for chess engines work?
The problem is that to use the programming language CUDA, is not easy.
But I think that exploiting at the most CPU and GPU of our PC, we could still increase the power of Rybka.
www.nvidia.com/cuda
www.ddj.com/hpc-high-performance-computing/207200659
This (can we use CUDA, PS3, etc.) is rapidly becoming a FAQ. To sum it up: Probably not, since
1. Floating-point performance is not very relevant for a chess engine, which works a lot more on bit-fiddling, branches and random memory access,
2. The type of parallelism that is the heart of the massive performance you can get from such solutions is less useful for a chess engine, where there are many interdependencies between the calculations.
/* Steinar */
1. Floating-point performance is not very relevant for a chess engine, which works a lot more on bit-fiddling, branches and random memory access,
2. The type of parallelism that is the heart of the massive performance you can get from such solutions is less useful for a chess engine, where there are many interdependencies between the calculations.
/* Steinar */
Do you think something could be written to make use of an endgame module instead of chess engine? I mean an endgame module that would look at bitbase information for win loss or draw position and then use quick search through the bitbase tree to find the fastest win. This way there would be no need to load all EGTB and would allow the main computer to run faster since it won't have EGTB performance hit ... yet would still benefit from them.
This is a lot of work for a marginal benefit.
Vas
Vas
Well, according to your declarations and those of Larry, it seems that today the only thing that we can do for increasing the power of Rybka on our computers, both that to have CPU more powerful.
But I have some doubts, on the strength relationship between power of the CPU and elo of the engine.
You remember that a few weeks ago', I had written a post in this forum, in which did I publish the resulted of a tournament among engines performed on my PC ?
Well, the result caught me, because Rybka single core, had gotten a better score of the version MP. Subsequently I realized me, to have been wrong to plan the start database of the tournament, distorting the final result. ((I wrote the excuses for this error in the forum). But in these days, I am analyzing a variation of an opening (with the method Random).
Well, I am always getting the same result or Rybka single core it seems stronger than the version MP. This time I have not used a database with starts positions. I have planned the opening book, so that only is played the variations of the opening that it interests me. The computational depth is 12 moves.
Now, I still have to end the tour, I have played only 200 games till now. I want to reach 1000. But now it is glimpse already, that Rybka single core is stronger than its brother MP.
Rybka MP, obviously reaches the depth of 12 moveses, in once of 1/2 or 2/3 of the time employed by Rybka s.c. (it is faster). But the final result of the games, seems not to be influenced by this.
Now this is a partial result, I still have to end the tour. When I will have made the whole 1000 games I will publish the definitive result.
In conclusion: it seems that using dualcore instead that one, I have an advantage only in blitz games. While in long time games, I don't have substantial advantages, rather...
But I have some doubts, on the strength relationship between power of the CPU and elo of the engine.
You remember that a few weeks ago', I had written a post in this forum, in which did I publish the resulted of a tournament among engines performed on my PC ?
Well, the result caught me, because Rybka single core, had gotten a better score of the version MP. Subsequently I realized me, to have been wrong to plan the start database of the tournament, distorting the final result. ((I wrote the excuses for this error in the forum). But in these days, I am analyzing a variation of an opening (with the method Random).
Well, I am always getting the same result or Rybka single core it seems stronger than the version MP. This time I have not used a database with starts positions. I have planned the opening book, so that only is played the variations of the opening that it interests me. The computational depth is 12 moves.
Now, I still have to end the tour, I have played only 200 games till now. I want to reach 1000. But now it is glimpse already, that Rybka single core is stronger than its brother MP.
Rybka MP, obviously reaches the depth of 12 moveses, in once of 1/2 or 2/3 of the time employed by Rybka s.c. (it is faster). But the final result of the games, seems not to be influenced by this.
Now this is a partial result, I still have to end the tour. When I will have made the whole 1000 games I will publish the definitive result.
In conclusion: it seems that using dualcore instead that one, I have an advantage only in blitz games. While in long time games, I don't have substantial advantages, rather...


For fixed-depth games, the multi-processor version will be only very slightly stronger than the single-processor version. Your result is easily within the error bars.
Vas
Vas
Hi, I can guess you do not speak english, but you use a translator instead. Still, it seems to be a good translator. May I ask you which one?
yes, I use a translator. It is: "RealTranslatorPlus" of the: EXA media .
It is simple and light . Besides it can be used also as comforts and practical text editors. However I advise you to study the English . . If I had followed from boy, my father's suggestion, today I would communicate in the forums, very more easily.
Hi
It is simple and light . Besides it can be used also as comforts and practical text editors. However I advise you to study the English . . If I had followed from boy, my father's suggestion, today I would communicate in the forums, very more easily.
Hi
Thanks. I can speak (a bit of) English myself. An English translator is not needed :-) But I like translators, and I would need a good hindi one
I am actually working on an open-source implementation of a Chess Engine in CUDA, and think it may take a great place, not as the *BEST* Chess Engine, as there is major drawback in CUDA that disable real chess knowledge to be implemeted (lack of registers, that is), but as a brute-force engine. See my CudaChess blog
Cool - I am glad that someone is tackling this. Good luck!
Vas
Vas
Where can I download this CUDA chess engine
Future GPUs or cGPUs have some CPU like properties eg.GT300 or larabee, maybe one day it will be possible to port normal chess engine to run into GPU without affecting critical parts of the code. At least GPU have some use to chess, Chessbase already implemented GPU optimization on their database program maybe fritz 12 will be the first one to use GPU for chess engine who knows. Maybe the last hope for any weaker non-rybka chess engine there to gain some interest, that is use GPU as a resource else they will just have to beat rybka strength on CPU arena. It might be a good improvement but I doubt rybka or aquarium will implement GPU optimizations on their programs though.

Future GPUs or cGPUs have some CPU like properties eg.GT300 or larabee, maybe one day it will be possible to port normal chess engine to run into GPU without affecting critical parts of the code. At least GPU have some use to chess, Chessbase already implemented GPU optimization on their database program maybe fritz 12 will be the first one to use GPU for chess engine who knows. Maybe the last hope for any weaker non-rybka chess engine there to gain some interest, that is use GPU as a resource else they will just have to beat rybka strength on CPU arena. It might be a good improvement but I doubt rybka or aquarium will implement GPU optimizations on their programs though.
Where can I download this CUDA chess engine
I guess Mr. Cuda Chess changed his focus from chess to parallel programming in general.
But there is an OpenCL Chess Engine in progress:
http://zeta-chess.blogspot.com/
The Negamaxed version looks promising,
but it is hard to implement an efficient parallel AlphaBeta Pruning solution across thousands of threads!
For those who think GPUs do only floating point operations -> thats wrong, they can do all necessary 32 or 64 bit integer operations a chess engine needs,
Nvidia and AMD just decided to publish only the FLOP values in their papers instead of F/MAD/MUL operations stuff.
--
Srdja
I guess Mr. Cuda Chess changed his focus from chess to parallel programming in general.
But there is an OpenCL Chess Engine in progress:
http://zeta-chess.blogspot.com/
The Negamaxed version looks promising,
but it is hard to implement an efficient parallel AlphaBeta Pruning solution across thousands of threads!
For those who think GPUs do only floating point operations -> thats wrong, they can do all necessary 32 or 64 bit integer operations a chess engine needs,
Nvidia and AMD just decided to publish only the FLOP values in their papers instead of F/MAD/MUL operations stuff.
--
Srdja
Powered by mwForum 2.27.4 © 1999-2012 Markus Wichitill