Advice with using Process Lasso
Moderators: Site Moderators, FAHC Science Team
Advice with using Process Lasso
I came across the software Process Lasso on here today, so have it already installed on my Windows machine. I'm just curious if there are any benefits to using it, and how to. I use the Ryzen 3400G to feed my GTX 1650, don't have any performance issues with me using the computer for anything else. According to the Nvidia App, the GPU uses between 14-20% CPU. If there are any performance/efficiency gains to be had from using it, i'm all ears!
Re: Advice with using Process Lasso
By pinning threads to CPU cores, you can improve performance because the operating system will no longer be migrating the threads between cores. You'll want to make sure you don't put two threads on the same core. If at least one core is not folding, make it core 0, because the operating system likes to schedule things on core 0.
Re: Advice with using Process Lasso
So is this "CPU Affinities"? And am I adjusting FahCore_24.exe or FAHClient.exe? Surely FahCore will keep on changing depending on the core number?arisu wrote: ↑Sun Apr 27, 2025 3:33 am By pinning threads to CPU cores, you can improve performance because the operating system will no longer be migrating the threads between cores. You'll want to make sure you don't put two threads on the same core. If at least one core is not folding, make it core 0, because the operating system likes to schedule things on core 0.
I'm assuming I only need one thread for the GPU, so do you mean setting that as core 0?
Re: Advice with using Process Lasso
Actually, I may have figured it out, found this old yet useful link https://forums.evga.com/How-to-set-up-P ... 57005.aspx The software interface has changed since time of this post, but was pretty obvious to figure out.
I just set FahCore_24.exe to High priority, and set the Affinity to Always, CPU 7 (8 thread CPU).
Before, all 8 threads in Task Manager were constantly spiking as the GPU core was jumping back and forth. Now, it looks like this! https://imgur.com/a/dw9yKho
I guess I have to repeat this process for each FahCore number as it changes.
I just set FahCore_24.exe to High priority, and set the Affinity to Always, CPU 7 (8 thread CPU).
Before, all 8 threads in Task Manager were constantly spiking as the GPU core was jumping back and forth. Now, it looks like this! https://imgur.com/a/dw9yKho
I guess I have to repeat this process for each FahCore number as it changes.
-
- Posts: 1661
- Joined: Sun Dec 16, 2007 6:22 pm
- Hardware configuration: 9950x, 7950x3D, 5950x, 5800x3D
7900xtx, RX9070, Radeon 7, 5700xt, 6900xt, RX 550 640SP - Location: London
- Contact:
Re: Advice with using Process Lasso
Remember this change, and please don't post a new thread if or when things start breakingDemmers wrote: ↑Sun Apr 27, 2025 2:16 pm Actually, I may have figured it out, found this old yet useful link https://forums.evga.com/How-to-set-up-P ... 57005.aspx The software interface has changed since time of this post, but was pretty obvious to figure out.
I just set FahCore_24.exe to High priority, and set the Affinity to Always, CPU 7 (8 thread CPU).
Before, all 8 threads in Task Manager were constantly spiking as the GPU core was jumping back and forth. Now, it looks like this! https://imgur.com/a/dw9yKho
I guess I have to repeat this process for each FahCore number as it changes.

Yes, I understand "this works for me" people, but just saying, remember what you did and when, if things go south
Re: Advice with using Process Lasso
lol wise words!
In all seriousness though, I do agree, if I don't see any obvious improvements, i'll revert back.
Re: Advice with using Process Lasso
For HPC applications, CPU pinning is almost always recommended. It's not as important with GPU folding because there's only one thread, but it is always useful unless you're trying to pin two things to the same core.
It helps because there are fewer context switches (scheduler overhead) and because there are fewer L1 and L2 cache misses. The first reason is self-explanatory: Each time a thread has to move to another core, there's a brief delay as it switches. The second reason is a little more complex. CPUs usually have three levels of cache, L1, L2, and L3. Every core shares the L3 cache, but each core has its own L1 and L2. These caches store frequently-accessed memory. If an entry isn't in any of the caches, the core has to fetch it from main memory which is slow. If a thread keeps being moved around to different cores, then the new core will not have any of the data in its L1 or L2, and will have to fetch it from L3 or memory, which is slower. By keeping it on the same core, the cache always stays "hot".
But CPU pinning can be risky if you overdo it. The scheduler usually has a pretty good idea of where to move threads. It will never make a stupid decision, but it never makes great decisions either. By pinning threads to CPUs, you're telling the scheduler that you're going to make the decisions (for that thread). So you can make good decisions, but you can also make stupid decisions like trying to pin two very busy threads to the same physical core aka to two adjacent virtual cores (which is something the scheduler would know not to do). So just be aware of that, and don't pin two busy threads to one physical core.
Oh, and if you use an Intel CPU that has P-cores and E-cores, never pin to an E-core! Those are slow. And don't pin to core 0 if there are other available cores. But if you're just pinning the GPU thread to some core and that's the only thread that's pinned, nothing can go wrong.
It helps because there are fewer context switches (scheduler overhead) and because there are fewer L1 and L2 cache misses. The first reason is self-explanatory: Each time a thread has to move to another core, there's a brief delay as it switches. The second reason is a little more complex. CPUs usually have three levels of cache, L1, L2, and L3. Every core shares the L3 cache, but each core has its own L1 and L2. These caches store frequently-accessed memory. If an entry isn't in any of the caches, the core has to fetch it from main memory which is slow. If a thread keeps being moved around to different cores, then the new core will not have any of the data in its L1 or L2, and will have to fetch it from L3 or memory, which is slower. By keeping it on the same core, the cache always stays "hot".
But CPU pinning can be risky if you overdo it. The scheduler usually has a pretty good idea of where to move threads. It will never make a stupid decision, but it never makes great decisions either. By pinning threads to CPUs, you're telling the scheduler that you're going to make the decisions (for that thread). So you can make good decisions, but you can also make stupid decisions like trying to pin two very busy threads to the same physical core aka to two adjacent virtual cores (which is something the scheduler would know not to do). So just be aware of that, and don't pin two busy threads to one physical core.

