Photoshop faster on 8700K without Hyperthreading

As for the multithreading of PhotoLab, here's a screenshot of Process Explorer while I was batch-processing multiple raw files using Prime NR:

Looks like it's making the CPU work pretty hard.
Looks like it's making the CPU work pretty hard.
Batch processing lots of images is the easiest way to use multi-cores. Even current versions of Lightroom employ multiple cores for exporting. Engaging all the hyperthreads is different than whether they are actually making things run faster or not. One would have to compare the performance of some operations with hyper threads enabled and then without on the same system to judge their effectiveness for that operation.
Interesting question, so I went looking for data. Didn't seen anything about hyperthreading on vs. off in PhotoLab specifically. :-(

I'm inclined to believe what Process Explorer appears to be showing, that all 12 threads are active and working in PhotoLab, because each thread shows a slightly different usage profile.

But if anyone has data showing that processing times are the same with and without hyperthreading enabled I'd be interested to see it.

I'm on my gaming boot drive right now; if I get curious enough I might do some tests tomorrow on the primary boot drive that has PhotoLab, with HT on vs. off.
I'd be curious what you find. From what I've read about Hyperthreads, there are some situations where they improve performance a bit and some situations where their extra overhead actually decreases performance a bit. It is very, very application-specific.
If an application isn't efficiently multithreaded HT isn't likely to be very useful.
I found it very interesting that Intel removed HT from the 8-core i7-9700k when compared to its predecessor, the 6-core i7-8700k and yet the 8-core i9-9900k has HT again. Odd. Maybe trying to position the i9-9900k as their server chip (multi-user/multi-task servers are probably more likely to benefit from HT) and the i7-9700k as a desktop chip. Not sure.
I think that Intel wants to sell Xeons for servers; my uneducated guess is that Intel just wants to charge a bundle for the i9-9900K and is saving the maximum features for it--Amazon price is $550 and it's out of stock. Ouch!
 
In a single user computer, it also seems like for hyperthreading on an 8-core CPU (like the 9700k) to even have a chance at being helpful, you'd have to run an app that was trying to do significant computation on more than 8 threads because with 8 or less threads active at once, you've already got a whole core just for each thread.

Multi-user servers with lots of active threads are a different situation entirely and that's where the needs of a workstation may be different than the needs of a server.

Since the i7-9700k now has 8 cores (up from 6 in the 8700k), perhaps the dropping of hyperthreads from the i7-9700k is a repositioning of that chip as a desktop chip, not a server chip and that may actually work to our a advantage as desktop users.
I don't know if Intel is leaning towards "hyperthreading=workstation" chips or not. Many of the lower end CPUs have HT but they are only dual cores. HT is across the lineup from bottom to top, would be hard to market that as a "premium" feature when older, low end i3 chips have it, yet a new high end i7 doesn't.
Yeah, you're right about that. I was just looking at the three chips I mentioned in my post.
Almost seems like Intel is trying to keep everything within a "thread range" on consumer level parts. All the mainstream chips now have between 4-8 threads (dual core with HT, 4, 6, and 8 core without HT) until you get to at least 9900K level and above with the X299 platform. Want more than 8 threads on Intel? Gotta really pay up for it.

That or Intel is keeping HT on more chips in their back pocket in case the next gen Ryzen parts really up the ante. Intel can switch back to HT and gain some performance back if needed. Competition can make for funny decisions sometimes. Overall it's great for us though! You could argue that Intel has made more progress on generation 8/9 alone than they did on 2 through 7, and it's thanks to AMD.
Here's a pretty interesting 2014 article with actual hyperthread test data from the Puget Sound Systems people who make custom computers (sometimes for use with Lightroom/Photoshop). It's a bit old, on older hardware, with older versions of Windows and on a 40 core server box so the data is not directly applicable to our running of a single app on a 6 or 8 core workstation CPU, but it's still a pretty interesting article. It definitely shows the downside of HT (worse performance with it turned on in some circumstances). One can't assume that graph/data applies to our exact situation though.

