Does Indigo use any SSE or similar

General questions about Indigo, the scene format, rendering etc...
Gog
Posts: 77
Joined: Thu Jan 25, 2007 10:35 pm

Does Indigo use any SSE or similar

Post by Gog » Fri Nov 16, 2007 10:24 pm

OK, I just moved up to 1.0.3 from .9 and renders with glass using Cauchy not equal zero seem way slower then .9.

It got me thinking about whether the code is optimised to use any extended instruction sets and if so how optimised is it for newer chips? In the case in question I was rendering on my daughter's box which is an a old althlon 2500.

User avatar
OnoSendai
Developer
Posts: 6241
Joined: Sat May 20, 2006 6:16 pm
Location: Wellington, NZ
Contact:

Post by OnoSendai » Fri Nov 16, 2007 10:26 pm

Yes, Indigo does use some SSE.

Gog
Posts: 77
Joined: Thu Jan 25, 2007 10:35 pm

Post by Gog » Fri Nov 16, 2007 10:28 pm

Thanks Ono, so is it using a later revision i.e SSE 2 or SSE 3 that the old athlon won't support?

User avatar
OnoSendai
Developer
Posts: 6241
Joined: Sat May 20, 2006 6:16 pm
Location: Wellington, NZ
Contact:

Post by OnoSendai » Fri Nov 16, 2007 10:30 pm

Just SSE1 for the windows 32 bit builds.

User avatar
Kram1032
Posts: 6649
Joined: Tue Jan 23, 2007 3:55 am
Location: Austria near Vienna

Post by Kram1032 » Fri Nov 16, 2007 11:22 pm

In Linux and Win64, you also use others?

User avatar
lycium
Posts: 1216
Joined: Wed Sep 12, 2007 7:46 am
Location: Leipzig, Germany
Contact:

Post by lycium » Sat Nov 17, 2007 11:29 am

Kram1032 wrote:In Linux and Win64, you also use others?
amd64 implies sse and sse2 replacing x87 floating point (among other things).

User avatar
Kram1032
Posts: 6649
Joined: Tue Jan 23, 2007 3:55 am
Location: Austria near Vienna

Post by Kram1032 » Sat Nov 17, 2007 11:44 am

ah, I see

kadajawi
Posts: 257
Joined: Wed Mar 07, 2007 7:40 am

Post by kadajawi » Sat Nov 17, 2007 2:21 pm

I've done a little comparison.

Athlon 64 X2 3800+ @ 2.6 GHz, Dual Channel RAM @ 433 MHz, CL2.5
25450.12509 samples / second (39.29254 micro-seconds / sample)

Athlon 64 X2 3800+ @ 2.6 GHz, Single Channel RAM @ 433 MHz, CL2.5
24839.79544 samples / second (40.25798 micro-seconds / sample)

Athlon 64 X2 3800+ @ 2.7 GHz, Single Channel RAM @ 360 MHz, CL2.5
24235.37851 samples / second (41.26199 micro-seconds / sample)

My conclusions: RAM. Indigo depends on RAM speed. Make sure you have dual channel if possible, and as fast as possible. 73 MHz faster FSB is way faster than 100 MHz faster CPU. Wouldn't have expected that.

Athlon 64 3200+ @ 2.4 GHz, Single Channel RAM @ 200 MHz, CL2.5 (the X2 system before I installed the new CPU)
11154.04582 samples / second (89.65357 micro-seconds / sample)

Indigo scales nicely. What a suprise. ;)

Mobile Core Duo 2.0 GHz
17738.14436 samples / second (56.37568 micro-seconds / sample)

Core 2 Duo with 2.67 GHz, should be a E6750?
27104.94119 samples / second (36.89364 micro-seconds / sample)

The Intel results are really disappointing, usually they are way faster per MHz, but somehow the speed per MHz seems to be pretty much identical, at least in case of the C2D, I'm too lazy to calculate if the Core Duo is behaving that way too.

