Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Source code to measure it - there is something wrong

Author: Robert Hyatt

Date: 17:08:57 07/15/03

Go up one level in this thread


On July 15, 2003 at 17:58:01, Gerd Isenberg wrote:

>Ok, i think there is one problem with Vincent's cache benchmark.
>
>There are two similar functions DoNrng and DoNreads. DoNrng is used to mesure
>the time without hashread. But the instructions has the potential of faster
>execution due to less dependencies and stalls. It may execute parts of two loop
>bodies of DoNrng interlaced or simultaniesly - that is not possible in DoNreads.
>Therefore the time for N DoNrng is not the time used inside the N DoNrng loop,
>and maybe much faster.

That is also certainly possible.  This kind of "problem" is highly
obfuscated, as you can see.  It requires a lot of analysis, by a lot of
people, to see the flaws.  That's why lm-bench is so respected.  It was
written, a paper was written about it, another paper was written that
pointed out some flaws, some of which were fixed and some of which were
not really flaws.  But it has been pretty well looked at by a _lot_ of
people.

Other latency measures may well be as accurate, but until they "pass the
test of time and exposure" they are hard to trust.

>
>
>int DoNrng(BITBOARD n) {
>  BITBOARD i=1,dummyres,nents;
>  int t1,t2;
>
>  nents = nentries; /* hopefully this gets into a register */
>  dummyres = globaldummy;
>
>  t1 = GetClock();
>  do {
>    BITBOARD index = RanrotA()%nents;
>    dummyres ^= index;
>  } while( i++ < n );
>  t2 = GetClock();
>
>  globaldummy = dummyres;
>  return(t2-t1);
>}
>
>int DoNreads(BITBOARD n) {
>  BITBOARD i=1,dummyres,nents;
>  int t1,t2;
>
>  nents = nentries; /* hopefully this gets into a register */
>  dummyres = globaldummy;
>
>  t1 = GetClock();
>  do {
>    BITBOARD index = RanrotA()%nents;
>    dummyres ^= hashtable[index];
>  } while( i++ < n );
>  t2 = GetClock();
>
>  globaldummy = dummyres;
>
>  return(t2-t1);
>}



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.