Is it possible to offload cpu tasks to gpu??
Moderator: Moderators for English X Forum
-
- Posts: 567
- Joined: Mon, 20. May 13, 09:18
Is it possible to offload cpu tasks to gpu??
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.
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.
-
- Posts: 415
- Joined: Sat, 31. Aug 13, 17:56
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.
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.
-
- Posts: 567
- Joined: Mon, 20. May 13, 09:18
-
- Posts: 30
- Joined: Sun, 28. Sep 08, 10:16
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.
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.
-
- Posts: 9
- Joined: Thu, 21. Nov 13, 10:18
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.
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.
-
- Posts: 46
- Joined: Fri, 1. Jan 10, 23:17
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.
-
- Posts: 567
- Joined: Mon, 20. May 13, 09:18
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.
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.
-
- Posts: 877
- Joined: Sun, 17. Nov 13, 17:25
-
- Posts: 2259
- Joined: Fri, 25. Dec 09, 03:56
CUDA is not a general purpose CPU. There are a LOT of things a video card can not do.valgusepoiss wrote:I guess Rebirth dosent...ICO_hr wrote:You can force Nvidia card to calculate physics from the control panel but only if the game uses PhysX.
But would be possible to program rebirth exe to share some cpu tasks to gpu if gpu is under certain percentage of use?
Not only is this question silly, it is irrelevant as Rebirth has a hard time managing its threads on existing CPU hardware.
-
- Posts: 61
- Joined: Tue, 22. Oct 13, 22:45
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.valgusepoiss wrote:I guess Rebirth dosent...ICO_hr wrote:You can force Nvidia card to calculate physics from the control panel but only if the game uses PhysX.
But would be possible to program rebirth exe to share some cpu tasks to gpu if gpu is under certain percentage of use?
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.
-
- Posts: 99
- Joined: Sun, 15. Apr 07, 16:07
-
- Posts: 66
- Joined: Sun, 26. Jul 09, 04:14
Just reading this guy's comments made me realize I have no f'ing clue about anything. I enjoyed that moment.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.