As I search for info on this topic, it appears that this subject has been long debated since Intel first introduced hyperthreading. They obviously think it does more good than harm (though some of the "good" could be mostly marketing benefit) or they wouldn't offer it, but even Intel doesn't seem very specific about exactly when it's great and when it's not. There are documented cases of it making things better and cases of it making things worse. One thing that is agreed upon is that when you have a number of threads active that are more than the number of physical cores, but less than the number of hyperthreads, it can make the scheduling between them fairer because it's the CPU hardware doing context switches between threads rather than the OS. If you have more threads active than the number of hyperthreads, the OS is still going to be involved anyway.

Here's a particularly useful article on how hyperthreading works and then it describes situations where it's most likely to benefit performance those where it's least likely to benefit performance. It very, very much depends upon the application design. Per this article and unfortunately for Photoshop and LR performance, one of the things that gets in the way of hyperthreading benefits is code that is frequently waiting for memory access, presumably since those are all serialized through the memory controllers anyway and Photoshop/LR tend to operate on largish sets of memory (image processing).

It appears we need some actual test data with modern hardware, modern versions of Windows and current versions of photo-related apps with hyperthreading on and off.

--
John
 
Last edited:
Is there anything in Photoshop that is really slow that needs to be sped up?

My only speed frustrations with Adobe are in Lightroom. The speed of culling is slow compared to Photo Mechanic.
 
As for the multithreading of PhotoLab, here's a screenshot of Process Explorer while I was batch-processing multiple raw files using Prime NR:

Looks like it's making the CPU work pretty hard.
Looks like it's making the CPU work pretty hard.
Batch processing lots of images is the easiest way to use multi-cores. Even current versions of Lightroom employ multiple cores for exporting. Engaging all the hyperthreads is different than whether they are actually making things run faster or not. One would have to compare the performance of some operations with hyper threads enabled and then without on the same system to judge their effectiveness for that operation.
Interesting question, so I went looking for data. Didn't seen anything about hyperthreading on vs. off in PhotoLab specifically. :-(

I'm inclined to believe what Process Explorer appears to be showing, that all 12 threads are active and working in PhotoLab, because each thread shows a slightly different usage profile.

But if anyone has data showing that processing times are the same with and without hyperthreading enabled I'd be interested to see it.

I'm on my gaming boot drive right now; if I get curious enough I might do some tests tomorrow on the primary boot drive that has PhotoLab, with HT on vs. off.
I'd be curious what you find. From what I've read about Hyperthreads, there are some situations where they improve performance a bit and some situations where their extra overhead actually decreases performance a bit. It is very, very application-specific.
Thank you for making me wonder about this enough to actually do a few tests just now.

This is with the most recent version of DxO PhotoLab 2:

I selected a batch of twelve 42Mp raw images and set the output to 16-bit TIFFs as usual. Hyperthreading was disabled/enabled in the BIOS of the desktop's Gigabyte X299 board.

Prime off, hyperthreading off: 1 minute 9 seconds.

Prime on, hyperthreading off: 9 minutes 15 seconds

Prime off, hyperthreading on: 55 seconds

Prime on, hyperthreading on: 7 minutes 38 seconds

So, if these results are valid, hyperthreading does benefit in this situation, but less than I would have guessed; looks like extra threads aren't as useful as other posters have mentioned extra cores are. Context switching costs, maybe? IDK.

I do not totally trust these results; being the lazy fellow I am, I only ran one set of trials. There may also be other factors involved I didn't consider, so I am not claiming this as being the infallible TRVTH. :-D Data from others would be welcome.
 
Last edited:
Interesting question, so I went looking for data. Didn't seen anything about hyperthreading on vs. off in PhotoLab specifically. :-(

I'm inclined to believe what Process Explorer appears to be showing, that all 12 threads are active and working in PhotoLab, because each thread shows a slightly different usage profile.

But if anyone has data showing that processing times are the same with and without hyperthreading enabled I'd be interested to see it.

I'm on my gaming boot drive right now; if I get curious enough I might do some tests tomorrow on the primary boot drive that has PhotoLab, with HT on vs. off.
I'd be curious what you find. From what I've read about Hyperthreads, there are some situations where they improve performance a bit and some situations where their extra overhead actually decreases performance a bit. It is very, very application-specific.
Thank you for making me wonder about this enough to actually do a few tests just now.

This is with the most recent version of DxO PhotoLab 2:

I selected a batch of twelve 42Mp raw images and set the output to 16-bit TIFFs as usual. Hyperthreading was disabled/enabled in the BIOS of the desktop's Gigabyte X299 board.

Prime off, hyperthreading off: 1 minute 9 seconds.

Prime on, hyperthreading off: 9 minutes 15 seconds

Prime off, hyperthreading on: 55 seconds

Prime on, hyperthreading on: 7 minutes 38 seconds

So, if these results are valid, hyperthreading does benefit in this situation, but less than I would have guessed; looks like extra threads aren't as useful as other posters have mentioned extra cores are. Context switching costs, maybe? IDK.

I do not totally trust these results; being the lazy fellow I am, I only ran one set of trials. There may also be other factors involved I didn't consider, so I am not claiming this as being the infallible TRVTH. :-D Data from others would be welcome.
I'm about to upgrade my whole computer to a new build (new motherboard, CPU, DRAM, etc...), but I thought I'd run a few simple exporting tests with Lightroom 6.14 before I decommission the computer. The current computer is an i7-3770k overclocked to 4.4GHz on an ASRock Z77 Extreme4 with 32GB DRAM overclocked to 1600MHz.

When exporting 100 images to JPEG, LR was about 9% faster with hyperthreading ON (average of 4 runs for each configuration). So, hyperthreading does actually improve the performance of that particular operation a small, but measurable bit.

When I watch the CPU utilization during the export, I see that the cores are NOT pegged at 100%. They hit 100% sometimes, but spend most of their time around 85%. So, my theory is this. If Lightroom is using blocking file I/O, then a given thread will get blocked during the file reading or writing of the data. This is where hyperthreads can help because they provide a more efficient context switching mechanism than OS-level threads (hyperthreading has a unique set of CPU registers for each hyperthread whereas OS-level threading has to save and restore registers on every thread switch). So, if you have threads that are not fully using their core (e.g. sleeping sometimes), then hyperthreads can be more efficient than OS-level threads because they provide more efficient context switches between the threads. Hyperthreading doesn't "add" any CPU horsepower, but rather creates an opportunity to use all the CPU horsepower you have a little more often than without it.

I'll look at this again when I get my new i7-9700k computer up and running.

--
John
 
Last edited:
Interesting question, so I went looking for data. Didn't seen anything about hyperthreading on vs. off in PhotoLab specifically. :-(

I'm inclined to believe what Process Explorer appears to be showing, that all 12 threads are active and working in PhotoLab, because each thread shows a slightly different usage profile.

But if anyone has data showing that processing times are the same with and without hyperthreading enabled I'd be interested to see it.

I'm on my gaming boot drive right now; if I get curious enough I might do some tests tomorrow on the primary boot drive that has PhotoLab, with HT on vs. off.
I'd be curious what you find. From what I've read about Hyperthreads, there are some situations where they improve performance a bit and some situations where their extra overhead actually decreases performance a bit. It is very, very application-specific.
Thank you for making me wonder about this enough to actually do a few tests just now.

This is with the most recent version of DxO PhotoLab 2:

I selected a batch of twelve 42Mp raw images and set the output to 16-bit TIFFs as usual. Hyperthreading was disabled/enabled in the BIOS of the desktop's Gigabyte X299 board.

Prime off, hyperthreading off: 1 minute 9 seconds.

Prime on, hyperthreading off: 9 minutes 15 seconds

Prime off, hyperthreading on: 55 seconds

Prime on, hyperthreading on: 7 minutes 38 seconds

So, if these results are valid, hyperthreading does benefit in this situation, but less than I would have guessed; looks like extra threads aren't as useful as other posters have mentioned extra cores are. Context switching costs, maybe? IDK.

I do not totally trust these results; being the lazy fellow I am, I only ran one set of trials. There may also be other factors involved I didn't consider, so I am not claiming this as being the infallible TRVTH. :-D Data from others would be welcome.
I'm about to upgrade my whole computer to a new build (new motherboard, CPU, DRAM, etc...), but I thought I'd run a few simple exporting tests with Lightroom 6.14 before I decommission the computer. The current computer is an i7-3770k overclocked to 4.4GHz on an ASRock Z77 Extreme4 with 32GB DRAM overclocked to 1600MHz.

When exporting 100 images to JPEG, LR was about 9% faster with hyperthreading ON (average of 4 runs for each configuration). So, hyperthreading does actually improve the performance of that particular operation a small, but measurable bit.
Very good; now we have a little more data about HT's effects. At this point, looks like HT has a small but definite advantage in at least some photo processing operations.

Given the variability of workloads, I'd think that each particular situation would need its own test to be sure.
When I watch the CPU utilization during the export, I see that the cores are NOT pegged at 100%. They hit 100% sometimes, but spend most of their time around 85%. So, my theory is this. If Lightroom is using blocking file I/O, then a given thread will get blocked during the file reading or writing of the data. This is where hyperthreads can help because they provide a more efficient context switching mechanism than OS-level threads (hyperthreading has a unique set of CPU registers for each hyperthread whereas OS-level threading has to save and restore registers on every thread switch). So, if you have threads that are not fully using their core (e.g. sleeping sometimes), then hyperthreads can be more efficient than OS-level threads because they provide more efficient context switches between the threads. Hyperthreading doesn't "add" any CPU horsepower, but rather creates an opportunity to use all the CPU horsepower you have a little more often than without it.

I'll look at this again when I get my new i7-9700k computer up and running.
Looking forward to seeing your results.
 
One more simple test on my i7-3770 that is overclocked to 4.4GHz.

Build 1:1 previews of 100 images in LR 6:

Hyperthreading on: 1:58
Hyperthreading off: 2:16

So, it was 15% slower with hyperthreading off. So, on this particular computer/processor, LR6 is faster with hyperthreading on for both exporting images and building previews.

I have found no evidence that LR6 is faster with hyperthreading off.
 
One more simple test on my i7-3770 that is overclocked to 4.4GHz.

Build 1:1 previews of 100 images in LR 6:

Hyperthreading on: 1:58
Hyperthreading off: 2:16

So, it was 15% slower with hyperthreading off. So, on this particular computer/processor, LR6 is faster with hyperthreading on for both exporting images and building previews.
I'd think 15% is quite worthwhile; that's about what I'd expect to get with a moderate overclock, and I'd guess that any power consumption increase with hyperthreading would be a good deal less than with a comparable overclock.
I have found no evidence that LR6 is faster with hyperthreading off.
Good news for LR users with hyperthreading CPUs.
 
One more simple test on my i7-3770 that is overclocked to 4.4GHz.

Build 1:1 previews of 100 images in LR 6:

Hyperthreading on: 1:58
Hyperthreading off: 2:16

So, it was 15% slower with hyperthreading off. So, on this particular computer/processor, LR6 is faster with hyperthreading on for both exporting images and building previews.
I'd think 15% is quite worthwhile; that's about what I'd expect to get with a moderate overclock, and I'd guess that any power consumption increase with hyperthreading would be a good deal less than with a comparable overclock.
I have found no evidence that LR6 is faster with hyperthreading off.
Good news for LR users with hyperthreading CPUs.
Yeah, for the kind of code that LR6 uses for export and preview building which seems to fire up a whole bunch of threads to work in parallel, hyperthreading is actually improving things a meaningful amount. It's not just a marketing gimmick - it does really work.

Now, I'm wondering why they took hyperthreading out of the new i7-9700k. Maybe just to give the i9-9900k a smidge more differentiation? Don't know.
 
Yeah, for the kind of code that LR6 uses for export and preview building which seems to fire up a whole bunch of threads to work in parallel, hyperthreading is actually improving things a meaningful amount. It's not just a marketing gimmick - it does really work.

Now, I'm wondering why they took hyperthreading out of the new i7-9700k. Maybe just to give the i9-9900k a smidge more differentiation? Don't know.
My cynical guess is that it's for the extra $140 they can get for the i9 vs. i7. ;-)
 
Yeah, for the kind of code that LR6 uses for export and preview building which seems to fire up a whole bunch of threads to work in parallel, hyperthreading is actually improving things a meaningful amount. It's not just a marketing gimmick - it does really work.

Now, I'm wondering why they took hyperthreading out of the new i7-9700k. Maybe just to give the i9-9900k a smidge more differentiation? Don't know.
My cynical guess is that it's for the extra $140 they can get for the i9 vs. i7. ;-)
Yeah. But, at least the i7-9700k single core speed is still ~5% faster than the previous generation i7-8700k and it now has 8 real cores vs. 6 so it's multi-core speed still wins by a good margin.

So, they made the new chip faster, just perhaps not as fast as they could have if they had included hyperthreading too.

There do appear to be a lot of top-level gamers going for the i9-9900k so the marketing ploy to increase revenue by creating the i9 series may be working. I didn't go for the i9-9900k because it was a bunch of money for not a lot of additional performance (only like 3% in single core performance) and the early reports are that it runs hotter so you can't overclock the i9-9900k as much as you can the i7-9700k, negating some or all of that delta if you're overclocking.
 
One more simple test on my i7-3770 that is overclocked to 4.4GHz.

Build 1:1 previews of 100 images in LR 6:

Hyperthreading on: 1:58
Hyperthreading off: 2:16

So, it was 15% slower with hyperthreading off. So, on this particular computer/processor, LR6 is faster with hyperthreading on for both exporting images and building previews.
I'd think 15% is quite worthwhile; that's about what I'd expect to get with a moderate overclock, and I'd guess that any power consumption increase with hyperthreading would be a good deal less than with a comparable overclock.
I have found no evidence that LR6 is faster with hyperthreading off.
Good news for LR users with hyperthreading CPUs.
Yeah, for the kind of code that LR6 uses for export and preview building which seems to fire up a whole bunch of threads to work in parallel, hyperthreading is actually improving things a meaningful amount. It's not just a marketing gimmick - it does really work.

Now, I'm wondering why they took hyperthreading out of the new i7-9700k. Maybe just to give the i9-9900k a smidge more differentiation? Don't know.
Yes, the newest versions of Lightroom seem to be much better optimised for additional cores/threads. Hyperthreading may really help a quad core here. LR6 didn't have these optimizations yet, but maybe it still applies.


Seems such benefits have not carried over to Photoshop yet.
 
Yeah, for the kind of code that LR6 uses for export and preview building which seems to fire up a whole bunch of threads to work in parallel, hyperthreading is actually improving things a meaningful amount. It's not just a marketing gimmick - it does really work.

Now, I'm wondering why they took hyperthreading out of the new i7-9700k. Maybe just to give the i9-9900k a smidge more differentiation? Don't know.
My cynical guess is that it's for the extra $140 they can get for the i9 vs. i7. ;-)
Yeah. But, at least the i7-9700k single core speed is still ~5% faster than the previous generation i7-8700k and it now has 8 real cores vs. 6 so it's multi-core speed still wins by a good margin.

So, they made the new chip faster, just perhaps not as fast as they could have if they had included hyperthreading too.

There do appear to be a lot of top-level gamers going for the i9-9900k so the marketing ploy to increase revenue by creating the i9 series may be working. I didn't go for the i9-9900k because it was a bunch of money for not a lot of additional performance (only like 3% in single core performance) and the early reports are that it runs hotter so you can't overclock the i9-9900k as much as you can the i7-9700k, negating some or all of that delta if you're overclocking.
Indeed, heat can still be the limiting factor in overclocking, even with the new soldered thermal interface material on the latest CPUs.

I haven't looked into this myself, as I'm not planning a system upgrade yet. Though I do hear the siren song of "newer! and faster!" on occasion. ;-)
 
Last edited:

Keyboard shortcuts

Back
Top