|
Post by subunit on Mar 13, 2017 6:16:05 GMT
So I'm playing around with guided missiles shot from conventional cannons, long range high RoF railguns, etc., and most of my combat engagements are slideshows. This is a little frustrating because my single core CPU use is never over 50%. I figured this was mainly due to the guided missiles, but at one point my crew module got depressurised with a shitload of them in flight, and suddenly everything was running smoothly again as the remaining missiles sailed on. I tried turning off dodge prediction but that didn't seem to help much. Is there something the crew is doing that is really computationally inefficient?
|
|
|
Post by vegemeister on Mar 13, 2017 11:53:46 GMT
Be aware that if you're looking at task manager, threads tend to get moved between cores a lot, so one thread using 100% of a core can look like 50% utilization of both cores, on a 2 core machine.
|
|
|
Post by subunit on Mar 13, 2017 17:01:03 GMT
Be aware that if you're looking at task manager, threads tend to get moved between cores a lot, so one thread using 100% of a core can look like 50% utilization of both cores, on a 2 core machine. I'm using a per-core rainmeter skin for HWinfo64- that's why I said single-core use is never over 50%. Total CPU use is never over 25%. Are you seeing 100% use on any of your cores? Maybe it's a hardware problem for me.
|
|
|
Post by vegemeister on Mar 13, 2017 17:40:11 GMT
Be aware that if you're looking at task manager, threads tend to get moved between cores a lot, so one thread using 100% of a core can look like 50% utilization of both cores, on a 2 core machine. I'm using a per-core rainmeter skin for HWinfo64- that's why I said single-core use is never over 50%. Total CPU use is never over 25%. Are you seeing 100% use on any of your cores? Maybe it's a hardware problem for me. With 180 missiles in flight, htop is showing me a little over 100% CPU from CDE.exe, which means a little more than one full core. Drilling down by threads, there's one thread using 100% of a core, one a little over 1%, and two more using less than 1%.
|
|
|
Post by subunit on Mar 13, 2017 17:41:10 GMT
I'm using a per-core rainmeter skin for HWinfo64- that's why I said single-core use is never over 50%. Total CPU use is never over 25%. Are you seeing 100% use on any of your cores? Maybe it's a hardware problem for me. With 180 missiles in flight, htop is showing me a little over 100% CPU from CDE.exe, which means a little more than one full core. Drilling down by threads, there's one thread using 100% of a core, one a little over 1%, and two more using less than 1%. OK, thanks for the info!! I'm going to have to investigate this more to figure out what the show-stopper is.
|
|
|
Post by bdcarrillo on Mar 14, 2017 2:08:44 GMT
I'm seeing 13.4% CPU usage, 353.1 MB of RAM, and 1 FPS with a handful of stock ships duking it out. My graphics card isn't even throttling up to full output, it's sitting happily at 1266 mhz and barely putting out any heat.
FX 8350 8 core 4 ghz processor, 4 gb RAM, RX 480 graphics card, 4k monitor.
Back when needle guns were flinging stuff at 200 kms, I had severe framerate issues on impacts.
|
|
|
Post by subunit on Mar 14, 2017 4:48:25 GMT
This does seem to be related to # of projectiles in flight for me. Initially, CPU use stays high (90+%) as I add projectiles, with frames gradually dropping off, as expected. As fps dips under 15 or so I start to see less and less CPU use until it's chugging along at 0-1fps and I'm wobbling between 25-50% CPU use on two cores. Weirdly, the process doesn't seem to reverse itself in the same way- frames and CPU use both stay very low until most of the projectiles are eliminated, and suddenly both come up when there are few projectiles still in flight. # of active enemies etc seems to exacerbate all this. I dunno if it's related to guidance as I can get it to happen with railguns, although it happens with many fewer missiles than railgun projectiles.
FWIW I'm running an i5-4670K at 4.7Ghz and a 1070 stock.
|
|
|
Post by bdcarrillo on Mar 14, 2017 11:06:55 GMT
I'd venture to say that it's clearly not on the graphics card at all, and is related to physics calcs on the volume of projectiles.
I tried making an extreme ROF conventional cannon and it was unplayable with only a couple thousand projectiles en route. I'd expect to see memory usage spike due to the coordinates and vector stored for each projectile, but total ram usage seems to stay very low and consistent.
So what exactly is bogging? Process handling? Excessive calls per physics tick? Massive floating point variables??
|
|
|
Post by subunit on Mar 16, 2017 1:53:01 GMT
Either I don't understand how reported thread CPU use in Process Explorer relates to per-core CPU loads, or there's something really weird going on with the CDE.exe main thread. It seems to constantly be reporting ~25% CPU use in Process Explorer (ie 1/4 cores fully loaded), but this doesn't seem to have anything to do with what the CPU is actually reporting on a per-core basis- if I'm just entering in the main menu or ship design screen, I've got two cores loaded 80-100% initially and I'm getting some thermal load. In a big battle the main CDE.exe thread is still reporting 25% CPU use, but the CPU is telling me those two cores are ~10-30% loaded and there's no thermal load.
|
|
|
Post by subunit on Mar 28, 2017 5:07:59 GMT
Doing a little more testing with this and I'm down to <10fps with <10k railgun projectiles in flight. I think I hit 0 fps ~15-20k projectiles, with two cores bouncing around between 25-50%. It's completely trivial to modify the stock 4mm capacitor railgun to be a sandblaster that puts out that many projectiles in the first few seconds of a fight from a multi-million projectile magazine, so I think this is a pretty grave issue for kinetics. I'm only hitting similar performance problems with 200-300 NEFP cannon projectiles in flight, which I think is less of an issue, but it does make composite payloads for cannons pretty useless. e: ok the two cores thing in this post and above is nonsense, I had a duplicated sensor I'm going to try to make a video with diagnostics visible so it's more obvious what I'm complaining about here.
|
|
|
Post by subunit on Mar 29, 2017 13:13:23 GMT
I'm an idiot, please feel free to delete this thread. I had thought I had CoaDE's main thread running solely on one core, but this was not the case- the result is that per-core usage looks low because the thread is being bounced around, and there's not much thermal load on any one core. If you force affinity on one core, you can see that CDE.exe's reported process use does correspond properly to the per core loading (ie, one core is being loaded to 100% throughout the slowdown).
I'm actually a little disappointed to discover this, as I thought if there were some bottleneck, it might be possible to substantially improve performance. As it is, it seems that most weapon systems are bounded as much by simulation performance as any design limit (missiles/drones by swarm size, kinetics by fire rate), and long range tactics are going to be hobbled by this. This is a real shame, as many of the likely answers to the questions that CoaDE poses are likely to be out of its reach. If there is some way to simplify calculations for large groups of projectiles, missiles, etc., I would strongly encourage prioritising those solutions almost over any other dev work that might go on.
|
|
|
Post by bdcarrillo on Apr 1, 2017 2:48:53 GMT
I wouldn't say we should toss this thread out... there are plenty of other folks with evidence and different situations where framerate tanks while the processor is under utilized
|
|
|
Post by subunit on Apr 1, 2017 8:05:09 GMT
Fair enough, feel free to use the thread for such issues. I would be interested in hearing what kinds of limits people are hitting with various weapons systems anyway, and whether anyone's been able to sort out if eg. dodging or other AI behaviours is having a significant impact, or whether the performance issues have got worse since the last update.
On a related note, if anyone can explain why after a certain number of projectiles, tracers stop rendering, I'd be interested to know. It seems like the projectiles are still being simulated, and with low FPS the GPU's not doing much anyway, so it doesn't seem like a performance-saving measure, but I'm not sure.
|
|