Author: Robert Hyatt
Date: 09:00:35 02/10/03
Go up one level in this thread
On February 09, 2003 at 22:56:59, Tom Kerrigan wrote: >On February 09, 2003 at 22:47:01, Robert Hyatt wrote: > >>The claim to fame for the sparc approach is simply "fast procedure calls". >>No register saving or restoring. It was a necessary trade-off since the >>first sparcs didn't have hardware integer multiply/divide which made procedure >>calls very frequent. > >Compilers that inline code and do "fastcalls" negate any benefit that register >windowing gives you. NO they do not. What about saving registers? NO way to avoid that, and on the sparc it costs exactly nothing unless you run out the top of the register stack and the O/S has to take a time-out to dump the stack to memory and reset. You can't inline _everything_. In particular, library calls, but also this includes plenty of stuff like search() as you don't inline recursive calls either. And big functions are another issue as I would not want my evaluation inlined in a dozen places or the code would be terribly cache-unfriendly. > >>>Doesn't matter for computer chess. Every program I know about (with the >>>exception of HIARCS) has a working set of < 256k. >>I have one that doesn't fit your working set limit... >>IE my attack lookup tables are 8 byte arrays of size [64][256] which turns > >You don't have to do some sort of thought experiment to try to figure out how >big your working set is. Just run your program on a certain processor and vary >its clock speed. If the program scales [more or less] linearly, your working set >is smaller than the CPU's caches. Come on. Suppose the working set is 500mb? It will very likely scale "linearly" anyway. Because _all_ memory references are going to be memory references. however, in the case of a specific program, it is not very difficult to see how cache friendly it is (assuming Intel processors here, as I don't know about AMD). Just set and then read the MSR stuff forcing it to count cache hits/misses. You can come up with some "ratio" that feels right to justify "most memory references are cache hits" if you want to... But for Crafty, it is even easier since the "kernel" or the program is not that many lines and it can be pretty easily measured. But the MSR stuff is the best way to determine this. > >-Tom
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.