On Mon, May 11, 2009 at 12:43 PM, Tim Soderstrom
<[email protected]> wrote:
>
> Right so the question is - what is more important to cache in L1/L2/L3 -
> Drizzle or the data it is operating on? I'm thinking the latter. Does
> unrolling loops really help all that much if the data we need to work on
> isn't in the cache? If the code footprint is smaller, that means we can put
> more data into cache. Besides, it's harder to control the caching of data (I
> would think) than controlling the code foot-print.
>
It is important to remember that on any relatively modern CPU there
are separate caches for code, data, and memory lookups. This is just
one of the reasons that micro benchmarks are interesting and do tell
part of the story, there is so much going on in the CPU (the various
caches, instruction reordering, branch prediction, and pipelining to
name a few!) that they are just as often deceiving. For example,
picking the microbench shows that 'the best way to do a memcpy' is 50%
faster than the next best way could be relegated completely useless
(as far as time elapsed goes) by getting pipelined into oblivion.

I'm mainly just wanting to reemphasie the importance of making
performance decisions based on the results of actual usage scenarios
inside of Drizzle.

-Nathan

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to