Jump to content

Can someone tell me why I am wrong? (single threaded physx?)


Cannibal

Recommended Posts

Based on the information provided he has a QX9300, or an i7-860, I find it unlikely he has an E5630.

And after consulting MechJeb, I had miscounted, 10 FPS at 100, 3 FPS at 300, after changing the delta-t setting to 0.03

Edited by Astronut25
Link to comment
Share on other sites

You guys should go to my CPU performance thread and try my rocket. If you really are getting performance improvements from using a physX card then it should be easy to measure in comparison to similar CPU's. And if anyone is getting only 1 FPS with only 200 parts then something is wrong. Even the lowliest mobile CPU's can do better than that. Do you have the physics slider pushed all the way to the right?

http://forum.kerbalspaceprogram.com/showthread.php/42877-CPU-Performance-Database

Link to comment
Share on other sites

I was told that the PhysX card doesn't work for the same reason as the GPU, but something is up. I've got a more powerful CPU than you but I can't get more than 1 FPS with a vessel of more than 200 parts.

Would you be willing to test if it really is the PhysX card, like try to play KSP after removing it?

I would absolutely love to test this. But I can't. Regrettably, I had a momentary lapse of sanity about 3 or 4 years ago, and I bought an Alienware m17x at an illogical price. It's somewhat elderly now, and I'm not willing to pop the case on that thing. It's probably the only thing holding the crumbs inside together.

If it isn't the PhysX card, I've no idea why I can go so big with the part counts. I have 8GB ram, which is nice, but isn't the bottleneck. I have an outdated Core 2 Quad Duo Extreme something at 2.53GHz. The only other thing it might hilariously be would be Windows 8, and I only say that because I know it commands less system resources and I noticed better game performance immediately after the upgrade.

But I doubt it's responsible for all. Anyone willing to upgrade to 8 to see if they get the same effect?

Link to comment
Share on other sites

It'd take a complete overhaul. A new game practically. I think the best thing we can all hope for is a 64 bit version. That should come soon and will be a god send. A lot of people don't like to hear this, but the solution to large part counts is... Mods. You'd have to be insane to put a 300 ton payload into orbit with a stock lifter.

With mods it can be done in under 200 parts. Well under 200 parts. I'm sorry if that doesn't relate to the topic at hand, but it is a practical solution to a problem that will not be addressed for a very long time.

Edited by Motokid600
Link to comment
Share on other sites

I would absolutely love to test this. But I can't. Regrettably, I had a momentary lapse of sanity about 3 or 4 years ago, and I bought an Alienware m17x at an illogical price. It's somewhat elderly now, and I'm not willing to pop the case on that thing. It's probably the only thing holding the crumbs inside together.

If it isn't the PhysX card, I've no idea why I can go so big with the part counts. I have 8GB ram, which is nice, but isn't the bottleneck. I have an outdated Core 2 Quad Duo Extreme something at 2.53GHz. The only other thing it might hilariously be would be Windows 8, and I only say that because I know it commands less system resources and I noticed better game performance immediately after the upgrade.

But I doubt it's responsible for all. Anyone willing to upgrade to 8 to see if they get the same effect?

There is no need to take out the card physically, just flip the PhysX switch in your driver settings. Wether its on GPU or CPU shouldn't matter, since there should be no support for HW accelerated PhysX in KSP. (And if there was, it would only be for cloth and particles, not the rigid body stuff we actually need)

But it doesnt hurt to try.

Edited by NeMeSiS
Link to comment
Share on other sites

Here's what I was talking about before.

3eWtqsG.png

Note I can take the PhysX calculations off one of the graphics cards and on the proc. I was wrong in recollecting that I had a dedicated PhysX card. Instead it appears both the 280ms have PhysX capability.

Link to comment
Share on other sites

... Even the lowliest mobile CPU's can do better than that...

Maybe I missed something while optimizing, I'll check into that.

\/off-topic\/

