CPU thread assignment

A forum for discussing FAH-related hardware choices and info on actual products (not speculation).

Moderator: Site Moderators

Forum rules
Please read the forum rules before posting.

CPU thread assignment

Postby Juggy » Wed Jun 24, 2020 5:38 pm

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.
Image
Image
Juggy
 
Posts: 91
Joined: Fri Mar 20, 2020 1:07 pm
Location: Qatar

Re: CPU thread assignment

Postby Joe_H » Wed Jun 24, 2020 5:56 pm

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.
Image

iMac 2.8 i7 12 GB smp8, Mac Pro 2.8 quad 12 GB smp6
MacBook Pro 2.9 i7 8 GB smp3
Joe_H
Site Admin
 
Posts: 6450
Joined: Tue Apr 21, 2009 5:41 pm
Location: W. MA

Re: CPU thread assignment

Postby Juggy » Wed Jun 24, 2020 7:53 pm

Joe_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.


Makes perfect sense, thanks

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.
Juggy
 
Posts: 91
Joined: Fri Mar 20, 2020 1:07 pm
Location: Qatar

Re: CPU thread assignment

Postby kiore » Wed Jun 24, 2020 9:46 pm

Juggy wrote:
Joe_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.


Makes perfect sense, thanks

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.


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.
Image
i7 7800x GTX 1080ti GTX1660ti, OS= win10. AMD 3700x RTX 2080ti OS= win10

Team page: http://www.rationalskepticism.org/gener ... -t616.html
kiore
 
Posts: 827
Joined: Fri Jan 16, 2009 6:45 pm
Location: USA

Re: CPU thread assignment

Postby Juggy » Thu Jun 25, 2020 7:50 pm

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 :(
Juggy
 
Posts: 91
Joined: Fri Mar 20, 2020 1:07 pm
Location: Qatar

Re: CPU thread assignment

Postby Sparkly » Fri Jun 26, 2020 1:48 am

Juggy wrote:Does this mean that a GPU requires more than a single thread to perform at its optimum?

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.

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.
Sparkly
 
Posts: 73
Joined: Sun Apr 19, 2020 12:01 pm

Re: CPU thread assignment

Postby aetch » Fri Jun 26, 2020 2:52 am

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 :(


Thoughts:-
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.
aetch
 
Posts: 33
Joined: Thu Jun 25, 2020 4:04 pm

Re: CPU thread assignment

Postby Juggy » Fri Jun 26, 2020 4:35 am

Sparkly wrote:
Juggy wrote:Does this mean that a GPU requires more than a single thread to perform at its optimum?

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.

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.


Thanks for the explanation, I understand how that all works.
Juggy
 
Posts: 91
Joined: Fri Mar 20, 2020 1:07 pm
Location: Qatar

Re: CPU thread assignment

Postby MeeLee » Fri Jun 26, 2020 5:50 am

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.
MeeLee
 
Posts: 930
Joined: Tue Feb 19, 2019 11:16 pm

Re: CPU thread assignment

Postby Juggy » Fri Jun 26, 2020 8:52 am

aetch wrote:
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 :(


Thoughts:-
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.


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 status :(

Will have to wait for my splitter

I am currently running a CPU WU on 28 threads and estimated PPD is 439000
Juggy
 
Posts: 91
Joined: Fri Mar 20, 2020 1:07 pm
Location: Qatar

Re: CPU thread assignment

Postby Juggy » Fri Jun 26, 2020 8:54 am

MeeLee 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.


Yeah, CPU is currently running at 4.2 all cores, GPU boosts to 1965mhz sometimes
Juggy
 
Posts: 91
Joined: Fri Mar 20, 2020 1:07 pm
Location: Qatar

Re: CPU thread assignment

Postby Juggy » Wed Jul 01, 2020 1:09 pm

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.
Juggy
 
Posts: 91
Joined: Fri Mar 20, 2020 1:07 pm
Location: Qatar


Return to FAH Hardware

Who is online

Users browsing this forum: No registered users and 2 guests

cron