Re: [eigen] Back from google

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


>> 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
benchmarks.

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:

void setBlockSizeForOneThread()
{
  setBlockSize(cpuCacheSize() / 4);
}

Again i dont think that having a binary library makes a difference
here, as soon as we can have global variables.

Benoit


>
>> 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.
>
> Benoit
>
>> Keir
>>>
>>>
>>> Benoit
>>>
>>>
>>
>>
>



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/