Hello Guest November 25, 2024, 18:52:30 *
Welcome, Guest. Please login or register.

Login with username, password and session length
 
Pages: [1]   Go Down

Author Topic: PhysX only uses CPU for SSE  (Read 3373 times)

krytsch

  • Forum member
  • Posts: 333
PhysX only uses CPU for SSE
« on: December 03, 2010, 10:12:25 »

In the NVidia controls you there is a menu point saying "3D-settings", and her you can activate "show PhysX virtual display" (don't know what exactly it says in English - I've translated it from German). If activated, inside the game a message is displayed up in the upper left corner, that shows which processor actually is used for PhysX calculations.
I did this, and when starting SSE, i saw, that the CPU was used as PhysX accelerator, not the GPU.
This is independent of whether I had set PhysX to use the CPU or the GPU or to choose automaticly!

To verify this, I installed a PhysX screen saver. And there it is possible to switch between CPU and GPU. Using GPU it runs quick, smooth and with a high frame rate, while using the CPU it behaves just like SSE - slow, jerky and with low frame rate, especially when liquids show up.

Is it possible, that the game doesn't run properly because it doesn't use PhysX correct? Is there a way to make SSE use the GPU as PhysX accelerator?
If the differences are as pronounced as inside the screen saver, this would be smashing! If VStep furthermore could find a way to use multiple cores, SSE could run like a rocket.

So does anybody know a way to tell SSE to use the GPU for PhysX?
Maybe a dev has an answer?

@Aad the Pirate: If you read this - as we have similar systems and similar problems, have you tried to test it? Can you verify it?
« Last Edit: December 03, 2010, 11:54:38 by krytsch »
Logged

Denis

  • Global Moderator
  • Posts: 1040
Re: PhysX only uses CPU for SSE
« Reply #1 on: December 03, 2010, 12:13:30 »

Hi krytsch,

this has already been discussed.

PhysX computing in Ship Simulator Extremes is only used for the dynamics calculations, not for 3D renderings. Therefore the CPU is used, not the GPU.

There's no way to change that, this has been set by purpose by the developpers of the game.

You may find more information about the use of PhysX engine in Ship Simulator Extremes by using the forum research function.

regards,

Denis
« Last Edit: December 03, 2010, 12:15:18 by Denis »
Logged

krytsch

  • Forum member
  • Posts: 333
Re: PhysX only uses CPU for SSE
« Reply #2 on: December 03, 2010, 12:17:33 »

Oh I see!

Well, then this topic can be locked or even deleted.
Logged

Denis

  • Global Moderator
  • Posts: 1040
Re: PhysX only uses CPU for SSE
« Reply #3 on: December 03, 2010, 12:21:15 »

Well, I think it's better to keep the topic, if it gives more clarification about PhysX use :-)
Logged

m131167

  • Forum member
  • Posts: 27
Re: PhysX only uses CPU for SSE
« Reply #4 on: December 15, 2010, 20:31:05 »

I have tried to see if there is a dedicated PHYSX thread on this forum. This thread seems to be the best bet.
On Toms hardware they recently did an Analysis: PhysX On Systems With AMD Graphics Cards.
In the article there is some noteworthy points.
http://www.tomshardware.com/reviews/nvidia-physx-hack-amd-radeon,2764.html
The inside scoop of the article is that you can have an second dedicated NVIDIA Graphics card (actually it could be an "old GT240" card) which...after running a software patch.... that will tweak the PHYSX installation to run the dedicated PHYSX calculations on this card - which in some cases will make an otherwise unplayable PHYSX enabled game quite playable.
This begs one question though. If you run this option will SSE benefit from this - or is SSE PHYSX part "hardcoded" to use the CPU and not a PHYSX enabled GPU.
Any comments from the development team?
Best regards
Michael Christiansen
Silkeborg/Denmark
« Last Edit: December 16, 2010, 10:06:07 by m131167 »
Logged

mvsmith

  • Guest
Re: PhysX only uses CPU for SSE
« Reply #5 on: December 15, 2010, 22:45:31 »

An nvidia card is not necessary to run PhysX with newer ATI cards. ATI supports DirectCompute 11 for using the GPU threads for other processing, such as the physics.

My own opinion is that there is limited potential for growth in SSE unless most of the inter-frame processing can be done on the GPU.
PhysX is inefficiently coded for running on the CPU compared to the way it runs on the nvidia GPU.
Logged

krytsch

  • Forum member
  • Posts: 333
Re: PhysX only uses CPU for SSE
« Reply #6 on: December 15, 2010, 23:14:12 »

But why has VStep then decided to let it run in the CPU only? Why must a physics calculation, which has been designed to run on GPU, run on the CPU inside SSE - the PhysX screen saver (with lots of moving objects - ie. dynamics calculations) shows the difference in an impressive way - 30-40 fps running on GPU vs. 4(!)-20 fps running on CPU (which sudden short time acceleration to ~ 30 fps, dropping 4 when liquids show up).

If I have understood it correctly, the purpose of PhysX is to let the GPU calculate dynamics fast and effectively. Otherwise it would be completely pointless.
« Last Edit: December 15, 2010, 23:37:46 by krytsch »
Logged

mvsmith

  • Guest
Re: PhysX only uses CPU for SSE
« Reply #7 on: December 16, 2010, 08:30:09 »