Comparisons were done with Indigo 1.0.3 and the same scene, the samples per second were taken after about 6 minutes.

Hm, maybe Ono could ask some who know how to optimize help him and do it... no need to make it open source for that.

User avatar
lycium
Posts: 1216
Joined: Wed Sep 12, 2007 7:46 am
Location: Leipzig, Germany
Contact:

Post by lycium » Sat Nov 17, 2007 2:31 pm

kadajawi wrote:I've done a little comparison.
interesting results, thanks :)
kadajawi wrote:73 MHz faster FSB is way faster than 100 MHz faster CPU. Wouldn't have expected that.
well, if one looks at the speedup obtained in the 64bit version due to decreased register pressure (and therefore decreased memory activity) then it falls quite neatly in place; i've found the same with my rendering programs in 32bit vs 64bit.
kadajawi wrote:The Intel results are really disappointing, usually they are way faster per MHz, but somehow the speed per MHz seems to be pretty much identical, at least in case of the C2D, I'm too lazy to calculate if the Core Duo is behaving that way too.
ehm, the mobile 2ghz core duo is almost twice as fast as the 2.4ghz x2. what's to calculate, the 2ghz mobile chip is smashing the 2.4ghz desktop one... i've found the same results in my measurements (upgraded from x2 to c2q recently).
kadajawi wrote:Hm, maybe Ono could ask some who know how to optimize help him and do it... no need to make it open source for that.
from what i know of ono, he's no slouch when it comes to optimisation :) indigo is fairly competitive with the state of the art, compared to maxwell i estimate it's (only) a factor of 2 slower. keep in mind the different development time and budget between the two when considering that ;)

kadajawi
Posts: 257
Joined: Wed Mar 07, 2007 7:40 am

Post by kadajawi » Sat Nov 17, 2007 3:53 pm

well, if one looks at the speedup obtained in the 64bit version due to decreased register pressure (and therefore decreased memory activity) then it falls quite neatly in place; i've found the same with my rendering programs in 32bit vs 64bit.
Switching to a 64bit Windows isn't that easy though, right? Can I run all my normal programs without a problem? Still, the driver problems, somehow I doubt my TV and soundcard have 64bit drivers.
ehm, the mobile 2ghz core duo is almost twice as fast as the 2.4ghz x2. what's to calculate, the 2ghz mobile chip is smashing the 2.4ghz desktop one... i've found the same results in my measurements (upgraded from x2 to c2q recently).
Hm? The 2.4 single core cpu has about 11k, as a dual core that would make 22k. The 2 GHz Core Duo makes 17k, so I don't think the Core Duo smashes the Athlons in Indigo, only if they outperform them MHz or corewise as your c2q does. Got a 1.66 GHz Core Duo as well, haven't been able to test it though. But since it has 512 MB of RAM, a 2.5" HDD and runs OS X (+VMWare + Windows XP) I don't expect it to perform very well. Should be swapping all the time. :(
from what i know of ono, he's no slouch when it comes to optimisation :) indigo is fairly competitive with the state of the art, compared to maxwell i estimate it's (only) a factor of 2 slower. keep in mind the different development time and budget between the two when considering that ;)
Hm... you're probably right, but I guess there is still more than enough work to be done, so he could delegate the "lower" work to other programmers. :twisted:

User avatar
lycium
Posts: 1216
Joined: Wed Sep 12, 2007 7:46 am
Location: Leipzig, Germany
Contact:

Post by lycium » Sat Nov 17, 2007 4:09 pm

kadajawi wrote:Switching to a 64bit Windows isn't that easy though, right?
well, i just put the cd in the drive :) that was like 3/4 years ago, since then i've upgraded this computer almost completely 3 times, and it still works for days and nights, months at a time, without any problems. i've never once applied a service pack or patch, don't use antivirus, and haven't had a single problem in all this time.
kadajawi wrote:Can I run all my normal programs without a problem?
yes.
kadajawi wrote:Still, the driver problems, somehow I doubt my TV and soundcard have 64bit drivers.
it's because most people feel there is "64bit voodoo" (see your question above ;)) and don't adopt it, that there aren't drivers for everything...

