|
![](/i/fill.gif) |
jhu schrieb:
> Actually I think the question applies to all renderers. I was wondering about
> this when I noticed one of my scenes was using up almost 3 GiB of memory. What's
> the time ratio between the CPU doing calculations and the CPU waiting for the
> data fetch to complete?
I just did an experiment which might give a hint:
My Intel i7 QuadCore machine provides hyperthreading, that is each core
can operate on two threads quasi-simultaneously, quickly switching
between them in case one of them needs to wait for some not-on-chip
component (such as main memory) to complete an operation.
Running with the default of 8 threads (i.e. fully utilizing the
hyperthreading mechanism), POV-Ray 3.7 beta took 54 seconds to complete
a particular scene.
Running with only 4 threads (i.e. utilizing all cores, but not
hyperthreading), the same scene took 87 seconds to complete.
I think this indicates that render threads do indeed spend quite some
time waiting for memory accesses to complete, otherwise hyperthreading
would not give much added benefit. OTOH I think it also shows that
memory latency (i.e. the time it takes to complete a particular memory
request) is more of an issue than memory bandwidth (i.e. the maximum
speed at which memory content can be read), as hyperthreading cannot
help with a memory bandwidth bottleneck either (it would only increase
the number of threads standing by for data from the main memory).
Post a reply to this message
|
![](/i/fill.gif) |