Messages in this thread | | | Date | Thu, 1 May 2003 16:26:43 +0200 | From | Willy TARREAU <> | Subject | Re: [RFC][PATCH] Faster generic_fls |
| |
On Thu, May 01, 2003 at 04:14:17PM +0200, Falk Hueffner wrote: > Willy TARREAU <willy@w.ods.org> writes: > > > On Thu, May 01, 2003 at 03:05:57PM +0800, hugang wrote: > > Ok, I recoded the tree myself with if/else, and it's now faster than > > all others, whatever the compiler. > > Have you tried with not simply increasing, but random numbers? I guess > this could make quite a difference here because of branch prediction.
I thought about this, and indeed, that's what I used in the program I used to bench the first function I sent yesterday. The problem of the random, is that it's so slow that you must build a giant table and apply your tests to this table. So the problem mainly displaces to data cache misses which cost more than certain operations. If you try it, you'll note that it's difficult to get comparable results twice.
Other solutions include non-linear suites such as mixing some sequential values with BSWAP. Eg: x ^ bswap(x) ^ bswap(x << 4).
Willy
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |