CPU thread assignment
Moderator: Site Moderators
Forum rules
Please read the forum rules before posting.
Please read the forum rules before posting.
-
- Posts: 111
- Joined: Fri Mar 20, 2020 12:07 pm
- Hardware configuration: Intel i9 9900KF @4.9GHZ
MSI Z390M Gaming OC
64GB G-Skill Ripjaw 3200
Gigabyte RTX2060 Super Gaming OC
NZXT Kraken X63 AIO
Corsair RM850
Samsung 1TB Evo Pro NVMe - Location: Qatar
CPU thread assignment
I have been told more than once that the GPU requires a single CPU thread to feed it with data
My 8C/16T i9 is being utilised between 9 and 10% by Core22 and that equates to more than a single thread, I am not folding on the CPU at all
Seems more than a single tread to me but the maths may not be as obvious as I suspect.
If I set processor affinity to one thread it maxes out at 100%, if I set to 2 threads it one is at around 40% and the other at 80% with sometimes one or the other reaching 100%. If I set to 3 threads is seems happiest with all 3 drifting between 40 and 60% util without maxing out.
I have noticed that if I do not CPU fold my GPU performs better, even more so now that I have the "client-type advanced" set on my GPU slot for Beta units.
Does this mean that a GPU requires more than a single thread to perform at its optimum?
GPU is an RTX 2080 Super.
My 8C/16T i9 is being utilised between 9 and 10% by Core22 and that equates to more than a single thread, I am not folding on the CPU at all
Seems more than a single tread to me but the maths may not be as obvious as I suspect.
If I set processor affinity to one thread it maxes out at 100%, if I set to 2 threads it one is at around 40% and the other at 80% with sometimes one or the other reaching 100%. If I set to 3 threads is seems happiest with all 3 drifting between 40 and 60% util without maxing out.
I have noticed that if I do not CPU fold my GPU performs better, even more so now that I have the "client-type advanced" set on my GPU slot for Beta units.
Does this mean that a GPU requires more than a single thread to perform at its optimum?
GPU is an RTX 2080 Super.
-
- Site Admin
- Posts: 8078
- Joined: Tue Apr 21, 2009 4:41 pm
- Hardware configuration: Mac Studio M1 Max 32 GB smp6
Mac Hack i7-7700K 48 GB smp4 - Location: W. MA
Re: CPU thread assignment
One CPU thread is sort of a minimum, very fast GPUs like your 2080 may require a full CPU core, i.e. 2 threads, to keep up. Some very large atom count WUs may briefly use even more CPU threads during the periodic checkpoint creation and sanity check in order to complete it in reasonable time.
So I think the best way to think of the "1 CPU thread per GPU" direction is that it is a "rule of thumb"; works for most cases and may need modification for the extremes.
What you may also see is that if you do decide to enable CPU folding again, restricting to using no more than the 8 cores / FPUs will have the least impact on GPU folding.
So I think the best way to think of the "1 CPU thread per GPU" direction is that it is a "rule of thumb"; works for most cases and may need modification for the extremes.
What you may also see is that if you do decide to enable CPU folding again, restricting to using no more than the 8 cores / FPUs will have the least impact on GPU folding.
-
- Posts: 111
- Joined: Fri Mar 20, 2020 12:07 pm
- Hardware configuration: Intel i9 9900KF @4.9GHZ
MSI Z390M Gaming OC
64GB G-Skill Ripjaw 3200
Gigabyte RTX2060 Super Gaming OC
NZXT Kraken X63 AIO
Corsair RM850
Samsung 1TB Evo Pro NVMe - Location: Qatar
Re: CPU thread assignment
Makes perfect sense, thanksJoe_H wrote:One CPU thread is sort of a minimum, very fast GPUs like your 2080 may require a full CPU core, i.e. 2 threads, to keep up. Some very large atom count WUs may briefly use even more CPU threads during the periodic checkpoint creation and sanity check in order to complete it in reasonable time.
So I think the best way to think of the "1 CPU thread per GPU" direction is that it is a "rule of thumb"; works for most cases and may need modification for the extremes.
What you may also see is that if you do decide to enable CPU folding again, restricting to using no more than the 8 cores / FPUs will have the least impact on GPU folding.
Will enable CPU folding when I setup the 3950 this weekend and assign 3/4's of the CPU to folding and the rest for general compute and GPU feed.
Re: CPU thread assignment
Because Gromacs (software for cpu units) abhors some large prime numbers and because as noted high range GPUs are greedy resource wise, I set my CPU to 12 a good stable number leaving 4 threads for my RTX 2080ti and never worry about bottlenecks, I could also run a 2nd CPU with 2 threads but decided it was better to run the CPU a little under than over.Juggy wrote:Makes perfect sense, thanksJoe_H wrote:One CPU thread is sort of a minimum, very fast GPUs like your 2080 may require a full CPU core, i.e. 2 threads, to keep up. Some very large atom count WUs may briefly use even more CPU threads during the periodic checkpoint creation and sanity check in order to complete it in reasonable time.
So I think the best way to think of the "1 CPU thread per GPU" direction is that it is a "rule of thumb"; works for most cases and may need modification for the extremes.
What you may also see is that if you do decide to enable CPU folding again, restricting to using no more than the 8 cores / FPUs will have the least impact on GPU folding.
Will enable CPU folding when I setup the 3950 this weekend and assign 3/4's of the CPU to folding and the rest for general compute and GPU feed.
i7 7800x RTX 3070 OS= win10. AMD 3700x RTX 2080ti OS= win10 .
Team page: https://www.rationalskepticism.org/viewtopic.php?t=616
-
- Posts: 111
- Joined: Fri Mar 20, 2020 12:07 pm
- Hardware configuration: Intel i9 9900KF @4.9GHZ
MSI Z390M Gaming OC
64GB G-Skill Ripjaw 3200
Gigabyte RTX2060 Super Gaming OC
NZXT Kraken X63 AIO
Corsair RM850
Samsung 1TB Evo Pro NVMe - Location: Qatar
Re: CPU thread assignment
My 3950X and Asus X570 I Gaming ITX arrived today but to my dismay I realised that the ITX board only has one USB header so I can either control my fan controller or my Kraken X63.
Will have to wait for a header splitter to arrive before I can setup fan curves and pump settings for my CPU
Will have to wait for a header splitter to arrive before I can setup fan curves and pump settings for my CPU

Re: CPU thread assignment
Threads on a CPU doesn’t really work the way many seem to think it does, since the whole thing is technically based on cores, where multiple threads within each core is more comparable to a switch that will alternate between the threads based on the activity.Juggy wrote:Does this mean that a GPU requires more than a single thread to perform at its optimum?
The point of it is to utilize each core better, since there will normally be some idle time when handling a single thread on a core, thus a second thread on the same core can steal some of the idle time from the first thread to make the second thread move forward at some speed instead of standing still waiting for full core access, which is why you will often see a very uneven utilization while looking at 2 threads running on 1 core.
Your entire system will use plenty of threads, more than the actual core/thread number your CPU has, to handle the various processes running on it, and they will all be moved around on the different cores with automatic load balancing, unless you force affinity.
Getting optimal conditions on a general use consumer system would require a decent amount of manual configuration to tweak and remove all the overhead everywhere, since there are many factors that play a part in the overall speed of things, like OS, Windows Defender messing it up on multiple cores in the background etc. etc., but in general the faster the GPU you have the more often it will communicate with the CPU, which again will communicate with RAM and whatnot, so the less load the CPU has to deal with when the GPU needs to talk the better, up to a point, and the faster a GPU process can get full access to a core the better, meaning the 1 thread your GPU process might be assigned to on a core might be on a core where the other thread is already active, which delays things a bit, resulting in lower GPU computational performance due to more idle time for the GPU.
Re: CPU thread assignment
Thoughts:-Juggy wrote:My 3950X and Asus X570 I Gaming ITX arrived today but to my dismay I realised that the ITX board only has one USB header so I can either control my fan controller or my Kraken X63.
Will have to wait for a header splitter to arrive before I can setup fan curves and pump settings for my CPU
you could use a standard micro-usb cable and plug it into one of the IO panel usb ports
you could plug the AIO fans into either your fan controller or the fan headers on the motherboard
Woohoo, first post.
-
- Posts: 111
- Joined: Fri Mar 20, 2020 12:07 pm
- Hardware configuration: Intel i9 9900KF @4.9GHZ
MSI Z390M Gaming OC
64GB G-Skill Ripjaw 3200
Gigabyte RTX2060 Super Gaming OC
NZXT Kraken X63 AIO
Corsair RM850
Samsung 1TB Evo Pro NVMe - Location: Qatar
Re: CPU thread assignment
Thanks for the explanation, I understand how that all works.Sparkly wrote:Threads on a CPU doesn’t really work the way many seem to think it does, since the whole thing is technically based on cores, where multiple threads within each core is more comparable to a switch that will alternate between the threads based on the activity.Juggy wrote:Does this mean that a GPU requires more than a single thread to perform at its optimum?
The point of it is to utilize each core better, since there will normally be some idle time when handling a single thread on a core, thus a second thread on the same core can steal some of the idle time from the first thread to make the second thread move forward at some speed instead of standing still waiting for full core access, which is why you will often see a very uneven utilization while looking at 2 threads running on 1 core.
Your entire system will use plenty of threads, more than the actual core/thread number your CPU has, to handle the various processes running on it, and they will all be moved around on the different cores with automatic load balancing, unless you force affinity.
Getting optimal conditions on a general use consumer system would require a decent amount of manual configuration to tweak and remove all the overhead everywhere, since there are many factors that play a part in the overall speed of things, like OS, Windows Defender messing it up on multiple cores in the background etc. etc., but in general the faster the GPU you have the more often it will communicate with the CPU, which again will communicate with RAM and whatnot, so the less load the CPU has to deal with when the GPU needs to talk the better, up to a point, and the faster a GPU process can get full access to a core the better, meaning the 1 thread your GPU process might be assigned to on a core might be on a core where the other thread is already active, which delays things a bit, resulting in lower GPU computational performance due to more idle time for the GPU.
Re: CPU thread assignment
Yeah,
I think a single core, with two threads, should not be considered as 2 cores (200% the performance of a single core).
Instead, depending on the process, 2 threads on 1 core usually perform about 133% to 150% of a single core without SMT/HT.
So there's a 33 to 50% better performance than using 1 core 1 thread.
If your GPU utilizes 80+40%(=120%) of a core with 2 threads, you'd have to divide the 120% by 133 to 150%; meaning, your GPU is only using 80 to 90% of the same core without HT/SMT enabled.
Unless you run your CPU at base clock (3 to 3,5Ghz), a 2080 Super should usually not load more than 66% of a single core running at 4Ghz.
I think a single core, with two threads, should not be considered as 2 cores (200% the performance of a single core).
Instead, depending on the process, 2 threads on 1 core usually perform about 133% to 150% of a single core without SMT/HT.
So there's a 33 to 50% better performance than using 1 core 1 thread.
If your GPU utilizes 80+40%(=120%) of a core with 2 threads, you'd have to divide the 120% by 133 to 150%; meaning, your GPU is only using 80 to 90% of the same core without HT/SMT enabled.
Unless you run your CPU at base clock (3 to 3,5Ghz), a 2080 Super should usually not load more than 66% of a single core running at 4Ghz.
-
- Posts: 111
- Joined: Fri Mar 20, 2020 12:07 pm
- Hardware configuration: Intel i9 9900KF @4.9GHZ
MSI Z390M Gaming OC
64GB G-Skill Ripjaw 3200
Gigabyte RTX2060 Super Gaming OC
NZXT Kraken X63 AIO
Corsair RM850
Samsung 1TB Evo Pro NVMe - Location: Qatar
Re: CPU thread assignment
Yeah, both have been tried. The Noctua fans I have are attached directly to the fan controller and I am using an old cellphone charging cable to connect directly from the pump to the rear USB but it doesn't read the pump statusaetch wrote:Thoughts:-Juggy wrote:My 3950X and Asus X570 I Gaming ITX arrived today but to my dismay I realised that the ITX board only has one USB header so I can either control my fan controller or my Kraken X63.
Will have to wait for a header splitter to arrive before I can setup fan curves and pump settings for my CPU
you could use a standard micro-usb cable and plug it into one of the IO panel usb ports
you could plug the AIO fans into either your fan controller or the fan headers on the motherboard
Woohoo, first post.