I would absolutely love to test this. But I can't. Regrettably, I had a momentary lapse of sanity about 3 or 4 years ago, and I bought an Alienware m17x at an illogical price. It's somewhat elderly now, and I'm not willing to pop the case on that thing. It's probably the only thing holding the crumbs inside together...

You mean you've never cleaned out your computer for 3 or 4 years? :0.0:

If I try to do that, my computer would get fried from being caked with dust within 1 year.

I was a computer hardware technician a few years ago and had disassembled/reassembled an innumerable number of computers. I've seen one where the customer couldn't get it to turn on, so I opened it up and it looked like someone stuffed a fur coat inside it. After removing a pillow sized lump of dust I saw the Mobo. The CPU had literally exploded with shrapnel embedded into various components.

Link to comment
Share on other sites

Oh, I have, but I paid a repair shop to do it out of laziness and the need for insurance to cover me if Murphy and his bloody law showed up.

I used to think Alienware was the most amazing thing ever. Now I'm older and wiser and I realize what a fool Michael Dell is. Seriously... if I go to the Dell site and try to update my graphics drivers, I'm offered drivers from 2010. I complained to their support about that... and was told, "Use those, they're perfectly fine."

#EDIT: And apparently I'm some sort of idiot. Why is my SLI disabled? Gotta fix that.

Link to comment
Share on other sites

Murphy's law. "What can go wrong, will go wrong." And the oft-forgotten second part, "... and as often as possible." At the time, were there some serious issue where something failed on me, I didn't have the scratch to replace it. So I paid some schmuck to clean it out for me who had insurance for that kind of thing. And I redid the thermal paste on CPUs and GPUs.

Link to comment
Share on other sites

just a quick btw...I forgot to add that when I did the force GPU vs. CPU setting I did see a large increase in the memory usage on the video card. Also I change the setting back and forth a few times. I can post a couple screen shots later if anyone is interested, otherwise I'll quietly crawl back to my corner heh.

Link to comment
Share on other sites

Unfortunately, Moore won't be much help to KSP. Moore's Law suggests than we could double the number of transistors on a chip every 18ish months. Clock speeds haven't increased significantly in almost a decade. There have been architectural improvements that let the processor do more with each clock, but improvements there are *much* slower than Moore's law and generally limited to specific scenarios.

Processors aren't getting faster nowadays (except for breaking some aforementioned bottlenecks - mostly memory-related), they're using less power (which can allow them to be marginally faster) and we're getting more of them. But for single-threaded programs like the physics in KSP, the improvements will come at a crawl.

Moore's law deals with price, not the actual number of transistors. You double the number of transistors for the same cost every 18-24 months. Which more or less continues to remain true.

As for actual performance, a lot of those transistors aren't going to the CPU, they are going to iGPUs, uncore, etc. Some is going in to lower overall cost, etc. CPU performance right now has been tracking around 10-15% per generation for the last 4-5 years. Mobile is improving faster, but it had a much, much lower bar to start from (it is also using more and more power, so overall performance is tracking faster than performance per watt, though both are improving), but that is starting to peter out too.

