Assetto corsa CPU not normal utilization

Hello everybody, I have a problem with my assetto corsa, it's just use one core of my CPU (I7 9750h), some know how I can fix that ?
thanks
 
You can't do much. AC only really uses 2 threads under the best circumstances. It's unable to use more threads. So it is certainly possible the OS will put both of those threads on the same core.
 
Upvote 0
Yes, but the problem is not me being wrong in what I said, the problem is you misinterpreting what you see in the video (as the vast majority of people do, sadly). You're mistaking core activity with thread activity.

As stated, AC runs on two threads. It can't use more. However, this might manifest in different core activity based on many other criteria. Like I said, it is certainly possible the OS could put both of the active threads on a single core, even if it might be a bit unusual at least on certain configurations. What is seen in the video is certainly what I would consider more "normal", but even though more cores seem "active", it doesn't mean the game is using more than those two threads. It just means the OS is spreading those threads actively over more cores. The values in the video also only refresh once a second, making them even less useful than they normally are.

Only thing you can do is go to your AC folder into \system\cfg and check that you have

[PHYSICS_THREADING]
THREADS=-1

and

[THREADING]
SET_THREAD_AFFINITY_MASK=0

set like this. But these should be the defaults I believe.
 
Upvote 0
  • Deleted member 197115

Is it really 2 threads only?
I know rendering is one thread, physics is separate. What about AI behavior and physics?
It is known that multithreading is limited in AC but I have never seen exact number quoted before. Do you have reference to this info by any chance?
Thanks
 
Upvote 0
  • Deleted member 197115

That made me curious. Just checked, 52 threads with vanilla AC and 72-75 with CSP.
1582412112206.png
 
Upvote 0
  • Deleted member 197115

Code:
[THREADING]
USE_TIMER_PROCESS=-1
SET_THREAD_AFFINITY_MASK=0

[PHYSICS_THREADING]
THREADS=-1
 
Upvote 0
  • Deleted member 197115

Try to set THREADS to number of cores

Found description for those
[PHYSICS_THREADING]
THREADS=-1 ; -1 = automatic , 0 = disabled , 1...N number of threads dedicated to physics

[THREADING]
USE_TIMER_PROCESS=-1 ; -1=Automatic, no timer process for CPU with more than 2 cores, timer process for dual cores. 0=Always off. 1=Always on.
SET_THREAD_AFFINITY_MASK=0 ; 0=Windows scheduler will decide where to run the threads. 1=Main thread assigned to Core0, physics thread assigned to Core1
 
Upvote 0
@Andrew_WOT Well, of course the game doesn't create/use just two threads. I didn't mean it this literally. But look at the CPU utilization of those individual threads. Only two threads have significant CPU utilization. The rest is just inconsequential "breadcrumbs" any game/app will have. As far as the performance of your game, those two threads are all that matters - if they are maxed out or closed to maxed out (can't tell how close you are here without knowing what CPU you use), you will be CPU limited. Anything significant to the performance of the game is happening on those two threads. So only those two threads matter, and you can (IMO) say the game only really uses two threads. If you only enabled three cores on your CPU, the game's performance should be pretty much unaffected - because it only really utilizes two and a half (or so) threads/cores. Beyond that - it doesn't really matter how many cores you have, the game will technically not be using them for anything.


So is not realy normal that ac use juste 3 threads, I have test on a other pc a ac use 8 threads on 8

I suspect you are still confusing used threads with active cores. Even a single-threaded application might generate activity on say 8 or even more cores (in a simplistic example that's not very realistic, you might see 12% on all 8 cores instead of 100% on a single core). But it will still only effectively use one thread, so it will never be able to perform better than if it only had one core available exclusively for itself and only ran on that single core alone.

People frequently make the mistake of looking at core utilization and if they see activity on all 8 or nowadays even 16 cores, they claim the application/game is utilizing multiple cores and is well multithreaded. They fail to understand that you can't make any claim like this just by looking at core utilization. Those two things are more or less separate, but people mistakenly interchange them. Even benchmarkers and journalists frequently do this mistake, even big supposed experts like say Digital Foundry do this (and it's driving me nuts to see people that are considered top experts to make such a basic mistake and validate it in the eyes of their viewers/followers).
 
Upvote 0
@Andrew_WOT Well, of course the game doesn't create/use just two threads. I didn't mean it this literally. But look at the CPU utilization of those individual threads. Only two threads have significant CPU utilization. The rest is just inconsequential "breadcrumbs" any game/app will have. As far as the performance of your game, those two threads are all that matters - if they are maxed out or closed to maxed out (can't tell how close you are here without knowing what CPU you use), you will be CPU limited. Anything significant to the performance of the game is happening on those two threads. So only those two threads matter, and you can (IMO) say the game only really uses two threads. If you only enabled three cores on your CPU, the game's performance should be pretty much unaffected - because it only really utilizes two and a half (or so) threads/cores. Beyond that - it doesn't really matter how many cores you have, the game will technically not be using them for anything.




I suspect you are still confusing used threads with active cores. Even a single-threaded application might generate activity on say 8 or even more cores (in a simplistic example that's not very realistic, you might see 12% on all 8 cores instead of 100% on a single core). But it will still only effectively use one thread, so it will never be able to perform better than if it only had one core available exclusively for itself and only ran on that single core alone.

People frequently make the mistake of looking at core utilization and if they see activity on all 8 or nowadays even 16 cores, they claim the application/game is utilizing multiple cores and is well multithreaded. They fail to understand that you can't make any claim like this just by looking at core utilization. Those two things are more or less separate, but people mistakenly interchange them. Even benchmarkers and journalists frequently do this mistake, even big supposed experts like say Digital Foundry do this (and it's driving me nuts to see people that are considered top experts to make such a basic mistake and validate it in the eyes of their viewers/followers).

Very interesting Case_!

So as far as I understand can we say that an app is programed to have tasks "splited" in diferent threads, for example 4, and if you have a 4 core CPU each of this threads is procesed separately and simultaneously, but if the same app it´s not programed to have this tasks "splited" in four parts the system proceses the task in separate cores but not simultaneously? I don´t know if I´ve expressed/undertood myself clearly.
 
Upvote 0
@javiersm100 I guess you could say that. If the task is not multithreaded, then yes, it only runs on a single thread at a time, but can certainly be "juggled around" different threads by the system/hardware, it's just that at any given time, it will only be running on a single one. Though there are still ways to prevent this and have it run at a specific CPU thread continuously without being shuffled around.
 
Upvote 0
idk where i found the info and its prolly a late reply but u can go to task manager and go to details then go to acs.exe right click on it click on set affinity and click all cores or somthing and it use all cores. It happens to me too, but u can do that. Sometimes that all cores when u check it it wont be saved. so the next time u play it might be setagain to core 0 and 1
 
Upvote 0
Affinity only affects thread scheduling, it doesn't (and can't) affect how many threads an app is using. Using all cores is the default setting and there really should be no reason for a standard user to ever touch affinity. Any manual adjustments to affinity will almost always be detrimental.
 
Upvote 0
Back
Top