15 computer science collegians looking for a project

Jordan Crouse jordan.crouse at amd.com
Thu May 1 20:33:42 EDT 2008


On 02/05/08 01:14 +0100, Martin Dengler wrote:
> On Fri, May 02, 2008 at 01:35:21AM +0200, Reinier Heeres wrote:
> > Hi,
> > 
> > The problem you encountered was apparently caused by the compiler 
> > warning.
> 
> Thanks -- that was it!
> 
> > Renaming all instances of 'round' with something else resulted 
> > in the following here (also a C2):
> > 
> > [olpc at xo-0C-EC-18 ~]$ ./calibrator 431 4M callog
> > 
> > Calibrator v0.9e
> > (by Stefan.Manegold at cwi.nl, http://www.cwi.nl/~manegold/)
> > b790c008 -1215250424 4096 -4088
> > b790cfff -1215246337 4096    -1
> > b790d000 -1215246336 4096     0
> > 
> > MINTIME = 10000
> > 
> > analyzing cache throughput...
> >       range      stride       spots     brutto-  netto-time
> >     5242880           4     1310720       12472        3118
> > 
> > analyzing cache latency...
> >       range      stride       spots     brutto-  netto-time
> >     5242880           4     1310720      195660       97830
> > 
> > analyzing TLB latency...
> >       range      stride       spots     brutto-  netto-time
> >     1081344        1056        1024       10858        5429
> > 
> > 
> > CPU loop + L1 access:      19.81 ns =   9 cy
> >              ( delay:     959.51 ns = 414 cy )
> > 
> > caches:
> > level  size    linesize   miss-latency        replace-time
> >   1     64 KB   32 bytes   22.75 ns =  10 cy   23.15 ns =  10 cy
> >   2    192 KB   32 bytes   64.73 ns =  28 cy   76.50 ns =  33 cy
> > 
> > TLBs:
> > level #entries  pagesize  miss-latency
> >   1       80       4 KB   126.25 ns =  54 cy
> 
> I wonder why I got different results...

The program isn't perfect - it tries to figure out the size of the
cache based on the results it gets (i.e. - it presumes that it went
off the edge of the cache when the latency for the next size transation
goes up).  But since this is a userland application, it isn't completely
reliable - the results that you will get will have a lot to do with what
is currently in the cache, what other programs are running, what interrupts
you get during the run and so forth.

The calibrator app will generate some pretty graphs for you that show this
all in great detail - if you run them through gnuplot, you can see the 
values it got and how it did its math.  I recommend running it multiple
times on a quiet system until you get sizes and values that seem correct
(The ones above seem to be pretty decent).

Jordan




More information about the Devel mailing list