If I have understood it correctly, the purpose of PhysX is to let the GPU calculate dynamics fast and effectively. Otherwise it would be completely pointless.


That was my assumption also when I first learned that PhysX would replace newton.dll. Knowing that the CPU version of PhysX was done inefficiently—perhaps, as some have claimed, to make that demo more striking—it did not occur to me that the intention was not to run dynamics in the GPUs.
Logged

m131167

  • Forum member
  • Posts: 27
Re: PhysX only uses CPU for SSE
« Reply #8 on: December 16, 2010, 10:20:51 »

An nvidia card is not necessary to run PhysX with newer ATI cards. ATI supports DirectCompute 11 for using the GPU threads for other processing, such as the physics.

My own opinion is that there is limited potential for growth in SSE unless most of the inter-frame processing can be done on the GPU.
PhysX is inefficiently coded for running on the CPU compared to the way it runs on the nvidia GPU.

As per the arcticle in toms hardware (see my link to it above) I would have to agree that an Nvidia card is not >>nescessary<< per say

However I have a suspision (again based on the contents of the article - please read it  :)) that a lot of SSE users having a high end ATI video card expeience an otherwise unnescessary performance hit that could be seriously improved upon if they implemented the fix that is described in said article.
Also users having highend Nvidia card would also benefit because you modify (tweak) the PHYSX installation to use the secondary (cheap) graphics card for the PHYSX calculation thus freeing the CPU from some of the PHYSX arithmetics.
And is seems that an application like SSE that relies heavily on PHYSX would stand to gain a lot from this tweak. Comments?
Best regards
Michael
« Last Edit: December 16, 2010, 10:23:46 by m131167 »
Logged

mvsmith

  • Guest
Re: PhysX only uses CPU for SSE
« Reply #9 on: December 16, 2010, 14:09:27 »

The tweaks do not apply to SSE as it is now. PhysX is used only for its physics, and only in its CPU version.
If, or when, VSTEP decide to attempt to run the inter-frame dynamics calculation on GPUs, no additional nvidia graphics card would be necessary for ATI users, even if a slot and power were available for one—problematic given that most high-end cards already use two slots and suck a lot of power.
PhysX, or any other processes can use the ATI threads via DirectCompute. In any case, it will require considerable low-level work by the developers—rather than a canned panacea—to meet the peculiar needs of SSE when it comes to the inter-frame processing burden.
Logged

m131167

  • Forum member
  • Posts: 27
Re: PhysX only uses CPU for SSE
« Reply #10 on: December 17, 2010, 03:57:57 »

 Error post - can be deleted
« Last Edit: December 18, 2010, 10:31:04 by m131167 »
Logged

m131167

  • Forum member
  • Posts: 27
Re: PhysX only uses CPU for SSE
« Reply #11 on: December 17, 2010, 04:27:39 »

The tweaks do not apply to SSE as it is now. PhysX is used only for its physics, and only in its CPU version.
If, or when, VSTEP decide to attempt to run the inter-frame dynamics calculation on GPUs, no additional nvidia graphics card would be necessary for ATI users, even if a slot and power were available for one—problematic given that most high-end cards already use two slots and suck a lot of power.
PhysX, or any other processes can use the ATI threads via DirectCompute. In any case, it will require considerable low-level work by the developers—rather than a canned panacea—to meet the peculiar needs of SSE when it comes to the inter-frame processing burden.


Its not that I want to drag this debate on forever  ... However in the quote above there is a statement that I would like to challenge  :).

It seems that... Based on statements from Nvidia that the PHYSX API is not availabe through directcompute(DC). DC is a part of DX11 and available in DX10 as well and is totally separated from PHYSX. Nvidia actually claims a right to optimize for their own hardware since they own and lisence the PHYSX API - taken from the fact that PHYSX is not open source.

The source for this is: http://physxinfo.com/news/966/nvidia-qa-roundup-physx-wont-support-opencl-or-directcompute-any-time-soon/

Therefore I raise the question again. Are you sure when you say that the tweak as mentioned in the article in toms hardware will not also apply to SSE when it apparently does to all other PHYSX accelerated games in the world?

So my second question is - since PHYSX can be computed using parralel computing and enjoys native HW support for this on NVIDIA GPUs - is it true that Vstep deliberatly has disabled this as you indicate above ("PhysX is used only for its physics, and only in its CPU version") ? I personally find this hard to believe. Why should Vstep take this extraordinarily step to derate its own game experience at least for some users?(Owners of PHYSX supported Nvidia GPUs)


Also bearing in mind (quoting from the article in tomshardware) "Let’s first examine the fact that Nvidia currently only allows GPU-accelerated PhysX on its own graphics cards, thus forcing everyone else to calculate the PhysX instructions implemented in games using the CPU. The result for non-Nvidia gamers is usually an unplayable game when you turn PhysX on without a GeForce card installed".

Personally I dont have a preference for either ATI or Nvidia - as a consumer - I would just like to know from the developers if some hardware over another has an edge in SSE.

Best regards
Michael
P.s. I have learned a lot reading about this during the last days - thanks for that - and for an interesting and informing thread :-)
« Last Edit: December 17, 2010, 04:31:35 by m131167 »
Logged
Pages: [1]   Go Up
 
 


SMF 2.0.14 | SMF © 2017, Simple Machines