Part of it too has been throwing more cores at issues and not just single threaded performance. Single threaded performance even over the last 10 years has tracked at roughly 20% per year, give or take a little on the desktop. There have just been some big leaps in the last few years on multithreaded performance as we went from single core single thread processor designs up to now quad core 8 thread designs on the high end (not including SBE/IBE). So single threaded performance over the last 10 years is up maybe 400% overall (don't forget the power of compounding), but multithreaded performance is up more like 1000%+

If it bothers you that much, figure in another 2-3 years the processors you might be able to buy will probably be at least 20-30% faster in single threaded performance to todays.

From a personal perspective, I'd love things to be faster, but my i5-3570 clocked to 4.2Ghz single/4Ghz all 4 cores can easily handle 350+ part count ships with showing any hiccups in frame rates. I don't think I have ever built anything larger than that. My i5-3317u laptop on the other hand gets brought to its knees with anything more than about 200 part count ships. It would be nice to see even midrange systems easily able to handle 500 part count ships...beyond that I think you are getting very much in to edge cases.

Link to comment
Share on other sites

I've tested the impact of PhysX settings in nVidia control panel and I can confirm, that it didn't do a thing. First, I've let all the calulations be handled by CPU (quad core Phenom II X4 3,2GHz) and launched a 600 parts ship, which gave me 10-12 FPS. Then I changed the settings from CPU to GPU (N560GTX-Ti) and the performance was EXACTLY the same. Tested on Win7 64bit, 8GB RAM.

How can Whackjob run smoothly 1000+ parts ships on his machine is beyond me.

Link to comment
Share on other sites

I've tested the impact of PhysX settings in nVidia control panel and I can confirm, that it didn't do a thing. First, I've let all the calulations be handled by CPU (quad core Phenom II X4 3,2GHz) and launched a 600 parts ship, which gave me 10-12 FPS. Then I changed the settings from CPU to GPU (N560GTX-Ti) and the performance was EXACTLY the same. Tested on Win7 64bit, 8GB RAM.

How can Whackjob run smoothly 1000+ parts ships on his machine is beyond me.

I never said smoothly. I just said I could fly them. It does run a bit slow, and when I hit about four thousand parts I get about one frame per second.

Link to comment
Share on other sites

I'll help by way of analogy. Let's say you have a 2D platformer where you kill things by jumping on top of their head (Mario). This is a fairly simple conceit. To actually do it though requires: multiple states for Mario and Goomba, collision detection, behavior & movement, health, environmental collision, determining direction of collision, etc etc etc. The point being that while conceptually, multi-core physics (or any other wish list feature of KSP) may be easy - it may even be a known and solved solution to a problem - the actual implementation and design is often far more complex than it seems.

Not to mention that KSP is a game meaning it has to do anything and everything complex in real time (with the unique situation that everything is also always moving). Let's say we're shooting for 25 FPS. This means to avoid slow down, EVERYTHING (well, not really) has to be done in 0.04 of a second. 40 milliseconds. Any longer than that and frames are dropped. With higher FPS comes less ms per frame with which to do things before some sort of slow down occurs. Work can be spread out over time for some things (AI for instance) but some things can not. Physics being one of them.

Consider a 3 part ship. How do you what part C is doing? To determine that, you also need to know what parts A and B are doing. And so if you want C to update fast, you also have to update A and B fast as well. What about an oft proposed solution of clumping things together and treating it as a single object (physics or otherwise)? Well, yes, while it might reduce the physics part of the situation, this doesn't actually eliminate the need to update A, B, and C. Say you have Object X that represents the group of A/B/C and serves as the origin point within that group ( so A is 1,1 for instance or whatever from X). You spin X, A should spin automatically, right? Yes, but... to actually place it and move it into the world, you still need to turn what 1,1 means into what it means world space. So you're still transforming from world space to local space; you're eliminating as much work as it may seem.

This idea of highly dependent information is also why physics (or other systems with lots of conceptual moving parts) can be somewhat difficult to multi-thread. It can be really easy to get into situations where calculations are waiting for something to be calculated before they can finish at which point, things just slow down. Say you had 30 guys boxing boxes and loading them on to a truck - if you only have 1 truck, it doesn't matter how much work the 30 guys can do upfront, there is still a bottle neck.

Link to comment
Share on other sites

This idea of highly dependent information is also why physics (or other systems with lots of conceptual moving parts) can be somewhat difficult to multi-thread. It can be really easy to get into situations where calculations are waiting for something to be calculated before they can finish at which point, things just slow down. Say you had 30 guys boxing boxes and loading them on to a truck - if you only have 1 truck, it doesn't matter how much work the 30 guys can do upfront, there is still a bottle neck.

...It might be difficult, but PhysX already has the capability. The problem us, Unity's using PhysX 2.

Link to comment
Share on other sites

...It might be difficult, but PhysX already has the capability. The problem us, Unity's using PhysX 2.

That's right. From what I've heard, and this is strictly hearsay, the reason Unity hasn't upgraded to a more recent version of PhysX is because they fixed some bugs in the version that they're using, submitted the bug fixes to the PhysX devs, who then refused to commit them back into PhysX. Unity has come to depend on these bug fixes, and at this point, PhysX has changed enough that they'd have to redo all of their bug fixes to fix the current version, rather than just applying their fixes to the current version.

Link to comment
Share on other sites

I've tested the impact of PhysX settings in nVidia control panel and I can confirm, that it didn't do a thing. First, I've let all the calulations be handled by CPU (quad core Phenom II X4 3,2GHz) and launched a 600 parts ship, which gave me 10-12 FPS. Then I changed the settings from CPU to GPU (N560GTX-Ti) and the performance was EXACTLY the same. Tested on Win7 64bit, 8GB RAM.

How can Whackjob run smoothly 1000+ parts ships on his machine is beyond me.

I suspect there is a bit of....embellishment...going on.

Link to comment
Share on other sites

...It might be difficult, but PhysX already has the capability. The problem us, Unity's using PhysX 2.

This is also engine side. Simply because it has (or doesn't) the capability doesn't necessarily translate into whether it's effective for the specific game - different games have their specific requirements that may make some capabilities more or less useful. This is why different games have different frames - if it was a matter of hardware/engine capability, every Unreal Engine game (eg 80% of modern games) would run functionally identically. This isn't to say that PhysX wouldn't help, but it's also unwise to think it'd be a magic cure-all. And at some extreme level, any solution isn't a universal solution so much as just pushing the part limit higher before it hits a bottleneck. The ideal situation would of course be that the part limit is higher than any current computer available for the next 6 years but that's an impractical goal to strive for.

Link to comment
Share on other sites

That's right. From what I've heard, and this is strictly hearsay, the reason Unity hasn't upgraded to a more recent version of PhysX is because they fixed some bugs in the version that they're using, submitted the bug fixes to the PhysX devs, who then refused to commit them back into PhysX. Unity has come to depend on these bug fixes, and at this point, PhysX has changed enough that they'd have to redo all of their bug fixes to fix the current version, rather than just applying their fixes to the current version.

Well that almost kinda halfway makes sense. Except for the part where it doesn't help us any. And the part where Unity's getting a really bad name among KSP Players, and KSP's getting bigger and more popular all the time.

I was thinking about something...more than a little ambitious the other day. Initially in terms of trying to make KSP do it, but came to the conclusion I'd probably actually have to start from scratch pretty much. Because KSP's probably not really quite suited to pulling it off.

My thought was more or less 'well that'd leave me having to start from scratch, which I'm not even sure I could do. And the only thing I know of where I could even TRY is Unity, and I'm not going to use Unity, because it's crap!'

Edited by Tiron
Link to comment
Share on other sites

To add my data point (for what it's worth), I have an i5 at 3.7GHz with a beefy - but AMD - graphics card and the stock version of the game becomes unplayable, as in, less than 5 frames per second (which I consider to be too slow and unresponsive to be fun) after around 300-400 parts. I usually don't launch such big rockets, but station part count adds up pretty quickly, which is frustrating.

I won't make any in-depth comments as to the current state of KSP performance and how it affects players because on this forum it will evidently just be met with "buy a better computer", "it's still in development" or even "you don't know what you're talking about" and so on, but suffice it to say, I am not happy with it and am hoping that things will get better eventually. There's a lot of hardware potential which KSP and/or the underlying Unity engine is not making use of, and while it doesn't need to be the most optimized game of all time, let's say it's a bit on the slowish side at the moment, and it's getting on many people's nerves. There's nothing worse than being creatively hindered in a sandbox by a technical difficulty which clearly should not exist in the first place.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...