Will have to wait for my splitter
I am currently running a CPU WU on 28 threads and estimated PPD is 439000
-
- Posts: 111
- Joined: Fri Mar 20, 2020 12:07 pm
- Hardware configuration: Intel i9 9900KF @4.9GHZ
MSI Z390M Gaming OC
64GB G-Skill Ripjaw 3200
Gigabyte RTX2060 Super Gaming OC
NZXT Kraken X63 AIO
Corsair RM850
Samsung 1TB Evo Pro NVMe - Location: Qatar
Re: CPU thread assignment
Yeah, CPU is currently running at 4.2 all cores, GPU boosts to 1965mhz sometimesMeeLee wrote:Yeah,
I think a single core, with two threads, should not be considered as 2 cores (200% the performance of a single core).
Instead, depending on the process, 2 threads on 1 core usually perform about 133% to 150% of a single core without SMT/HT.
So there's a 33 to 50% better performance than using 1 core 1 thread.
If your GPU utilizes 80+40%(=120%) of a core with 2 threads, you'd have to divide the 120% by 133 to 150%; meaning, your GPU is only using 80 to 90% of the same core without HT/SMT enabled.
Unless you run your CPU at base clock (3 to 3,5Ghz), a 2080 Super should usually not load more than 66% of a single core running at 4Ghz.
-
- Posts: 111
- Joined: Fri Mar 20, 2020 12:07 pm
- Hardware configuration: Intel i9 9900KF @4.9GHZ
MSI Z390M Gaming OC
64GB G-Skill Ripjaw 3200
Gigabyte RTX2060 Super Gaming OC
NZXT Kraken X63 AIO
Corsair RM850
Samsung 1TB Evo Pro NVMe - Location: Qatar
Re: CPU thread assignment
Finally got my USB header splitter so have control of my Kraken pump again.
24t for folding generates 71 degrees celsius of heat which I am pretty happy with.
24t for folding generates 71 degrees celsius of heat which I am pretty happy with.