for printers and scanners and tv/radio cards having drivers isn't guaranteed.
kadajawi wrote:Hm? The 2.4 single core cpu has about 11k, as a dual core that would make 22k.
ah yes, forgot about the single/dual core. however: one won't necessarily find a 2x speedup - as you were saying earlier, memory speed makes quite a difference and this is especially true on a multicore system where there are many more cores to feed. however, before i upgraded i was testing indigo 64bit on a 2ghz core 2 duo laptop against my 2.5ghz x2 desktop - the laptop was still quite a lot faster, 10-20%, in spite of the mhz deficit and the fact that it was running with crutches (windows vista ;)).

it depends on what scenes you're rendering. stuff with high geometric complexity will burn more bandwidth due to incoherent traversal of dense k-d trees. the intel chips also have WAY more l2 cache, which is very important for multicore systems otherwise you feel essentially N times more memory pressure with N cores.

core 2 duo does sse twice as fast as the athlon64, so in compute-limited (cf. memory limited as i described earlier) situations it will probably nail the a64; most often it does, and that's why i switched in spite of being an amd supporter...
kadajawi wrote:Hm... you're probably right, but I guess there is still more than enough work to be done, so he could delegate the "lower" work to other programmers.
well, that there is the very reason why there are few renderers like indigo. a lot of people (myself included) can code mlt, spectral rendering, fast k-d tree traversal, texture filtering, ... the core tech. however, the funny thing with rendering systems is that the cpu and the artists live in completely different worlds: the cpu spends all its time in a relatively tiny part of the code, whereas the artists spend all their time in the vast majority of the code dedicated to file formats and usability features.

one man (or perhaps one woman, though unfortunately i've yet to see any evidence of this) can easily code a toy renderer, however it takes a one man army like nick to write a fleshed out rendering system on one's own ;)

User avatar
CTZn
Posts: 7240
Joined: Thu Nov 16, 2006 4:34 pm
Location: Paris, France

Post by CTZn » Sun Nov 18, 2007 3:07 am

Gog: these are the first 3 lines of a local log.txt, written right when Indigo starts:

Code: Select all

SSE present.
SSE2 present.
SSE3 not found.
obsolete asset

User avatar
Zom-B
1st Place 100
Posts: 4700
Joined: Tue Jul 04, 2006 4:18 pm
Location: ´'`\_(ò_Ó)_/´'`
Contact:

Post by Zom-B » Sun Nov 18, 2007 3:11 am

nice benchmark tests kadajawi , thanks for this!
lyc wrote:
Kram1032 wrote:In Linux and Win64, you also use others?
amd64 implies sse and sse2 replacing x87 floating point (among other things).
maybe Ono could confirm this!? in deed since all 64bit supporting processors are also capable of using SEE 1+2 (!!?), optimizing the 64bit builds for full SEE2 support shouldn't result in compatibility issues for older CPU's

so the question is are the 64bit Indigo build SEE2 optimized or not...?
polygonmanufaktur.de

User avatar
OnoSendai
Developer
Posts: 6241
Joined: Sat May 20, 2006 6:16 pm
Location: Wellington, NZ
Contact:

Post by OnoSendai » Sun Nov 18, 2007 3:29 am

Yes.

User avatar
lycium
Posts: 1216
Joined: Wed Sep 12, 2007 7:46 am
Location: Leipzig, Germany
Contact:

Post by lycium » Sun Nov 18, 2007 9:59 am

ZomB wrote:maybe Ono could confirm this!?
maybe a google search could confirm this?!

http://www.google.co.nz/search?q=amd64 and the first hit gives
http://en.wikipedia.org/wiki/X86-64#Arc ... l_features

Post Reply
17 posts

Who is online

Users browsing this forum: No registered users and 42 guests