Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Future Rebel will allow significant user parameter adjustment

Author: Ed Schröder

Date: 03:05:43 07/22/99

Go up one level in this thread


On July 22, 1999 at 02:28:43, Dave Gomboc wrote:

>Thanks for posting this.
>
>I wanted to clarify something, though I think I know the answer: you were
>referring to the binary size of the eval when you said 120Kb of assembler, not
>the source size, right? :-)

I was referring to the binaty size indeed.

>One more question: how much slowed do you think your eval would be if you wrote
>it in C or C++ instead of assembler?

The C-version is about 30% slower than the ASM version.

Ed Schroder



>Dave
>
>On July 21, 1999 at 06:41:25, Ed Schröder wrote:
>
>>>I took a look at the log file you placed on your site so as to show what would
>>>be subject to tweaking and found that what interested me most was all grouped
>>>up. I am thinking particularly of Chess Knowledge which is said to increase or
>>>decrease the quality of positional play according to its value. This is quite
>>>vague, and I would have thought that it was precisely in the various
>>>elements of
>>>chess knowledge that one could achieve the most interesting tweaking. Is this
>>>left like this due to a desire to not divulge all of Rebel's cogs and screws?
>>>
>>>                                Albert Silver
>>
>>The option [Chess Knowledge] is about LAZY-EVAL which is currently
>>a hot topic here. Below is a quote from my pages which might explain
>>a bit (I hope).
>>
>>Ed Schroder
>>
>>-----------------------------------
>>
>>[Chess Knowledge = 200] Chess Knowledge above 100 will result in
>>more accurate positional play but a lower search depth. Chess Knowledge
>>below 100 will result in less accurate positional play but a higher search
>>depth. This function needs a detailed (and quite technical) explanation:
>>
>>The heart of a (any) chess program is its evaluation function (EVAL). In
>>there all chess knowledge is present. The most important ones are already
>>discussed above  (King Safety, Mobility, Pawn Structure, Passed Pawns
>>etc). Above these major items EVAL contains over 200 specific (position
>>oriented) chess knowledge cases of all kind. To name  a few: Bishop of
>>opposite colors, bad (or good) bishops, piece development in the
>>opening, castling, rook endings, pawn endings and and and... EVAL is
>>the soul of a (any) chess program and will reflect the playing style the
>>programmer has (had) in mind.
>>
>>EVAL in REBEL takes a lot of processor time even for todays fast
>>computers. EVAL's size is over 120 Kb (pure assembler code)
>>containing over 30,000 instructions which is very big for a chess
>>program. Calling EVAL for every position in the tree-search is very
>>expensive and will slow down the search tremendously, in REBEL's
>>case a slow down factor of 7 to 8 (nodes per second) is not unusual.
>>
>>To handle this chess programmers invented LAZY EVAL in all kind
>>of sorts. LAZY-EVAL is a smart algorithm that only picks the main
>>important parts of EVAL belonging to the (current position) and then
>>skips the rest of EVAL. This is of course a very dangerous approach
>>as often LAZY-EVAL is not 100% right and will return a score that isn't
>>100% accurate which (sometimes) in the end may result in a lesser
>>quality move.
>>
>>On the other hand Rebel's LAZY-EVAL algorithm will speed-up the
>>search tremendously and allows REBEL to look 2-3 plies deeper
>>than without LAZY-EVAL which in the end is by far is superior in
>>terms of chess strength.
>>
>>With the option [Chess Knowledge = 200] you can tune REBEL's
>>LAZY-EVAL. The higher you set its value the more accurate REBEL
>>will play but the search depth will decrease. If you set Chess
>>Knowledge to its maximum [Chess Knowledge = 500] you actually
>>see REBEL's EVAL in its full glory as LAZY-EVAL is hardly active
>>anymore.
>>
>>However REBEL'S nodes per second (NPS) will drop typically with
>>a factor of 7-8. On a PII-333 REBEL searches about 100,000
>>positions a second. Using [Chess Knowledge = 500] REBEL's
>>NPS will drop to 12,000-15,000.
>>
>>More technical stuff: all of the above is true for current and older
>>INTEL processors. However times are changing, chips are equiped
>>with larger and faster cache memory. On the new AMD-K6-III the
>>cache runs at full processor clock speed. INTEL processors cache
>>memory is just running on 100 or 66 Mhz. The result is that on
>>AMD K6-III using the maximum [Chess Knowledge = 500] REBEL
>>will run 2-2½ times faster than on INTEL.
>>
>>All of this makes it very difficult to tune Chess Knowledge for its
>>best setting because it is very dependant on the processor you
>>have in your PC. This month AMD released the new K7 processor
>>which again doubled the cache memory and REBEL will profit a lot
>>from that. INTEL surely will answer. The bottom line is that one day
>>the ideal setting will be [Chess Knowledge = 500] and you can use
>>REBEL's EVAL in its full glory.



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.