Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

Note that the UNROLL option makes the 'inner' des loop unroll all 16 rounds
instead of the default 4.
RISC1 and RISC2 are 2 alternatives for the inner loop and
PTR means to use pointers arithmetic instead of arrays.

FreeBSD - Pentium Pro 200mhz - gcc 2.7.2.2 - assembler		577,000 4620k/s
IRIX 6.2 - R10000 195mhz - cc (-O3 -n32) - UNROLL RISC2 PTR	496,000 3968k/s
solaris 2.5.1 usparc 167mhz?? - SC4.0 - UNROLL RISC1 PTR [1]	459,400 3672k/s
FreeBSD - Pentium Pro 200mhz - gcc 2.7.2.2 - UNROLL RISC1	433,000 3468k/s
solaris 2.5.1 usparc 167mhz?? - gcc 2.7.2 - UNROLL 		380,000 3041k/s
linux - pentium 100mhz - gcc 2.7.0 - assembler			281,000 2250k/s
NT 4.0 - pentium 100mhz - VC 4.2 - assembler			281,000 2250k/s
AIX 4.1? - PPC604 100mhz - cc - UNROLL 				275,000 2200k/s
IRIX 5.3 - R4400 200mhz - gcc 2.6.3 - UNROLL RISC2 PTR		235,300 1882k/s
IRIX 5.3 - R4400 200mhz - cc - UNROLL RISC2 PTR			233,700 1869k/s
NT 4.0 - pentium 100mhz - VC 4.2 - UNROLL RISC1 PTR		191,000 1528k/s
DEC Alpha 165mhz??  - cc - RISC2 PTR [2]			181,000 1448k/s
linux - pentium 100mhz - gcc 2.7.0 - UNROLL RISC1 PTR		158,500 1268k/s
HPUX 10 - 9000/887 - cc - UNROLL [3]	 			148,000	1190k/s
solaris 2.5.1 - sparc 10 50mhz - gcc 2.7.2 - UNROLL		123,600  989k/s
IRIX 5.3 - R4000 100mhz - cc - UNROLL RISC2 PTR			101,000  808k/s
DGUX - 88100 50mhz(?) - gcc 2.6.3 - UNROLL			 81,000  648k/s
solaris 2.4 486 50mhz - gcc 2.6.3 - assembler			 65,000  522k/s
HPUX 10 - 9000/887 - k&r cc (default compiler) - UNROLL PTR	 76,000	 608k/s
solaris 2.4 486 50mhz - gcc 2.6.3 - UNROLL RISC2		 43,500  344k/s
AIX - old slow one :-) - cc -					 39,000  312k/s

Notes.
[1] For the ultra sparc, SunC 4.0 
    cc -xtarget=ultra -xarch=v8plus -Xa -xO5, running 'des_opts'
    gives a speed of 344,000 des/s while 'speed' gives 459,000 des/s.
    I'll record the higher since it is coming from the library but it
    is all rather weird.
[2] Similar to the ultra sparc ([1]), 181,000 for 'des_opts' vs 175,000.
[3] I was unable to get access to this machine when it was not heavily loaded.
    As such, my timing program was never able to get more that %30 of the CPU.
    This would cause the program to give much lower speed numbers because
    it would be 'fighting' to stay in the cache with the other CPU burning
    processes.