[hashcash] Re: Speed problem with 1.03 on Mac G4

  • From: hal@xxxxxxxxxx ("Hal Finney")
  • To: hashcash@xxxxxxxxxxxxx
  • Date: Sun, 22 Aug 2004 10:13:41 -0700 (PDT)

Adam writes:
> I put up pr4 (still has problems, tho
> less of them, but for discussion purposes):
>
>       http://www.hashcash.org/source/current/hashcash-1.03/
> ...
> btw In enabling the static selection I seem to have re-exposed this
> problem:
>
> ./hashcash -mb 16 -r foo
> collisions = 63800
> time estimate: 0 seconds (103 milli-seconds)
> ERROR: requested 16 bits, reported 16 bits, got 1 bits using AMD64/x86 MMX 
> Standard 1x2-pipe minter: "1:16:040816:foo::09bQn59OYq6RRjso:00000XtE"

I saw this too on my AMD machine, but doing "make 386" instead of "make
x86-mmx" fixed it.  Maybe the AMD does not have the MMX or the compiler
does not do it right for that architecture?

PR4 is slower than PR3.  The switches I am building with on PR4
are -O3 -funroll-lops -march=i386 -mcpu=i486.  Time to generate a
24 bit collision is estimated as 14 seconds, which is about right.

On PR3 it just uses -O -O3 -funroll-loops.  Time to generate a
24 bit collision is estimated as 6 seconds, which is also about
right.

However, fastmint-benchtest predicts that PR4 should be faster than
PR3.  It reports 4066833 with ANSI Compact 1-pipe.  On PR3 it reports
2950904 with ANSI Compact 2-pipe as the best.  PR3 fastmint-benchtest
predicts that 24 bits should take 5.685 seconds, which is about right.
PR4 fastmint-benchtest predicts 24 bits should take 4.125 seconds,
but it actually takes about 14.

This suggests that PR4 is not using the optimal minter in hashcash.
I also conclude that -mmmx does not work on my AMD 2800+, which is
probably either obvious or surprising.

Hal

Other related posts: