tag:blogger.com,1999:blog-83263687115443245292024-03-13T05:19:05.166+01:00Gpu ChessFollow the process of creating a chess engine using NVIDIA's CUDA™.Hieronymushttp://www.blogger.com/profile/14480896169913007204noreply@blogger.comBlogger13125tag:blogger.com,1999:blog-8326368711544324529.post-67811037057008722892009-11-14T21:24:00.000+01:002009-11-14T21:25:56.926+01:00directx 11DirectX 11 has finally a compute shader. Shaders in hlsl language will run on all DX 11 hardware-Hieronymushttp://www.blogger.com/profile/14480896169913007204noreply@blogger.com1tag:blogger.com,1999:blog-8326368711544324529.post-68194129208844010072008-07-17T15:54:00.001+02:002008-07-17T15:56:21.375+02:00Efficient parallismEfficient parallism in Chess is hard. I try different approaches. The multi-window one gives the best results so far.Hieronymushttp://www.blogger.com/profile/14480896169913007204noreply@blogger.com2tag:blogger.com,1999:blog-8326368711544324529.post-79999352932680278292008-06-19T10:36:00.002+02:002008-06-19T10:38:56.593+02:00Beated by the GPU in ChessOkay, I am not that strong player but I got beaten by my chess chess eninge written in CUDA running on a NVIDIA GeForce 8800 GTX.Hieronymushttp://www.blogger.com/profile/14480896169913007204noreply@blogger.com3tag:blogger.com,1999:blog-8326368711544324529.post-10368122381397119962008-06-19T10:34:00.001+02:002008-06-19T10:36:04.839+02:00I use a few thousands threads together to calculate the best move using multiple windows ( -MATE, -value) (-value, value) ( value, MATE)Hieronymushttp://www.blogger.com/profile/14480896169913007204noreply@blogger.com1tag:blogger.com,1999:blog-8326368711544324529.post-65812238390547332832008-05-16T17:17:00.001+02:002008-05-16T17:18:49.515+02:00Tiny chess engine runningAfter performing some tests I have a chess engine running as one block on a multiprocessor, using alpha/beta using killer moves as wellHieronymushttp://www.blogger.com/profile/14480896169913007204noreply@blogger.com8tag:blogger.com,1999:blog-8326368711544324529.post-45344987898139078272008-05-16T17:15:00.000+02:002008-05-16T17:16:10.386+02:00SortingAlso sorting the moves ( captures first) is now done in parallelHieronymushttp://www.blogger.com/profile/14480896169913007204noreply@blogger.com0tag:blogger.com,1999:blog-8326368711544324529.post-11081942648215261082008-04-20T20:08:00.001+02:002008-04-20T20:08:33.029+02:00Evaluation of a chess positionEvaluation is done with 64 threads to count the value of the piecesHieronymushttp://www.blogger.com/profile/14480896169913007204noreply@blogger.com0tag:blogger.com,1999:blog-8326368711544324529.post-83491562422051287502008-04-20T18:35:00.002+02:002008-04-20T18:36:49.346+02:00Parallel move generationOne of the advantages of using GPU's multiprocessors. Instead of generation all pseudo legal moves for a given chess position in sequence, I use 64 threads to generate all legal moves parallel!Hieronymushttp://www.blogger.com/profile/14480896169913007204noreply@blogger.com1tag:blogger.com,1999:blog-8326368711544324529.post-48653471899661921932008-04-20T18:33:00.003+02:002008-04-20T18:34:54.903+02:00Alpha betaRecursion is not possible on the GPU, because the processor on the GeForce 8800 has not stack. Therefore I needed to implement recursion with a state machine and a array which simulates the stackpointer.Hieronymushttp://www.blogger.com/profile/14480896169913007204noreply@blogger.com3tag:blogger.com,1999:blog-8326368711544324529.post-90845036256577684312008-04-18T21:45:00.001+02:002008-04-18T21:47:16.969+02:00TCSPI used Tom Kerrigan's Simple Chess program as a starting point to test if chess would be possible on a GPU.Hieronymushttp://www.blogger.com/profile/14480896169913007204noreply@blogger.com0tag:blogger.com,1999:blog-8326368711544324529.post-43561763914083688932008-04-17T11:32:00.001+02:002008-04-17T11:33:40.976+02:00First versionThe first version is running very inefficient 1000 nodes/s using 1 thread!Hieronymushttp://www.blogger.com/profile/14480896169913007204noreply@blogger.com0tag:blogger.com,1999:blog-8326368711544324529.post-55697154791291116522008-04-17T10:02:00.000+02:002008-04-17T10:04:19.378+02:00ChallengeI started this challenge in january 2007. The challenge is to implement a chess engine purely running on graphical adapters. The idea came after the launch of NVIDIA's CUDA, a SDK to program GPU's.Hieronymushttp://www.blogger.com/profile/14480896169913007204noreply@blogger.com0tag:blogger.com,1999:blog-8326368711544324529.post-13606861565218190862008-04-16T14:44:00.001+02:002008-04-16T14:45:32.821+02:00GPU ChessFollow the adventure of creating a chess engine on a graphical adapterHieronymushttp://www.blogger.com/profile/14480896169913007204noreply@blogger.com1