[hashcash] Re: cpu detection, disabling mmx code on non mmx cpu (Re: Re: status of hashcash version 1?)

  • From: Jean-Luc Cooke <jlcooke@xxxxxxxxxxxxxx>
  • To: hashcash@xxxxxxxxxxxxx
  • Date: Thu, 5 Aug 2004 11:36:51 -0400

You can get the "hasher" and "hashsum" C source I demo'd below here:
  http://www.certainkey.com/resources/hasher.php
  http://www.certainkey.com/resources/hashsum.php

CPU Info I was getting 1.25 MegaSHA1/sec using only ANSI-C:
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 6
model name      : AMD Athlon(tm) XP 1700+
stepping        : 2
cpu MHz         : 1460.471
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov 
pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow
bogomips        : 2916.35

On Thu, Aug 05, 2004 at 11:22:51AM -0400, Jean-Luc Cooke wrote:
> My my MD5 ASM libs are of any help, please use them (CVS instructions below).
> I have X86 (ALU, MMX, SSE2 and interwoven mixes of the three), PPC (ALU,
> AltiVec and interwoven), SPARC, Alpha.

>   http://www.md5crk.com/?sec=howhelp
> 
> I have MD5 rates posted here:
>   http://www.md5crk.com/?sec=speeds
> 
> Though I know hashcash doesn't use MD5 (good for you!) the ASM files may be
> of some use to you.
> 
> Also, I wrote a JavaApplet/JavaScript implementation of Hashcash for use with
> Web-Based email applications; removing the load of computing hashcash's to
> the client.  The Pure JavaScript version is over 100 times slower than the
> "JavaScript calling a method in the Java Applet" version.
> 
> What is the performance you're getting from ANSI-C sha1 libs?  I have a full
> generic message digest algorithm library which computes 1.25 Million SHA-1
> transforms per second (sample code below):
> 
>  { time_t start, end;
>   sha1_init(&CTX);
>   time(&start);
>   for (i=0; i<10000000; i++)
>     sha1_update(&CTX, 
> "0123456701234567012345670123456701234567012345670123456701234567", 64);
>   time(&end);
>   sha1_final(D, &CTX);
>   printf("delta = %lu\n", end-start);
>  }
> 
> Other than providing code which you already have.  How can I help?
> 
> JLC

Other related posts: