snapsy Offline Upload & Sell: On
|
stanj wrote:
It hasn't actually changed the level of parallelism, ever. The only exception is LR6 export which now uses 30% more CPU, but that's not something to brag about. Indeed, take the example of importing: my CF card goes at 100MB/s plus, as does my target drive, but nope, just a trickle. So is it processing? Nope, the CPU is only fractionally loaded. Thrashing, maybe? Nope, there's no RAM pressure either. DB contention? No that's not it either (I once put the catalog into a ramdisk for no avail). I know from a reliable source that ACR by itself is thread safe, so even without any changes to ACR itself, you could brute force it and run several decoder instances at the same time. Nope, that's not happening either.
I make my money with writing highly parallel systems and LR is a head scratcher to me. It has been clear for a decade (for longer than LR has existed) that we won't get much faster clocks but rather more cores, and yet there's no sign of improvement. Some generations are actually slower than the previous ones. So I'm not holding my breath....Show more →
Thread safety is relatively easy esp if designed into the architecture from the beginning - finding a way to parallelize ACR/LR's long image processing pipeline is a lot more challenging - based on hints Eric Chan (Adobe ACR engineer) has dropped, many of those steps must be performed in sequence and they're not presently coded in a way to easily divide the work even within individual steps. A lesser challenge even with just the demosaicer is dividing the data-intensive work across threads in a manner that wont thrash L1/L2. I've done a lot of work in that latter area in my embedded firmware designs, on processors with much smaller caches and thus more challenging. I think Adobe will get there but it'll be a lot of small incremental steps.
Btw if you're curious here are some perf measurements I did on LR6:
The Export module is making better use of multiprocessing. Here is a comparison of CPU utilization between LR5.7 and LR6 for multi-file D800 export:
LR5.7 vs LR6 CPU Utilization
LR5.7 vs LR6 Thread Utilization
And a measurement of GPU use in the develop module:
GPU utilization using an adjustment brush with only the exposure slider set and GPU HW queue
|