Is it possible to offload cpu tasks to gpu??

Ask here if you experience technical problems with X Rebirth.

Moderator: Moderators for English X Forum

CommanderTM
Posts: 567
Joined: Mon, 20. May 13, 09:18
xr

Is it possible to offload cpu tasks to gpu??

Post by CommanderTM »

I dont know much about these things but i have heard some games can offload physics calculations to gpu to take off load from cpu. Some people have even used 2 gpus, one for the graphics and a cheaper one for physics.

I read from sticked topic that Rebirth will always be very cpu intensive and it seems to me that a lot of high end cpus will not get good fps... is Rebirth really the kind of game where cpus on this day cant quite keep up?? This seems a little weird to optimize the game this way but im no expert. If this is true, then its logical to optimize the game to get perfomance boost from additional gpu (not sli).

I am not sure what setups Egosoft used during development and testing but they obviously ran this game all settings maxed with fps they were comfortable with.

THat brings up another question. What fps was targeted? If the answer is 30 then theres not much hope to get more out of it in near future (not until some amazing patching).

I have quite low end PC:
E8400 cpu
HD5850 GPU
SSD

While my pc can run many games on high-medium, it really struggles in Rebirth due to my slow cpu (1680x1050, no aa, no shadows, shaders low, all distances 0). I checked the usage of my hardware during the Rebirth and while my cpu was 100% all the time, my gpu was utilized only 30%. That game me an idea to maybe use some of that power to take off load from gpu.
ICO_hr
Posts: 415
Joined: Sat, 31. Aug 13, 17:56

Post by ICO_hr »

You can force Nvidia card to calculate physics from the control panel but only if the game uses PhysX.

Btw as far as know CPU calculate the vertex information and other things that are needed for the actual graphics in the game and than move it to the GPU.So you still needs CPU work to do the graphics and there is now way out of this curently in any engine.

Arma 3 for example is CPU hog like Rebirth but you can move some of the graphics calculation to the CPU or GPU.So if you have fast GPU you just change the settings from Low to high or ultra and in that case the GPU do most of the work.If you have crapy GPU just turn everything to low and the CPU will handle most of the stuff.Btw there'are exceptions to this like shadows which are always CPU intesive. as far as i know.The point of all this is more PC's to run the game good enough depending on the hardware.You just need to find what is the best solution for your machine.

This may be not 100% correct but i guess you get the point. :)
Last edited by ICO_hr on Sat, 23. Nov 13, 11:08, edited 2 times in total.
CommanderTM
Posts: 567
Joined: Mon, 20. May 13, 09:18
xr

Post by CommanderTM »

ICO_hr wrote:You can force Nvidia card to calculate physics from the control panel but only if the game uses PhysX.
I guess Rebirth dosent...

But would be possible to program rebirth exe to share some cpu tasks to gpu if gpu is under certain percentage of use?
ICO_hr
Posts: 415
Joined: Sat, 31. Aug 13, 17:56

Post by ICO_hr »

valgusepoiss wrote:
ICO_hr wrote:You can force Nvidia card to calculate physics from the control panel but only if the game uses PhysX.
I guess Rebirth dosent...
I dont know, but my guess is probably not.
User avatar
ltbennett
Posts: 30
Joined: Sun, 28. Sep 08, 10:16
x4

Post by ltbennett »

No, you cannot. Pushing CPU tasks onto the GPU is only possible if the developer makes it happen and X: Rebirth as far as I can tell doesn't use PhysX and even if it did, your AMD graphics card (good choice by the way) does not support PhysX, for us it's OpenCL.

To keep the longest of stories short, the developers ether have to go out of their way to use Nvidia CUDA to push tasks/calculations onto the Graphics card (or physX for physics calculations) or they have to spend a decent amount of time writing kernels in OpenCL.

Ether way current methods of pushing work to the graphics card are a little crude and unwieldy. Additionally, Graphics Cards are only really good at highly parallelizable tasks (such as pushing buffers to the screen or certain algorithms), trying to treat a graphics card like a CPU could yield undesirable results.

Hopefully it will get easier to push tasks onto the graphics card when things like AMD's Mantle API become more widely used. Until then, I'm afraid you're stuck, sorry mate.
Mattsuu - Software Engineer, Games Dev, Atheist and Steak Appreciator.
joe_da_cro
Posts: 9
Joined: Thu, 21. Nov 13, 10:18

Post by joe_da_cro »

the reason CPU tasks cannot be offloaded is because CPUs have limited threads with high compute power per thread and GPUs are thousands of threads which are much weaker per thread than a CPU. not also that the CPUs are more efficient in doing the calculations they currently do as they contain more logic circuitry.

as posted in the previous reply tech like mantle will start to change this also the Maxwell processors from Nvidia will be a system on chip.
Mastercyclone3D
Posts: 46
Joined: Fri, 1. Jan 10, 23:17

Post by Mastercyclone3D »

