|Re: [eigen] Back from google|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Back from google
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Wed, 4 Nov 2009 03:57:03 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type; bh=Ucy3g4lzK35ZRM7b27b8rD5RPAK/wIk7fuBWHR/JR0A=; b=Uoh2WQxvM6wDS8Upt7dcDq29glIOVa6Id0rDDrB1BzJGLMIt8FYnwE5lmFYlqGu6qA +I87QDrezggW+zxrV8jLo/ONZnK8zDPSJBomKoAP0sDQARzJne0OlC2PUViM1UwBRuBQ 6Oe/RTlZB+FTtsoNc/j7DZ3IJQZRL8/CMyWFE=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=x+6WXjq/063sfsS363ddi8MK7Juc/bVUDGsYzJdhNHqDfwGVj2pfhXBpR4OHfVZKrv BlFr24s0IwTWJ0WggFmGzy0PtN4EN5KNP8cwqKfGj1nhreSDK476BAEkAqdSsb+YeEV7 KrB1krjsbOFiTPYIFBKItOLyKP5t8qXsnwtCY=
>> This would also open the door to us determining cache
>> sizes at startup, so the user doesn't have to.
> Correct me if i'm wrong, as i'm really not an expert, but i thought
> that knowing the CPU cache size only was enough information if we can
> count on having all the CPU cache for ourselves in 1 single thread,
> right? In general, it seemed to me that only the user could tell how
> much cpu cache we could count on using. So, how is it useful to
> determine the cpu cache size automatically?
OK, rethinking about this: the case when the app assumes to be the
only memory-traffic-intensive process running, is already an important
special case to support, and in particular allows to look good in
So we could offer a convenience feature to get the cpu cache size and
let the user divide it by his favorite constant (roughly 4*N where N
is the expected number of threads doing calculations) to get the value
to pass to eigen. The name EIGEN_TUNE_FOR_CPU_CACHE_SIZE would have to
be changed then, that would rather look like:
Eigen::setBlockSize(int bytes) // use blocks of up to `bytes`
so we could implement:
setBlockSize(cpuCacheSize() / 4);
Again i dont think that having a binary library makes a difference
here, as soon as we can have global variables.
>> It's extra maintenance, but
>> going forward it may be required if we wish Eigen to get used in prebuilt
>> software. For example, consider packages depending on Eigen compiled for
>> debian, or libmv when eventually bundled with blender.
> I do understand that the current solution of having the cache size
> known at build time, is not satisfactory :)
>> There was another item brought up by a Googler, who couldn't make lunch,
>> which was that there aren't any benchmarks on the wiki comparing sparse
>> performance. It would be nice if the benchmark suite included comparisons
>> against, e.g. gmm++ and ublas. I realize most of the solvers are implemented
>> by other backends, but things like sparse matrix multiplication is still
>> done natively.
> ---> that would be nice indeed! And an accessible "junior job" for
> someone wanting to contribute! The next question is if that can be
> done in BTL, that i dont know.
>> Thanks for joining us for lunch!
> Thanks a ton for the invitation!
> Everyone: Google offices are up to their reputation, the place is a
> sort of hacker paradise with palm trees, free food, and technical chat
> all over the place, from what i could see.