Oh, and if you use an Intel CPU that has P-cores and E-cores, never pin to an E-core! Those are slow. And don't pin to core 0 if there are other available cores. But if you're just pinning the GPU thread to some core and that's the only thread that's pinned, nothing can go wrong.
-
- Site Moderator
- Posts: 6427
- Joined: Sun Dec 02, 2007 10:38 am
- Location: Bordeaux, France
- Contact:
Re: Advice with using Process Lasso
No need of Process Lasso unless you have a CPU with big.LITTLE architecture.Demmers wrote: ↑Sat Apr 26, 2025 10:28 pm I came across the software Process Lasso on here today, so have it already installed on my Windows machine. I'm just curious if there are any benefits to using it, and how to. I use the Ryzen 3400G to feed my GTX 1650, don't have any performance issues with me using the computer for anything else. According to the Nvidia App, the GPU uses between 14-20% CPU. If there are any performance/efficiency gains to be had from using it, i'm all ears!
Pinning GPU Fahcore to one thread/core will be counter productive as sanity checks that run on CPU are multi threaded.
Re: Advice with using Process Lasso
Great timing... I've just turned all my PL settings off! CPU Priority created too much latency, so I reverted that back to default (Idle).toTOW wrote: ↑Mon Apr 28, 2025 5:18 pmNo need of Process Lasso unless you have a CPU with big.LITTLE architecture.Demmers wrote: ↑Sat Apr 26, 2025 10:28 pm I came across the software Process Lasso on here today, so have it already installed on my Windows machine. I'm just curious if there are any benefits to using it, and how to. I use the Ryzen 3400G to feed my GTX 1650, don't have any performance issues with me using the computer for anything else. According to the Nvidia App, the GPU uses between 14-20% CPU. If there are any performance/efficiency gains to be had from using it, i'm all ears!
Pinning GPU Fahcore to one thread/core will be counter productive as sanity checks that run on CPU are multi threaded.
And Affinity was causing issues with my USB audio DAC (random loss of data). Reset that back from cores 6-7 to all cores.... EVERYTHING now runs smoother, i.e as they were.
Conclusion? Trust the software, v8.4.9 does exactly what it needs to do.... if you use an AMD chip at least!
Re: Advice with using Process Lasso
That's only if you pin the entire thread group, but if you only pin the thread then it will be the thread group leader, leaving the others free to use other cores when they need. The taskset syntax (I don't know Project Lasso syntax) would be "taskset -cp 7 $pid", not "taskset -acp 7 $pid" which would indeed be counter productive.toTOW wrote: ↑Mon Apr 28, 2025 5:18 pmNo need of Process Lasso unless you have a CPU with big.LITTLE architecture.Demmers wrote: ↑Sat Apr 26, 2025 10:28 pm I came across the software Process Lasso on here today, so have it already installed on my Windows machine. I'm just curious if there are any benefits to using it, and how to. I use the Ryzen 3400G to feed my GTX 1650, don't have any performance issues with me using the computer for anything else. According to the Nvidia App, the GPU uses between 14-20% CPU. If there are any performance/efficiency gains to be had from using it, i'm all ears!
Pinning GPU Fahcore to one thread/core will be counter productive as sanity checks that run on CPU are multi threaded.
Actually, I've been thinking Linux this whole time. Maybe it's very different on Windows.

Last edited by arisu on Mon Apr 28, 2025 9:45 pm, edited 1 time in total.
Re: Advice with using Process Lasso
Yeah there's no need to adjust priority. Priority determines when a process gets cycles relative to other processes, not how many it gets. A high priority is only important for processes that have brief bursts of CPU use that need to finish ASAP, like audio and video players.Demmers wrote: ↑Mon Apr 28, 2025 7:44 pmGreat timing... I've just turned all my PL settings off! CPU Priority created too much latency, so I reverted that back to default (Idle).toTOW wrote: ↑Mon Apr 28, 2025 5:18 pmNo need of Process Lasso unless you have a CPU with big.LITTLE architecture.Demmers wrote: ↑Sat Apr 26, 2025 10:28 pm I came across the software Process Lasso on here today, so have it already installed on my Windows machine. I'm just curious if there are any benefits to using it, and how to. I use the Ryzen 3400G to feed my GTX 1650, don't have any performance issues with me using the computer for anything else. According to the Nvidia App, the GPU uses between 14-20% CPU. If there are any performance/efficiency gains to be had from using it, i'm all ears!
Pinning GPU Fahcore to one thread/core will be counter productive as sanity checks that run on CPU are multi threaded.
And Affinity was causing issues with my USB audio DAC (random loss of data). Reset that back from cores 6-7 to all cores.... EVERYTHING now runs smoother, i.e as they were.
Conclusion? Trust the software, v8.4.9 does exactly what it needs to do.... if you use an AMD chip at least!
If "F" means folding, "A" means audio, and "|" means the time when there are a burst of audio samples to decode, it doesn't matter to science if your CPU process scheduling looks like FFFFF|AAAFFFFF or FFFFF|FFFFFAAA, but you'll certainly prefer the former where F is low priority!