On 14-09-29 02:55 PM, Karsten wrote:
> Hi all,
>
> I'm thinking, about a new PC and therefor also new CPU. From which king of CPU
> darktable will benefit most? More cores or more GHz?
>
> For example:
>
> Intel Core i7-4790K, 4x 4.00GHz, in Germany 298 Euro
> Intel Core i7-5930K, 6x 3.50GHz, in Germany 510 Euro
> Intel Core i7-5960X, 8x 3.00GHz, in Germany 898 Euro
>
> Does darktable benefits enough from the real cores to justify the higher
> price?

As an aside to the GPU discussion, in general terms the more cores you 
fit onto a chip (and thus into a single system board socket) the less 
performance you can get out of each core, and the more cores an 
algorithm is spread over, in general, the less efficient it becomes 
per-core, even though the overall performance is better than a single 
core. Each core on a chip shares cache with the other cores, as well as 
all the buses out to memory and other hardware, so each core starts 
colliding with other cores, especially for access to memory.

As a very loose rule of thumb you can estimate a chip's average 
performance by assuming that all GHz are equal and then reduce the 
effective GHz by 10% (or multiply by 0.9) for every core over 1. That 
is, 2 4GHz cores gives you 2 * 4 * 0.9 = 7.2GHz equivalent performance, 
not 8GHz. Thus in your examples above:

4 x 4 * (0.9^3) = 11.7GHz
6 x 3.5 * (0.9^5) = 12.4GHz
8 x 3 * (0.9^7) = 11.47GHz

In general the performance reduction is greater when each core is 
running different code (more memory and cache collisions) and less when 
running the same code on the same memory area so when running Darktable 
it very much depends how the code works - if it uses multiple threads on 
the same areas of memory at the same time (closely-coupled) then the 
performance will be better, if each thread works on different areas of 
memory the performance will be lower (because each thread will be 
fetching different areas of memory and there will be a lot of cache 
churn and the cores will spend a lot of their time just waiting for 
memory transfers).

If you don't know your code is well-designed for multicore then favour 
high GHz and lower number of cores. In the figures above even if the 
code is very well-designed for multicore the price of the 8-core chip 
makes me suspect you're not going to get value for money. And if you're 
pushing most stuff out to your GPU via OpenCL then it doesn’t matter anyway.

Take these figures with a huge grain of salt, and I'll obviously defer 
to the DT developers who may have some real-world experience with DT 
code on various multicore chips.

>
> Regards
> Karsten
>
>
>
>
>
> ------------------------------------------------------------------------------
> Slashdot TV.  Videos for Nerds.  Stuff that Matters.
> http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk
> _______________________________________________
> Darktable-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/darktable-users
>


------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
Darktable-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/darktable-users

Reply via email to