Computer Chess Club Archives


Search

Terms

Messages

Subject: New 80-bit Chess engine Gothic Vortex. Your opinion please.

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.