Re: Fastcode CompareMem B&V



Hi Pierre

You need to argue your points, not just claiming something.

> 1) Arrays to be compared are not initialized, so the number of compare
> iterations needed to hit the first mismatch is down to luck. This badly
> affects the scoring depending in which order the entries are benchmarked.

SetLength initializes all data to zero?

> 2) The largest compare is up to 1000 bytes. There should be a benchmark
with
> a larger range.

Can you argue that case further. We need to know more about compare sizes in
the real world

These constants define the compare sizes.

MAXMEMLENGTH : Integer = 1000;
SPLITMEMSIZE : Integer = 100;

It is very easy to change that.

This is what happens when nobody cares to help me write the benchmarks or at
least have alook at them in proper time.

> 3) P1 and P2 are always aligned exactly the same, so if you align reads
from
> P1 then they will automatically also be aligned for P2.

Aligned at what address?

Mem1 and Mem2 are 4 byte aligned by SetLength via the MM in D2005.

The innerloop could be written as

for Align1 := 0 to 15 do
for Align2 := 0 to 15 do
begin
P1 := @Mem1[Align1];
P2 := @Mem2[Align2];
CompRes := CompareMemFunction(P1, P2, MemLength);
end;

from

for Align := 0 to 15 do
begin
P1 := @Mem1[Align];
P2 := @Mem2[Align];
CompRes := CompareMemFunction(P1, P2, MemLength);
end;

> 4) The number of bytes to compare (the third parameter) is monotonically
> increased in each benchmark run, thus putting no pressure on the branch
> predictor in places where the CompareMem routine needs to branch depending
> on the number of bytes to compare.

At which compare lengths would you branch and how much is the cost af a
mispredicted branch versus the number of clocks necessary to compare those
bytes?

> 5) The data to compare is exactly the same for all compares in a given
> benchmark (of which there are only 2), all that differs is the compare
> length. There should be greater variety in the input data.

Why? A Compare is not depending on which data to compare.

> 6) There should be benchmarks with purposely constructed long sequences of
> data that are the same with the exception of a single mismatch somewhere.

Why?

> Validation seems to be in a much much better state than the benchmarks.
>
> I think these are points we should look at in the coming year. For now I
am
> happy to take the points ;-).

You have not seen all other entries :-)

Regards
Dennis C.


.



Relevant Pages

  • Re: [fbsd] Re: (Another) simple benchmark
    ... default worker type for windows. ... While I agree this kind of benchmark is worth doing in order to compare ... performances of the Apache package and the underlying OS. ...
    (freebsd-performance)
  • Re: benchmarking FC1
    ... You want to compare different hardware plattforms with FC1 installed or ... don't think there are benchmark kits out for testing Gnome/KDE ... Fedora GNU/Linux Core 1 on Athlon CPU kernel 2.4.22-1.2149.nptl ...
    (Fedora)
  • Re: Fastcode CompareMem B&V
    ... > increased in each benchmark run, thus putting no pressure on the branch ... > on the number of bytes to compare. ... A compare should be terminated on matches and mismatches with 50% ... Deadline for 2005 B&V's was passed at 12/12. ...
    (borland.public.delphi.language.basm)
  • Re: My own small benchmark
    ... Didn't send it twice, sorry! ... Any benchmark is testing and comparing the systems on its overall ... I wanted to compare them by the efficiency, ... In some computer-magazins there are comparisions by needed ...
    (comp.lang.pascal.delphi.misc)
  • My own small benchmark
    ... Any benchmark is testing and comparing the systems on its overall ... I wanted to compare them by the efficiency, ... In some computer-magazins there are comparisions by needed ... power or TDP per GHz or something but tact per time? ...
    (borland.public.delphi.non-technical)