|Re: [eigen] benchmarking weirdness|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] benchmarking weirdness
- From: Christian Mayer <mail@xxxxxxxxxxxxxxxxx>
- Date: Sat, 05 Jan 2008 17:43:46 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:reply-to:user-agent:mime-version:to:subject:references:in-reply-to:x-enigmail-version:content-type:content-transfer-encoding:sender; bh=p17+A56vO+YJz6915e5/o7csM3XHBX8AgSqcaOd7nGg=; b=hdzrBy/FeS7SqS3EAubhp/mzhwYBkk1ZU7p2qg9pqtCIdKYhBwy2TynnulOMdDvuUCmFuwmjWZ90lx5kL/U+f8nYMNAmzNoPrqTdj8zKeUl4FqeLDGizCePkaEn+TGjWlbPQATuEWIkTQPNHV4hTIgwgNwTmsOnbgMtUvfX7Wzk=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:reply-to:user-agent:mime-version:to:subject:references:in-reply-to:x-enigmail-version:content-type:content-transfer-encoding:sender; b=dxfGFOe1fz2a7rDJS6nfRAUqa1OBdIqYdGATY82nzO+p0jaQQbW0U6GhVrLTwf8zj7p6XmZ5XNUB8neFnouabgBSehmVWAPOgM6G780/1CHF8z0lryHXXLrui4IBDU3+8oMIs9rsmleT0TJVC+L8fEHpvGzs6Ka1vttlBZd4NN4=
-----BEGIN PGP SIGNED MESSAGE-----
Gael Guennebaud schrieb:
> Also, seeing the benchmark code, I don't think that any cache miss
> occurs since you only have two matrices.
"Think" is a very bad guide when it comes to performance optimization.
Onlöy real measurements can count as it's far too easy to make things
worse by over optimizing (especially true when it comes to manual loop
You must not only take care about cache misses for the data but also
about cache misses for the instructions (that's where loop unrolling can
really bite you).
You also must have a look at register useage which can be thought as a
"level 0" cache. Especially changing between row and column major can
make a huge difference here.
And at the end (IIRC VTune can also tell you that) a huge performance
difference can be achieved by optimization of the branch prediction.
> I would also suggest to bench with different compilers, the results
> might be very different. However, eigein2 is currently not compatible
> with ICC.
That's sad and we should fix it ASAP. ICC is a very good compiler when
it comes to optimal performance. It's also quite good at auto
vectorisation which is crucial for SSE useage (unless you are doing it
by hand with intrinsics)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
-----END PGP SIGNATURE-----