Quick fix: Right-click process in Task Manager → Set affinity. Pick which CPU cores it can use. Or PowerShell: $proc = Get-Process -Name "appname"; $proc.ProcessorAffinity = [System.IntPtr]::new(0x0F) (binary mask 0x0F = cores 0-3). For chronic: use shortcut with start /affinity or Process Lasso (free utility for persistent affinity).
CPU affinity: which cores a process can run on. Setting via Task Manager / PowerShell. Useful for: gaming (force game to performance cores), isolating busy app, video encoding workflows.
Affects: Windows 11.
Fix time: ~5 minutes.
What causes this need
Modern CPUs: Intel P-cores + E-cores (12th gen+), AMD CCX architecture. By default Windows distributes processes. Pinning useful when:
- Game needs P-cores for performance.
- Background task should use E-cores only.
- Specific process competing for resources.
- NUMA optimization (multi-socket).
Method 1: Task Manager Set affinity
The standard route.
- Open Task Manager (Ctrl+Shift+Esc).
- Switch to Details tab.
- Find process. Right-click → Set affinity.
- Checkbox per CPU core. Tick which cores process can use.
- For all CPU: tick “All Processors” (default).
- For P-cores only (Intel 12th gen): tick first 6-8 cores (P-cores are cores 0-N depending on CPU).
- For E-cores: tick remaining.
- OK.
- Process now restricted to chosen cores.
- Caveat: affinity resets when process restarts. For persistent: Method 2 or 3.
This is the standard fix.
Method 2: Use start /affinity for launch
For per-launch.
- Launch app with affinity set:
start /affinity 0F "C:\Path\to\app.exe"0F = hex for binary 1111 = cores 0-3.
- Affinity masks:
- 0x01 = core 0 only.
- 0x0F = cores 0-3.
- 0xFF = cores 0-7.
- 0xFFFFFFFF = first 32 cores.
- For specific cores: convert binary to hex. Bit 0 = core 0, etc.
- For shortcut: edit shortcut target to include start /affinity.
- For batch / scripts: include in launch script.
- For chronic apps: combine with shortcut.
This is the launch route.
Method 3: Process Lasso for persistent affinity
For automated long-term.
- Install Process Lasso (free trial / paid) from bitsum.com.
- For each app: configure affinity rules.
- Process Lasso auto-applies affinity each time app launches.
- Also offers: priority management, CPU affinity per process, energy saver.
- For chronic gaming: pin game to P-cores, background to E-cores. Configure once.
- For Intel Thread Director: Win11 should auto-handle on 12th gen+. But specific apps may benefit from manual pinning.
- For AMD CCX: pin to single CCD (8 cores per chiplet) to avoid cross-CCD latency.
- For chronic affinity needs: combination of Task Manager + Process Lasso + manufacturer’s utility (Intel APO, AMD Ryzen Master).
This is the automated route.
How to verify the fix worked
- Task Manager → Details → process → Set affinity shows current setting.
- CPU usage on chosen cores while process runs.
- Other cores: idle (if process is CPU-bound).
- Performance matches expected.
If none of these work
If affinity doesn’t persist: Process restart resets: use Method 2 or 3 for persistence. For multi-process apps: each subprocess has own affinity. Pin parent + children. For services: service affinity via Services.msc, registry, or services config. For Intel Thread Director on 12th gen+: Microsoft auto-pins via Thread Director. Manual pin may conflict. For AMD X3D chips: extra cache on one CCD. Pin gaming there. For chronic apps: Process Lasso. For DRM-protected apps: some games block affinity changes. Cannot pin.
Bottom line: Task Manager → Details → right-click process → Set affinity → pick cores. Or start /affinity 0F app.exe per launch. Process Lasso for persistent automated affinity rules.