Author: Axel Schumacher
Date: 00:16:58 10/16/03
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!
This page took 0.01 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.