From: Joe Perches <joe@perches.com>
To: dean gaudet <dean@arctic.org>
Cc: Harvey Harrison <harvey.harrison@gmail.com>,
Alexander van Heukelum <heukelum@mailshack.com>,
Alexander van Heukelum <heukelum@fastmail.fm>,
Ingo Molnar <mingo@elte.hu>, Andi Kleen <andi@firstfloor.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: Alternative implementation of the generic __ffs
Date: Fri, 18 Apr 2008 19:55:28 -0700 [thread overview]
Message-ID: <1208573728.11990.14.camel@localhost> (raw)
In-Reply-To: <alpine.DEB.1.10.0804181810500.6108@twinlark.arctic.org>
On Fri, 2008-04-18 at 18:11 -0700, dean gaudet wrote:
> have you benchmarked it?
I modified Alexander's benchmark:
http://lkml.org/lkml/2008/4/18/267
to include 32 and 64 bit variants called smallest.
On an old ARM:
$ gcc --version
gcc (GCC) 3.4.6
$ cat /proc/cpuinfo
Processor : Intel StrongARM-110 rev 4 (v4l)
BogoMIPS : 262.14
Hardware : Rebel-NetWinder
Revision : 57ff
Serial : 000000000000185c
$ gcc -Os -fomit-frame-pointer ffs.c
$ ./a.out
Original: 3180 tics, 8379 tics
New: 4280 tics, 8890 tics
Smallest: 4027 tics, 7835 tics
Empty loop: 1543 tics, 2260 tics
$ gcc -O2 -fomit-frame-pointer ffs.c
$ ./a.out
Original: 3161 tics, 7843 tics
New: 4778 tics, 8783 tics
Smallest: 4408 tics, 7149 tics
Empty loop: 1515 tics, 2140 tics
$ gcc -O3 -fomit-frame-pointer ffs.c
$ ./a.out
Original: 3078 tics, 7692 tics
New: 4714 tics, 8671 tics
Smallest: 4344 tics, 7117 tics
Empty loop: 1444 tics, 2024 tics
On my old laptop:
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 Mobile CPU 1.60GHz
stepping : 4
cpu MHz : 1200.000
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm up
bogomips : 2400.03
clflush size : 64
$ gcc --version
gcc (GCC) 4.3.0
$ gcc -Os -fomit-frame-pointer ffs.c
$ ./a.out
Original: 901 tics, 1426 tics
New: 862 tics, 1244 tics
Smallest: 911 tics, 1331 tics
Assembly: 208 tics, 402 tics
Empty loop: 208 tics, 304 tics
$ gcc -O2 -fomit-frame-pointer ffs.c
$ ./a.out
Original: 918 tics, 1386 tics
New: 872 tics, 1193 tics
Smallest: 906 tics, 1309 tics
Assembly: 202 tics, 396 tics
Empty loop: 207 tics, 299 tics
$ gcc -O3 -fomit-frame-pointer ffs.c
$ ./a.out
Original: 865 tics, 1389 tics
New: 852 tics, 1183 tics
Smallest: 907 tics, 1296 tics
Assembly: 200 tics, 390 tics
Empty loop: 211 tics, 296 tics
next prev parent reply other threads:[~2008-04-19 2:56 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-31 17:15 [PATCH] x86: generic versions of find_first_(zero_)bit, convert i386 Alexander van Heukelum
2008-03-31 17:22 ` Stephen Hemminger
2008-03-31 19:38 ` Alexander van Heukelum
2008-03-31 21:58 ` Andi Kleen
2008-04-01 8:47 ` Ingo Molnar
2008-04-01 9:46 ` Alexander van Heukelum
2008-04-01 15:41 ` [PATCH] x86: switch x86_64 to generic find_first_bit Alexander van Heukelum
2008-04-01 15:42 ` [PATCH] x86: optimize find_first_bit for small bitmaps Alexander van Heukelum
2008-04-01 15:47 ` [PATCH] x86: remove x86-specific implementations of find_first_bit Alexander van Heukelum
2008-04-03 9:34 ` Alexander van Heukelum
2008-04-04 8:47 ` Ingo Molnar
2008-04-06 17:03 ` [PATCH] x86: generic versions of find_first_(zero_)bit, convert i386 dean gaudet
2008-04-06 18:51 ` Alexander van Heukelum
2008-04-06 20:22 ` dean gaudet
2008-04-07 8:43 ` Ingo Molnar
2008-04-07 10:25 ` Alexander van Heukelum
2008-04-18 20:18 ` Alternative implementation of the generic __ffs Alexander van Heukelum
2008-04-18 23:46 ` dean gaudet
2008-04-19 0:09 ` Harvey Harrison
2008-04-19 0:20 ` dean gaudet
2008-04-19 0:58 ` Joe Perches
2008-04-19 1:04 ` Harvey Harrison
2008-04-19 1:11 ` dean gaudet
2008-04-19 2:55 ` Joe Perches [this message]
2008-04-19 4:13 ` dean gaudet
2008-04-19 10:05 ` Mikael Pettersson
2008-04-19 12:10 ` Alexander van Heukelum
2008-04-19 18:17 ` Joe Perches
2008-04-19 20:26 ` Alexander van Heukelum
2008-04-19 22:29 ` Matti Aarnio
2008-04-20 3:06 ` Joe Perches
2008-04-20 8:42 ` Alexander van Heukelum
2008-04-20 12:31 ` Matti Aarnio
2008-04-21 11:43 ` Alexander van Heukelum
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1208573728.11990.14.camel@localhost \
--to=joe@perches.com \
--cc=andi@firstfloor.org \
--cc=dean@arctic.org \
--cc=harvey.harrison@gmail.com \
--cc=heukelum@fastmail.fm \
--cc=heukelum@mailshack.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.