8 Replies Latest reply: Jan 25, 2013 3:57 AM by himanshu.gautam RSS

Zeta OpenCL Chess 097x released

smato Newbie
Currently Being Moderated

Zeta is an Chess Engine written in OpenCL,

it uses an Best-First-Search, MonteCarlo-AlphaBeta,

and reaches on an HighEnd-GPU about 1800 Elo points.

 

Sources

https://github.com/smatovic/Zeta/tree/zeta_cl_097x

 

Blog

http://zeta-chess.blogspot.com/

 

--

Srdja

  • Re: Zeta OpenCL Chess 097x released
    himanshu.gautam Master
    Currently Being Moderated

    Congratulations ! This is great news!

     

    If you have time and if I am not asking for more, Can you please share the following with the community?

     

    1. How long did the development take? Would you like to share some OpenCL development tips?

     

    2. What tools did you use for development and debugging? Is the tool cross-platform (available like windows, linux)?

     

    3. Have you tested them on AMD GPUs yet?

     

    4. "Elo points" - I don't understand what this mean. Can you elaborate?

     

    Thanks,

    Regards

    Himanshu , Bruhaspati

    --------------------------------

    The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors. Links to third party sites are for convenience only, and no endorsement is implied

    • Re: Zeta OpenCL Chess 097x released
      smato Newbie
      Currently Being Moderated

      Congratulations ! This is great news!

       

       

      Thanks

       

       

      4. "Elo points" - I don't understand what this mean. Can you elaborate?

       

      The Elo rating system is a method for calculating the relative skill levels of players in two-player games such as chess,

      top Computer Programs play above 3000 Elo, so 1800 Elo points are in the amateur league.

       

      See:

      http://en.wikipedia.org/wiki/Elo_rating_system

       

      http://computerchess.org.uk/ccrl/4040/

       

       

      3. Have you tested them on AMD GPUs yet?

       

      Yes, Zeta runs on AMD CPUs and GPUs,

      i have only an HD 7750...maybe someone could benchmark it on an HD 7970?

       

      2. What tools did you use for development and debugging? Is the tool cross-platform (available like windows, linux)?

       

      For Move Generating and Hashing i have written my own test code,

      no further debugging except the compiler messages,

      and sometimes a look into the command line profiler output.

       

       

      1. How long did the development take?

       

       

       

      The Project started as an bet between me and my classmate,

      i thought i would need two weeks to get an competitive engine on the gpu running, lol,

      i lost the bet,

      it took one year in spare time to get an fast move generator running,

      and another year to find an suitable search algorithm,

      and another year to fix and tune both to reach 1800 Elo

       

       

      1. Would you like to share some OpenCL development tips?

       

      - Don't be afraid to enter no-man's-land

      - Never give up

      - Every problem has more than one solution

       

      --

      Srdja

    • Re: Zeta OpenCL Chess 097x released
      smato Newbie
      Currently Being Moderated

      2. What tools did you use for development and debugging? Is the tool cross-platform (available like windows, linux)?

       

      Ah, my development system:

       

      OS: Ubuntu Linux 12.04,

      IDE: Gedit Texteditor,

      Compiler: gcc 4.6.3 and MingGW64

       

      Somehow i managed to build an opencl library from an windows dll for MinGW.

      • Re: Zeta OpenCL Chess 097x released
        himanshu.gautam Master
        Currently Being Moderated

        Vow! 3 full years! This is simply lot of work!

         

        Wish you good luck to reach 3000+ Elo!

         

        And, Thanks for sharing this with the community. Keep up the good work!

         

        In future, you can consider CodeXL for your development and debugging.

        Therez lot in place to make your development work easier.

        Good luck!

        Regards

        Himanshu , Bruhaspati

        --------------------------------

        The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors. Links to third party sites are for convenience only, and no endorsement is implied

        • Re: Zeta OpenCL Chess 097x released
          Meteorhead Apprentice
          Currently Being Moderated

          Same here. I have a linux guru collegue who recently got involved in using VS for development, and he said "Wow... this is so comfortable". And I told him, wait until you see the OpenCL debuggers (nSight (cause he develops for NVI), and CodeXL). That is where VS really starts. The powerful plug-ins and extra features on top of IntelliSense.

           

          I develop crossplatform applications (my desktop is Win8 but the cluster is linux), and rule of thumb is: develop under Windows, run production code in linux. Little extra porting time (less and less since C++11) in exchange for HEAPS of time you win in developing. Boy... I hate coding in vim (I know, there are better alternatives in linux, like Qt's IDE, ot CodeBlocks, but they are simply not extensible)

          • Re: Zeta OpenCL Chess 097x released
            himanshu.gautam Master
            Currently Being Moderated

            Develop on VS and deploy on Linux -- That sounds interesting!

            Regards

            Himanshu , Bruhaspati

            --------------------------------

            The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors. Links to third party sites are for convenience only, and no endorsement is implied

            • Re: Zeta OpenCL Chess 097x released
              Meteorhead Apprentice
              Currently Being Moderated

              It's really not much of a pain. So many things are standardized that apart from the GUI (which is the biggest pain of 'em all) everything that is written under Windows will work fine under linux too. Porting starts when the application works fine on Windows, and on linux gcc will not compile things that MSVCC does (generally VS compiles poorly written code alright, where gcc is a bit more pedantic in this matter). A bit more pain comes with things like MPI, where in linux OpenMPI a process will send a message to itself without problems, and under Windows in MSMPI it will result in an error, since a process must not send itself messages. I have not read the specifications to the last bit how should an implementation behave in this case, but either it is under-specified, or one implementation is more "forgiving" than the other.

               

              Aside from problems like this (and windowing as a whole) there is really no issue in cross-developing, so long as one uses C++ only, cross-platform APIs and libraries (SFML-SFGUI, SDL, Qt, VTK, OpenCL, OpenGL...). Some differences must be debugged under linux, but I think all this effort pays back in development time.

              • Re: Zeta OpenCL Chess 097x released
                himanshu.gautam Master
                Currently Being Moderated

                Very Intersting..

                And Thanks for sharing your experience.

                Regards

                Himanshu , Bruhaspati

                --------------------------------

                The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors. Links to third party sites are for convenience only, and no endorsement is implied

More Like This