Author: vladan
Date: 04:16:45 10/16/03
Go up one level in this thread
On October 16, 2003 at 03:16:58, Axel Schumacher wrote: >Hi, >I stumbled across the new engine Gothic Vortex, which seems to be a 80 bit >engine! What is your opinion to this approach? > >http://www.gothicchess.org/gothic_vortex.html > >Excerpt from the page: > >The Gothic Vortex 80-bit Engine > >Usually terms like "32-bit" and "64-bit" are bounced around quite a bit in >computer trade journals. To the average, everyday computer user, such terms >constitute "jargon"; they remain elusive and somewhat nebulous. In fact, if you >asked your 10 geekiest friends to explain the terms, you may get 10 different >answers. > >Basically, "bit" is a contraction for binary digit. So, "one bit" is a single >digit in the binary number system. In binary, or "Base 2", there only exists 1's >and 0's. To represent a number such as 23 using only 1's and 0's, you need to >figure out how to expand it in binary form. 23 in "Base 10" = 16 + 4 + 2 + 1 in >"Base 2". This number is written as 10111 which means (1 x 16) + (0 x 8) + (1 x >4) + (1 x 2) + (1 x 1). You can see that this requires 5 binary digits, so 23 in >"Base 10" requires 5 bits in "Base 2" in order to store the number. > >Such a scheme may seem ridiculous and inefficient. Why require 5 numbers in base >2 when you only need 2 numbers in base 10? The answer is: speed! > >Computers are capable of performing operations at the bit level at extraordinary >speeds. So, parsing through 5 bits to compute the base 10 equivalent requires >time measured in nanoseconds (billionths of a second!) or even faster. > >You might think that eventually you would "run out of" bits when you start >dealing with very large numbers. But, quite surprisingly, even your age in >seconds can be stored using only 32 bits. If you live to be 70 years old, which >is about 2,209,032,000 seconds, you are just about 2 years past the 31-bit mark. >In other words, 32 binary digits would be sufficient to store the number of >seconds in about 136 years! > >Contemporary chess programs are able to exploit the rapid binary calculations >performed by the computer by representing the pieces on the board in a rather >unusual fashion. Programmers use many variables comprised entirely of 32-bit or >64-bit constructions that can actually be sent to routines that do the >equivalent of generating chess moves. Such a program is usually called a >Bitboard Move Generator. Since the regular chess board contains 64 squares, it >makes sense to use 64-bit constructions to optimize the speed at which the >program executes. However, not all computer operating systems perform native >64-bit math manipulations. So, 64-bit program code is "emulated" by using pairs >of 32-bit constructions. > >Such emulation slows down the overall performance by at least a factor of two. >But what other choices does one have? > >It is possible to use an Array Move Generator. Most programmers who attempt to >write something as complex as a chess program first build an Array Move >Generator. On the plus side, an Array Move Generator is easier to program and >debug. It also "makes sense" to think in terms of an Array Move Generator, since >the computer instructions used to encode the program closely resemble the >process a human player might use to do the same thing. On the minus side, an >Array Move Generator is many times slower than a Bitboard Move Generator. A >recent experiment showed that the Bitboard Move Generator in the Gothic Vortex >program is about 30 times as fast as the Array Move Generator found in the >Zillions-Of-Games engine. > >All of this was mentioned because Gothic Chess, with an 80 square board, is even >more difficult to implement as a Bitboard Move Generator. There are no 80-bit >operating systems, and the types of 80-bit instructions that are needed for >maximum speed of execution are just not available. Writing code to handle the >data as three discrete packets of 32-, 32-, and 16-bit chunks is so tedious that >it almost defies a rational explanation. > >What is needed is an 80-bit emulation core, and this is very difficult to >design. > >Just designing such a core was a huge project unto itself. Once the core was >completed, the rest of the game shell had to be designed around it. Using >something known as 45-degree rotated bitboards for an 80 square board and >intelligent 80-bit register shifts, the Gothic Chess engine was hand crafted. >The result was the equivalent of a Nitrous Oxide powered dragster. > >Gothic Vortex is capable of performing very deep searches in only a matter of >seconds! Just one question: How it is possible to build efficient 80-bit move generator without 80-bit registers ?? Now way, in my opinion... Rgds. Vladan, Axon programmer
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.