Well to me it need a hardware acceleration tools for multitask for any work load that need to replace into a GPU steam process plus I think the software they were using need something when more task are open from the hardware then it will allowed to take place to used it full capability when it know the real hardware signature. But I have notice that it not using very much pure level of CPU uses when I ran the game on my AMD 965 it used about 50 to 70 % on core one and the other core used about 30 to 50 % and the other one was at 20 to 40 % and the last one was used to 50 to 70% and then it got runtime issue from the Direct X and C++ profile and you an tell it not using the full signature when the game needs more power from the hardware from the signature as wrote in. At the moment when looking at the software that was used how to was using the codes was not able to split is possibility for multiple tasks from single process that is taken place. Some polygons and some code and some area of the game is leaking some errors codes and when it repeat so much error it floods the system it need to have some code to written into the DX11 to DX10 to DX 9 profiler when other codes of the detail of the game. But there some things in the game will need to by pass it error and allowed to free up the issue and process the game data that it used into the graphic but if it repeat so much it flood it.. It have some bugs guys. Just I think they need 10 people of team work to look at each bugs that have been reporting and read from the people like us to state and shown these bugs and explain it better for each error that is coming from the game to find the solutions where the main problems are coming from. Just be patient. I wish they post a technical forums that need for bugs dump file only and when they already seen the bugs they delete it so the new one came be on the page.
CommanderTM
Posts: 567
Joined: Mon, 20. May 13, 09:18
xr

Post by CommanderTM »

Funny thing... have always played with minimum graphics settings. Today i tried to max some of them... and guess what...

i get same fps with:
0 AA
all distances 0
shadows off
v-sync off
ssao off
shader low

AND

8 AA
view distance 100
LOD distance 100
shadows off
v-sync on
ssao on
shader low

CPU is clearly MAJOR bottleneck as i get mostly 10-15 fps in near stations and 20-30 on clear space.
jojorne
Posts: 877
Joined: Sun, 17. Nov 13, 17:25
x4

Post by jojorne »

i guess only with CUDA... GPU deals with processing differently from CPU. even the speed are diff

anyway for FPS try set LOD to 10 and disable Shadows and maybe set Shaders to Normal

...you can tweak the draw distance and effects too
Bobucles
Posts: 2259
Joined: Fri, 25. Dec 09, 03:56
x3tc

Post by Bobucles »

valgusepoiss wrote:
ICO_hr wrote:You can force Nvidia card to calculate physics from the control panel but only if the game uses PhysX.
I guess Rebirth dosent...

But would be possible to program rebirth exe to share some cpu tasks to gpu if gpu is under certain percentage of use?
CUDA is not a general purpose CPU. There are a LOT of things a video card can not do.

Not only is this question silly, it is irrelevant as Rebirth has a hard time managing its threads on existing CPU hardware.
KlintusFang
Posts: 61
Joined: Tue, 22. Oct 13, 22:45
x3tc

Post by KlintusFang »

valgusepoiss wrote:
ICO_hr wrote:You can force Nvidia card to calculate physics from the control panel but only if the game uses PhysX.
I guess Rebirth dosent...

But would be possible to program rebirth exe to share some cpu tasks to gpu if gpu is under certain percentage of use?
Rebirth doesn't have a real physics engine, so it would be rather pointless anyway. There is no gravity, no inertia, etc. That isn't a criticism of course, it is just a fact.

Beyond that the GPU is a completely different architecture with different instruction sets etc. You can't just take code compliled for a CPU and run it on a GPU. You have to have two copies of the code, one for each and then you need some library or driver for managing them. I doubt it would make any sense for this game and doubt it would help performance at all even if they could do that.
Mike2988
Posts: 99
Joined: Sun, 15. Apr 07, 16:07
x4

Post by Mike2988 »

actually there is inertia ingame try a drone and move with it
CommanderTM
Posts: 567
Joined: Mon, 20. May 13, 09:18
xr

Post by CommanderTM »

Thank you all for the info :)
User avatar
Beergoggles
Posts: 66
Joined: Sun, 26. Jul 09, 04:14
x3tc

Post by Beergoggles »

ltbennett wrote:No, you cannot. Pushing CPU tasks onto the GPU is only possible if the developer makes it happen and X: Rebirth as far as I can tell doesn't use PhysX and even if it did, your AMD graphics card (good choice by the way) does not support PhysX, for us it's OpenCL.

To keep the longest of stories short, the developers ether have to go out of their way to use Nvidia CUDA to push tasks/calculations onto the Graphics card (or physX for physics calculations) or they have to spend a decent amount of time writing kernels in OpenCL.

Ether way current methods of pushing work to the graphics card are a little crude and unwieldy. Additionally, Graphics Cards are only really good at highly parallelizable tasks (such as pushing buffers to the screen or certain algorithms), trying to treat a graphics card like a CPU could yield undesirable results.

Hopefully it will get easier to push tasks onto the graphics card when things like AMD's Mantle API become more widely used. Until then, I'm afraid you're stuck, sorry mate.
Just reading this guy's comments made me realize I have no f'ing clue about anything. I enjoyed that moment.
aka db Black

Pirate Avatars - Pictures

Youtube - Channel

Return to “X Rebirth - Technical Support”