| |
Main
Date: 24 Nov 2005 03:16:25
From: Major Cat
Subject: CPU Speed and Program Time Controls
|
I have a question for those participants who are familiar with the technical side of hardware/software used by a machine to _play_ OTB chess. Can one simulate the evaluative strength of a chess program as it would play on a hypothetical PC having a "slower" CPU by setting the _machine_ time control more restrictively in another machine having a "faster" CPU that runs the very _same_ program under _identical_ settings (other than the machine time control, of course)? Are there any other hardware-related issues that one should keep in mind which would practically kick in because PC technology continually evolves (e.g., memory chips, hardware caches, multiple processors, program compilation efficiencies and so on)? Major Cat
|
|
| |
Date:
From: Martin Brown
Subject: Re: CPU Speed and Program Time Controls
|
|
| | |
Date: 28 Nov 2005 08:17:56
From: Major Cat
Subject: Re: CPU Speed and Program Time Controls
|
Thank you for your input. I will start a new thread on the nature, mechanics and importance of a machine "thinking" while a human opponent is contemplating his next move. "Permanent brain" and "deep thinking" are two of the terms that I have come across in the past. Martin Brown wrote: > > Major Cat wrote: > > > I have a question for those participants > > who are familiar with the technical side > > of hardware/software used by a machine to > > _play_ OTB chess. > > > > Can one simulate the evaluative strength > > of a chess program as it would play on a > > hypothetical PC having a "slower" CPU by > > setting the _machine_ time control more > > restrictively in another machine having > > a "faster" CPU that runs the very _same_ > > program under _identical_ settings (other > > than the machine time control, of course)? > > Yes in a rough and ready fashion. But you may not be able to set short > enough time controls to simulate running on a really old PC. > > You would probably be better off hobbling the CPU with one of the > programs designed to allow retro shoot em up video games to run on > modern kit. Try at your own risk: > > Google "+CPU +slow +down" > > If you hobble the resources so that it searches at the same number of > nodes per second as an antique machine that should be pretty close. > > > > Are there any other hardware-related issues > > that one should keep in mind which would > > practically kick in because PC technology > > continually evolves (e.g., memory chips, > > hardware caches, multiple processors, program > > compilation efficiencies and so on)? > > Modern PC's tend to come with immense amounts of ram and secondary > caches that are about the same size as the maximum external ram on the > oldest PCs! > > Again some of these can be neutered by suitable device drivers and/or > stress testing tools. > > Regards, > Martin Brown Regards, Major Cat
|
| | | |
Date: 29 Nov 2005 11:26:20
From: Guy Macon
Subject: Re: CPU Speed and Program Time Controls
|
Major Cat wrote: >I will start >a new thread on the nature, mechanics >and importance of a machine "thinking" >while a human opponent is contemplating >his next move. "Permanent brain" and >"deep thinking" are two of the terms >that I have come across in the past. I just wanted to mention that I appreciate you starting a new thread. It makes it the newsgroup a lot easier to use.
|
| | | | |
Date: 29 Nov 2005 08:23:13
From: Major Cat
Subject: Re: CPU Speed and Program Time Controls
|
Guy Macon wrote: > > Major Cat wrote: > > >I will start > >a new thread on the nature, mechanics > >and importance of a machine "thinking" > >while a human opponent is contemplating > >his next move. "Permanent brain" and > >"deep thinking" are two of the terms > >that I have come across in the past. > > I just wanted to mention that I appreciate you starting > a new thread. It makes it the newsgroup a lot easier to > use. Anytime, even at running the risk of being perceived as somewhat...pedantic! 8 >) Regards, Major Cat
|
| |
Date: 25 Nov 2005 01:21:41
From: Simon Waters
Subject: Re: CPU Speed and Program Time Controls
|
On Thu, 24 Nov 2005 03:16:25 -0800, Major Cat wrote: > Can one simulate the evaluative strength of a chess program as it would > play on a hypothetical PC having a "slower" CPU.... I suspect it is possible to "noble" a CPU to behave like a slower CPU, but it would be quite difficult (non-trivial) in most cases. It is certainly possible to model it, to work out the impact of specific processor changes, but that would be much slower, as all modern processors are carefully modelled in this way before they are built. > Are there any other hardware-related issues that one should keep in mind > which would practically kick in because PC technology continually evolves > (e.g., memory chips, hardware caches, multiple processors, program > compilation efficiencies and so on)? The obvious one is processor cache size. This grows with each generation of processor, and is essential to keeping the faster processors busy. Access to memory in the processor cache is much faster than normal memory accesses, and this difference is known to strongly influence the performance of Chess programs. Given most processors measure CPU cache in 100's of KB still, for example the box I'm typing on says 512KB, this is much smaller than the memory needs of most modern chess playing programs, some of the RISC chipsets came with 2MB of layer 1 cache on the CPU a fair number of years ago (this usually came with a hefty price tag). But clearly the same program, running on a machine with more CPU cache, needs do less slow memory accesses, and is thus effectively faster than the same "speed" CPU with less cache.
|
| | |
Date: 25 Nov 2005 03:14:32
From: Major Cat
Subject: Re: CPU Speed and Program Time Controls
|
Thank you for kindly responding to my post. For a little while, it looked as if this newsgroup had died from ripe, old age as discussions involving chess and computers were taking place in sister newsgroups instead... Simon Waters wrote: > > On Thu, 24 Nov 2005 03:16:25 -0800, Major Cat wrote: > > > Can one simulate the evaluative strength of a chess program as it would > > play on a hypothetical PC having a "slower" CPU.... > > I suspect it is possible to "noble" a CPU to behave like a slower CPU, but > it would be quite difficult (non-trivial) in most cases. It is certainly > possible to model it, to work out the impact of specific processor > changes, but that would be much slower, as all modern processors are > carefully modelled in this way before they are built. I have a follow on question then. Historically, have chess programmers been writing their code to take advantage of the CPU architecture of a particular CPU generation or did they focus on the operating system(s) that their software would be running under instead, under the hypothesis, perhaps, that an operating system is designed to take advantage of particular classes or types of hardware anyway? > > > Are there any other hardware-related issues that one should keep in mind > > which would practically kick in because PC technology continually evolves > > (e.g., memory chips, hardware caches, multiple processors, program > > compilation efficiencies and so on)? > > The obvious one is processor cache size. This grows with each generation > of processor, and is essential to keeping the faster processors busy. > Access to memory in the processor cache is much faster than normal memory > accesses, and this difference is known to strongly influence the > performance of Chess programs. > > Given most processors measure CPU cache in 100's of KB still, for example > the box I'm typing on says 512KB, this is much smaller > than the memory needs of most modern chess playing programs, some of the > RISC chipsets came with 2MB of layer 1 cache on the CPU a fair number of > years ago (this usually came with a hefty price tag). But clearly the > same program, running on a machine with more CPU cache, needs do less slow > memory accesses, and is thus effectively faster than the same "speed" CPU > with less cache. On a conceptually related topic, what about "hashtables"? I understand that modern chess programs rely heavily on them as enhancers of evaluative function speed. Given that memory chips provide the hardware underpinnings for this chess program feature, does the memory chip architecture/speed matter? Also, does CPU architecture/speed affect the efficiency of the "hashtable" feature? Major Cat
|
| | | |
Date: 26 Nov 2005 22:13:01
From: Simon Waters
Subject: Re: CPU Speed and Program Time Controls
|
On Fri, 25 Nov 2005 03:14:32 -0800, Major Cat wrote: > On a conceptually related topic, what about "hashtables"? I understand > that modern chess programs rely heavily on them as enhancers of evaluative > function speed. Given that memory chips provide the hardware underpinnings > for this > chess program feature, does the memory chip architecture/speed matter? > Also, does CPU architecture/speed affect the efficiency of the "hashtable" > feature? Yes, and hugely so. The detail can have a huge impact on the performance, you'll find Hyatt discussing issues relating to the size of chunks of memory retrieved to cache affecting performance in the archives, for someone who clearly understands this. Certainly GNU Chess searches far faster if you disable hash tables or shrink them to a size that fits (or nearly fits) into CPU cache, since you lose the "check hash", and "store hash" calls with their slow memory accesses. The real gain with hash tables is not searching from the same position if it arises by transposition. It is only when the search is large enough that savings through transpositions exceed the extra cost on store and retrieve for each position. Alas for humans this occurs in the order of a second or so on modern PC processors. On older processors it was 5 to 10 seconds for GNU Chess, so at very fast time controls it was better to switch off hash tables (except in positions where transpositions were very common - typically endgames). Although as implied elsewhere in the thread, one can obsess about performance of code, and miss the fact that better algorithmns are usually a far bigger factor. Of course the real interest these days is how to co-ordinate multiprocessors in searching efficiently, and good solutions to that problem will no doubt pay off in other areas of computer science.
|
| | | | |
Date: 26 Nov 2005 21:25:44
From: Major Cat
Subject: Re: CPU Speed and Program Time Controls
|
First off, thank you for taking the time to contribute to my technical education. I very much appreciate it. 8 >) Simon Waters wrote: > > On Fri, 25 Nov 2005 03:14:32 -0800, Major Cat wrote: > > > On a conceptually related topic, what about "hashtables"? I understand > > that modern chess programs rely heavily on them as enhancers of evaluative > > function speed. Given that memory chips provide the hardware underpinnings > > for this > > chess program feature, does the memory chip architecture/speed matter? > > Also, does CPU architecture/speed affect the efficiency of the "hashtable" > > feature? > > Yes, and hugely so. The detail can have a huge impact on the performance, > you'll find Hyatt discussing issues relating to the size of chunks of > memory retrieved to cache affecting performance in the archives, for > someone who clearly understands this. > > Certainly GNU Chess searches far faster if you disable hash > tables or shrink them to a size that fits (or nearly fits) into CPU cache, > since you lose the "check hash", and "store hash" calls with their slow > memory accesses. I had not realized that the "hashtable cache" and the CPU cache could operate at cross purposes... > > The real gain with hash tables is not searching from the same position if > it arises by transposition. It is only when the search is large enough > that savings through transpositions exceed the extra cost on store and > retrieve for each position. Is the evaluation of tactically complex middle game positions the primary benefi- ciary of "hashtables", then? > > Alas for humans this occurs in the order of a second or so on modern PC > processors. On older processors it was 5 to 10 seconds for GNU Chess, so > at very fast time controls it was better to switch off hash tables (except > in positions where transpositions were very common - typically endgames). On the subject of fast time controls, if one were to set the machine's time control at, say, Game in 30 mins and maintain the human time controls at classical specs (e.g., 40/2 hrs, 20/1hr, G/.5hr) would the degradation of computer play be significant with all this time that the computer will have to "think" while waiting for the human to...leisurely make his moves? > > Although as implied elsewhere in the thread, one can obsess about > performance of code, and miss the fact that better algorithmns are usually > a far bigger factor. Is it mainly the structure of the position evaluative function that you have in mind? > > Of course the real interest these days is how to co-ordinate > multiprocessors in searching efficiently, and good solutions to that > problem will no doubt pay off in other areas of computer science. Yes, from "co-operative multi-tasking" to "co-ordinated task-slicing"! 8 >) Major Cat
|
| | | |
Date: 25 Nov 2005 12:13:32
From: Johnny T
Subject: Re: CPU Speed and Program Time Controls
|
Major Cat wrote: > > > I have a follow on question then. Historically, > have chess programmers been writing their code > to take advantage of the CPU architecture of a > particular CPU generation or did they focus on > the operating system(s) that their software would > be running under instead, under the hypothesis, > perhaps, that an operating system is designed > to take advantage of particular classes or types > of hardware anyway? Very historically. Then it was found that compilers actually did good enough optimization that focusing on chess algorithms and letting the compilers do what they do resulted in the most ELO/programmer hours. There have been two notable exceptions, deep blue and hydra that threw specialized hardware at the problem, yet so far both camps have kept that hardware fairly secret. Opterons and Transmeta chips provide some interesting opportunities for creating CPU specific operations. Some Opterons appear to have enough registers and onboard cache that you could conceivably do large amounts of chess work ON-CHIP without having to go out to main memory. Transmeta chips could conceivably be used to run chess specific operations rather than strictly x86 code. Finally, it is quite possible that newer graphic processing cards could be used as either super fast move generators, or super fast position evaluators. (re-thinking the math so that it is expressed in shader programs and pixel space). But, due largely to Hydra, I suspect it will be a few years before there is any real motivation to be innovative in chess computer space. The match in Bilbao has shown that even just on a laptop that the current programs are tough enough. The community is going to have to take some time to adjust. I think there are some possibilities. Stock programs. (Programs that have to compete on a given piece of hardware, you may discover new algorithms). Unlimited Class (programs that can run on any given piece of hardware). Class programs (hardware costs at specific levels. This may result in clever development of software to certain pieces of hardware. Start at say 50 bucks and go up. Though the xbox may own the 299 classs). But for now, the race is over. Time to come up with a new race.
|
| | | | |
Date: 25 Nov 2005 18:15:38
From: Major Cat
Subject: Re: CPU Speed and Program Time Controls
|
Thank you very much for the technical enlightenment! 8 >) Major Cat Johnny T wrote: > > Major Cat wrote: > > > > > > I have a follow on question then. Historically, > > have chess programmers been writing their code > > to take advantage of the CPU architecture of a > > particular CPU generation or did they focus on > > the operating system(s) that their software would > > be running under instead, under the hypothesis, > > perhaps, that an operating system is designed > > to take advantage of particular classes or types > > of hardware anyway? > > Very historically. Then it was found that compilers actually did good > enough optimization that focusing on chess algorithms and letting the > compilers do what they do resulted in the most ELO/programmer hours. > > There have been two notable exceptions, deep blue and hydra that threw > specialized hardware at the problem, yet so far both camps have kept > that hardware fairly secret. > > Opterons and Transmeta chips provide some interesting opportunities for > creating CPU specific operations. Some Opterons appear to have enough > registers and onboard cache that you could conceivably do large amounts > of chess work ON-CHIP without having to go out to main memory. > Transmeta chips could conceivably be used to run chess specific > operations rather than strictly x86 code. Finally, it is quite > possible that newer graphic processing cards could be used as either > super fast move generators, or super fast position evaluators. > (re-thinking the math so that it is expressed in shader programs and > pixel space). > > But, due largely to Hydra, I suspect it will be a few years before there > is any real motivation to be innovative in chess computer space. The > match in Bilbao has shown that even just on a laptop that the current > programs are tough enough. > > The community is going to have to take some time to adjust. I think > there are some possibilities. Stock programs. (Programs that have to > compete on a given piece of hardware, you may discover new algorithms). > Unlimited Class (programs that can run on any given piece of > hardware). Class programs (hardware costs at specific levels. This may > result in clever development of software to certain pieces of hardware. > Start at say 50 bucks and go up. Though the xbox may own the 299 > classs). > > But for now, the race is over. Time to come up with a new race.
|
|