No need to insult him.ps: you're going to be the new charlie!!!
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
No need to insult him.ps: you're going to be the new charlie!!!
welcome to [H]
good article
ps: you're going to be the new charlie!!!
Meanwhile there is tons of proof and evidence to the contrary.
"If Nvidia wants to prove that PhysX is actually faster on the GPU, I will offer them a fair test. Give me the code tree for PhysX and the related DLL, and I will have them re-compiled for GPUs and then optimized the CPU version with some minor threading and vectorized SSE. Then I will run the released PHysX supporting games on both DLLs as a benchmark. How about it guys? If your PR claims are anything close to true, what do you have to lose?S|A"
charlie S/A
what are the chances that happens???
is anyone really surprised?
it is going to be interesting to see what nvidia has to say about this.
No there isn't... Care to provide any?
Yes. The "2x-4x" number in the article is from the high level framerate, such as 15fps (avg framerate, of course not constant PhysX effects) in some game with CPU PhysX vs say 60fps with GPU PhysX. It was pointed out in another thread that CPU PhysX can dip the framerate down to low single digits, while the GPU PhysX runs along at 40-something fps. And even with a great resullt like a 2x speed up using SSE2, the CPU version is still not good enough to replace a GPU. It would still be better of course if nvidia put some better optimizations into the CPU path.wouldn't that apply at least in part in physics performance?
You mean besides the links I have already provided?
Povray was compiled using "-pipe -Wno-multichar -O3 -march=k8-mtune=k8 -ffast-math -minline-all-stringops" for SSE.
The result of benchmark run was:
user 27m43.635s
387 benchmark was compiled with -mfpmath=387 added to compile flags.
The result of benchmark was:
user 28m40.049s
and this way many x87->mem->SSE moves were removed. The result of benchmark run is now:
user 27m27.141s
Passages in the article itself, and posts by others here explaining similar things?
You have yet to provide even one shred of evidence or one iota of facts period.
1) If PhysX is so bad, then it doesn't matter, something else will take its place and this is a moot point.
2) If SSE is that much better than x87 than physics engines using SSE rather than x87 will take the place of PhysX and this is a moot point anyway.
3) Also if SSE was so much better than x87 and CPU instructions really were better for processing physics than Larrabee wouldn't be such a dead project and Havoc would be a lot more powerful than PhysX.
4) OpenCL is being looked at and toyed with by both ATI and Nvidia and may replace their current offerings, which guess what? Makes this a moot point yet again.
5) Nvidia makes GPUs last time I checked and does not make CPUs. Which makes this a moot point.
6) If Nvidia is such a horrible company, vote with your wallet and buy something else, which again makes this a moot point.
7) Even if you were to release it with SSE coding, that might make the CPU physics processing twice as fast which still makes it at best twice as slow as PhysX on the GPU and at worst still 4 times slower, even according to the article there are limited times when CPU physics processing might be better than GPU. The best case scenerio in the artilce is CPU processing going up by 4 times and being on par and maybe better in some cases. Really, you guys need to do more reading and research into these technologies and implementations before making judgements. And use a bit more common sense about the whole thing while you are at it. This is all a bunch of hoopla over nothing. It is a way to gain readers and spark interest in another lull in the graphics market news arena.
Really, you should all take your tinfoil hats off now and stop video taping lunar landings from your basement. There is no sense or point for Nvidia coding anything for SSE when it works perfectly well for them under x87. There is no rational reason for them to do anything about it at this point. They have been moving on for some time and looking into other avenues already, same as ATI.
BTW didn't intel just acknowledged recently that a gtx280 was 16 times faster than a core i7?
wouldn't that apply at least in part in physics performance?
You didn't freaking post any. Here, lets look at the GCC one since that was the only link about performance in the first place:
Since you missed it, that shows SSE being *FASTER* than x87 with little more than a compiler flag on a compiler not known for its good optimizations, and that was from 2006.
Like I said, did you even read the links you provided? Because they sure as shit didn't agree with you.
So, at this point x87 code of a real world application (which is BTW the part of a SPEC suite) beats x86_64 SSE, despite the fact that SSE has two times as many non-stacked FP registers and implements register passing convention (thus avoiding memory moves). Following that, implementing x87 register passing convention we would surely remove at least some of more than 1300 remaining movlpds and some of 900 remainign movsd instructions (all with one memory operand)
All of which say SSE is faster than x87 - nobody but you has claimed otherwise.
Um, yes, there were. The post right above mine that you quoted had a link that showed a *huge* improvement from SSE on a Pentium 4. Core 2 and i7 have since doubled SIMD performance.
You are making the assumption that the better technology will win - that assumption isn't even close to true, unfortunately.
Except it was Intel's answer to the graphics market with a card that could do everything in one and could excel at doing physics. Yeah, other than that...nothing. Right.1) Larrabee has nothing to do with this.
2) Havoc very well could be more powerful than PhysX, but that doesn't mean anything in x87 vs. SSE. Havoc could simply have better algorithms than PhysX and vice versa. Havoc being faster or slower than PhysX really provides no evidence whatsoever on x87 vs. SSE.
No, it doesn't. This is about unoptimized CPU physics being compared to optimized GPU physics. If PhysX started using OpenCL, the issue doesn't go away.
That... is an idiotic statement. That is the reason we have this issue in the first place, because Nvidia has more to gain from keeping the library unoptimized. It isn't moot point at all, it's the core issue.
Only with articles like these are we able to learn what companies are doing to be able to vote with our wallet. The whole "vote with your wallet" only works if buyers are able to get the facts. You are arguing that we shouldn't know the facts. How the fuck can you make an informed decision then?
And it would make the "advanced" physics effects in games like Batman: AA playable on a CPU. And that only addresses the speedups from SSE, and not the additional speedups to be gained from multithreading.
So the point is that all the shit that Nvidia says a CPU isn't fast enough to handle (like the effects in Mirror's Edge and Batman: AA) isn't necessarily true, and is quite possibly a lie.
lol wut? Calling a company out on dishonest behaviors makes you a conspiracy nut? Have fun getting ass raped by companies, I'll be over here trying not getting raped, kthxbai.
I'm not sure what you are referring to, but no. There is a huge difference between theoretical speeds and real world results. GPUs are perfect for graphics, not as much for physics. They do some physics faster than CPUs, and some slower, the question is how much faster is the faster stuff - and that is something we don't know at this point.
OMG, you really don't read anything do you?
Stop taking little bits out of context.
As I said, GLIBC doesn't have fast routines for x86-64. SUSE and others do, but neither FSF nor RH do.
...
That's not the correct conclusion. As I said, you haven't isolated x87 microcode vs. GLIBC math functions...
It turns out that none of these questions is appropriate. Because - (1) PoV-Ray's usage of SSE2 is not SSE (Stream SIMD Execution) at all, but really double-precision FP with random register access; (2) PoV-Ray SSE seems to be optimized more specifically for Core 2 than anything else, where on K8 it is only about 5% faster than PoV-Ray x87. This is also not going to change with K10.
First, there is no actual usage of vectorized (or packed) instructions in PoV-Ray SSE. The only packed instructions I see from the binary are register conversions between x87 and SSE2 formats. PoV-Ray SSE basically treat the SSE2 as a faster [sic] x87 engine which can access xmm registers randomly (rather than stack-based in x87). For example, a simple double-precision division in PoV-Ray SSE is performed by the following instruction sequence:
Wrong again. It never said SSE is faster than x87. It said that using SSE for multi-core, multi-thread processing would be better than the current x87 setup. It clearly stated that at best you would see about on par for performance in some cases, but in most cases it would still be slower than the GPU. Read the full article, at least the last page.
A packed (i.e. vectorized) SSE2 instruction can perform two double precision operations, or four single precision operations. Thus a CPU like Nehalem or Shanghai can execute 4 double precision operations, or 8 single precision operations per cycle. With AVX, that will climb to 8 or 16 operations respectively. SSE also comes in a scalar variety, where only one operation is executed per instruction. However, scalar SSE code is still somewhat faster than x87 code, because there are more registers, SSE instructions are slightly lower latency than the x87 equivalents and stack manipulation instructions are not needed. Additionally, some SSE non-temporal memory accessses are substantially faster (e.g. 2X for AMD processors) as they use a relaxed consistency model. So why is PhysX using x87?
Yes, SSE for CPU processing is faster than x87 for CPU processing for CISC instructions using simple math and not much trigonometry. That is not true for physics. You keep bringing apples and oranges into the comparisons.
You are doing nothing but making assumptions about everything. You don't even understand the things at work here. You provide NO evidence, NONE, zilch, nada. No links, no facts, no proof, no statistics, nothing. You are so far out of your depth it is unbelievable. Just give it up.
Except it was Intel's answer to the graphics market with a card that could do everything in one and could excel at doing physics. Yeah, other than that...nothing. Right.
But Havoc is much less powerful than PhysX.
In which, yet again, the article says that even at its peak optimization for CPU physics, it at best would only beat GPU physics by a small margin, and in most cases would still be 2-4 times slower than GPU physics. Again, read the full article, especially the last pages.
So if Nvidia decides to do away with PhysX altogether in the next year, somehow all of this would still mean anything? With only a few games still using PhysX now, this still means anything? Exactly how is this issue so critical in the first place? It is idiotic that you can't even read the articles, and that you believe somehow this is a big deal.
I never argued against knowing the facts. I am providing facts for you, you are the one blindly ignoring them.
Here again you are making assumptions, with no facts to back it up.
How is Nvidia being dishonest, please tell me? How is it dishonest for Nvidia to program THEIR technology for THEIR purposes? Please, I really have to know this one. I really want to know how it is sooooo unfair that PhysX, an Nvidia technology is being exploited by Nvidia the owner of the technology.
Excuse me, but why are so many major physics processing plants and data modeling companies switching over to GPGPU enabled supercomputers if CPUs are sooooo much better for physics?
Where did anyone ever say that CPUs are far superior for physics?
You are starting to mix things up a bit here. There is a difference between having passable physics affects using the CPU, which is what the article is talking about, and having dedicated physics devices designed for crunching physics. The article is not at all saying in any shape or form that CPU physics are much faster than GPU. In fact it claims just the opposite, that in almost all cases, GPU physics will still be faster, but the margin would be slimmer than it is now.
And what proof was that? The whole article was based on conjecture and assumptions why Nvidia would use x87 instructions instead of SSE. It completely leaves out other CUDA development that would use some of the advantages of x87.
What advantages would these be, exactly?
Back to the actual article, things like this are why, at least at this stage, I never plan to purchase anything from nVidia again. They have deliberately gone out of their way (and continue to do so) to fudge the results to make their product look better and other products look worse. They're deliberately crippling PhysX on the CPU to artificially make their product look better.
While this is their right, as the owner of PhysX, it doesn't make it right.
Not necessarily.They're deliberately crippling PhysX on the CPU to artificially make their product look better.
PhysX started with Ageia and they wanted you to purchase a PPU card. They originally made the intent to make the CPU look bad compared to a PPU card.
Alienate a good portion of the market? Please, cut the bullshit. If Ageia didn't want to alienate the market they would of made PhysX run the best it could on CPUs instead of trying to make people in 2008 buy proprietary PPU cards.
Unfortunately for you, I did read it.
Which is a claim *I* am defending, and *YOU* were refuting. You originally were claiming the article was wrong and I was claiming it was right. Now it seems you are trying to switch your viewpoint to agree with mine while still trying to disagree with me so that you don't have to admit you didn't have a clue what you were talking about when you first entered this discussion.
I love it when people without a clue state that it 'only takes a recompile'. Unless you're very lucky, changing from x87 to SSE will take some serious debugging/rewrites, especially if ASM is used and/or assumptions are made. The resulting code will hardly be optimized as well.
Dude, just stop, you don't make any sense at all. I was never saying the article was right. I was saying that the article YOU were defending, wasn't even agreeing with you.
You are the one that keeps waffling around with viewpoints.
And you still are taking everything out of the context in which it was written and tested.
You keep claiming you know what is going on, but you still provide ZERO facts or examples.
You still keep spouting off claims with no proof and waffle around with your words. There is a very well informed user on AnandTech that DOES work in the field and explained a lot of it and I provided that link as well.
Is Nvidia trying to hobble the CPU intentionally? That is all conjecture with no real proof.
Nvidia has NO obligation to improve PhysX performance for CPU, because it is a tool for Nvidia's GPU cards. That is what they are selling.
So again, that is the point being made here.
For the already incredibly small market that PhysX is, to make claims that Nvidia is being the bad guy by hobbling CPU PhysX is pretty lame. And even if they were intentionally doing that, who cares? It is THEIR product, they can do what they want with it. It doesn't make them evil at all. It also doesn't make me want to buy or support PhysX, though.
What annoys me about the article is the suggestion that there's only a 2-4x difference between PhysX calculations on the CPU and GPU. That's just not true. The revered Velocity Engine (with Infernal CPU physics engine) "handles" 3500 simple boxes and one force actor by maxing out 8 threads on a Core i7... at a very low double digit fps rate. GPU physics (old Havok FX demonstrations and GPU PhysX) can handle dozens of times more *complex* shapes (i.e., meshed models) at a time at a very high framerate.
Difference is that Havok/DX11 physics is free, while using PhysX requires a license fee to use
So if ATI was going to use PhysX, they would have to pay nvidia to use it
And FYI, Havok with a quad core from 2008 CPU does 5x the physics a Geforce 280 does with PhysX, to give you an idea of how bloated PhysX actually is
^^^^^If true, then the devs are being lazy again?
Well, that kind of makes sense, since GPU acceleration is almost never used unless Nv implements it for the dev. Why would devs care about gpu or even decent cpu physics on PC when they are coding primarily for the consoles with maybe a quick and dirty port over to PC afterward anyway? It is not like they think they are loosing any sales over it since piracy is the reason for every game failure in their eyes.
Not really. IMO the developers understand something that the armchair programmers won't accept: CPU physics are limited. Single digit FPS while heavy CPU PhysX effects are running (in Batman AA, for example) aren't going to be fixed by teasing out 1.3-2x gains.^^^^^If true, then the devs are being lazy again?
^^^^^If true, then the devs are being lazy again?
Not really. IMO the developers understand something that the armchair programmers won't accept: CPU physics are limited. Single digit FPS while heavy CPU PhysX effects are running (in Batman AA, for example) aren't going to be fixed by teasing out 1.3-2x gains.
I pointed it out earlier. Take the Velocity Engine, which has the Infernal physics engine, as an example. It's fully multi-threaded. Maxing out 8 threads on a Core i7, you get CPU physics for 3500 simple boxes and one force actor... at very low double digit framerates (see the Velocity Engine Tornado demo from late 2009). Even four year old GPUs can do much, much better than that, with more objects, more complex objects and at a much higher framerate (see the ATI and nvidia Havok FX GPU physics demos from 2006).
But there's no simple or even complex fix that's somehow going to make CPU physics competitive with GPU physics.
Your example is unrealistically optimistic, and starting at a point much higher than is actually seen. I was being nice about not calling it a pitifully low single digit fps. Who cares if it goes from 2-3 fps when heavy effects are running on the CPU to 8 or 12 fps. It's still majorly unplayable. The most optimistic "fix" does not really fix the problem. If you want faster high PhysX in Batman AA, there's already a solution. Wishing and whining about it doesn't change that fact.Improve single threaded performance 1.3-2x with vectorized SSE. Then add multithreading, and you can improve performance another 2-4x. All that adds up in hurry. 10fps can suddenly turn into 40fps.
Your example is unrealistically optimistic, and starting at a point much higher than is actually seen. I was being nice about not calling it a pitifully low single digit fps. Who cares if it goes from 2-3 fps when heavy effects are running on the CPU to 8 or 12 fps. It's still majorly unplayable. The most optimistic "fix" does not really fix the problem. If you want faster high PhysX in Batman AA, there's already a solution. Wishing and whining about it doesn't change that fact.
And don't forget those CPU core(s) also needs to run other game code.
Just watch the Tornado video before you start making excuses. As more objects are added, you can see it going from smooth animation to struggling when 3500 simple boxes and one force actor are on screen. My best guesstimate is that the framerate appears to be 15fps or so, while the less demanding load were running smoothly at 30fps or higher.