Possible to use GPU+CPU rendering simultaneously?

Hi.
Thinking smaller scales to humble users. Really I do not understand any of that network render technology, but I read that talk about tiles and CPU and GPU. Could some of that technology be used to make better use of resources allowing CPU and GPU render at the same time in Cycles?

Edit:
Some considerations: This thread has been splited by the moderator from “Blender 2.7x development thread”, because it was distorting much with “Kill the GPU on Cycles” and other issues. This question was related to Network Render technology there was talking.
Regarding GPU+CPU, I’ve been doing some experiments in message #34 with render border and two blender instances.

Yep it would be nice if Blender could automatically detect all the availaible devices like Luxcore and then just let user choose which one to not use and dispatch the work in optimal way. Luxcore for example send the optimal numbers of tiles for GPU and optimal numbers of tiles for CPU, because they just need different workloads and chunk sizes. This makes that each device is used nearly 100% all the time.

I think its theoretically possible (as lucas explained they got an abstraction layer below it), however although the network renderer isnt finished, the CPU GPU combo has so far not been mentioned and it has been on the forums here before, but it has never been mentioned by a developer here, as far as i know, so i think its never tried.

On a side note, it might not be a plus plus ; because GPU needs to be instructed by CPU code, so then maybe such combination wouldnt make ideal use of cores. i’m not entirely sure here, but i think something needs to pol GPU render status and retrieve data with a lot of gpu cores that might require also more cpu dependencies, which might not result in a great gain of speed… but i’m guessing here.

Reminds me indeed there is some communications constantly polling, going on… because well some you might know that Nvidea bug where a display driver timed out, and blender cant recover from it. I see it once in a while on my windows system (despite that i have 2 graphic cards in my laptop, and one isnt in use normally), then i re-render on CPU and still get my result, or i restart and reduce samples.

I think that some users had already discussed that here in the forum, and I think was concluded that when GPU render, seems that only one CPU thread is active at a time (I do not know when there is more than one GPU)

Edit:
Seeing the system monitor. One single thread seems to be at 100% load permanently, while another thread is also working but it is not remain in the same thread. Basically, two threads working simultaneously.

There is no reason to keep the CPU busy when all is loaded in the GPU.
Octane use max. 5% of all CPU cores during render, Cycles use one core 100% for each GPU.
Reduce CPU usage was implemented for some time but was reverted because of some problems on different GPU.
… and it never come back.
Sometimes I think to much energy goes in to bright new features like OSL, nobody uses, 3D Stereo render nobody use too and nobody spent time in to the basics.
Switch devices on and off for render for example.

Cheers, mib

you know that you’re gonna upset stereo & osl people, right? :wink:

Yes, but these are only examples.
I am not often write such contributions but sometimes … :wink:

Cheers, mib

And a lot of people will not use cycles if it was only CPU :wink:

an opinion like that is so personal that one should keep it for him/herself

As you can see in both mib2berlins and nudelZ comment, everyone has different opinions and priorities. We try to move forward both CPU and GPU at the same rate, but GPU is definitely more difficult and we indeed spend too much time on compiler/driver related GPU issues already. If you are not happy with something, contribute code! Otherwise you have to accept that we are not a render development team of 10 people, nor do we have 50 GPUs to test all possible combinations.

I always forget of how much childish can be a FOSS developer, then suddenly here’s this usual shit theme comimg out of nowhere.
And the problem is that it doesn’t came out in a moment of lack of mental clarity… people really believes to be Confucius when
they say it…

Dang I’ve finished my popcorn
/Off-topic

Why is that childish? It’s a fact.

In commercial software, you have 2 choices when you want a feature or improvement: Hope they implement it or stop using their software if they don’t. In Open Source you have one more, implement it yourself. :wink:

Not everyone is a LazyVirus. :stuck_out_tongue:

Really? That was the main message you got from that post?

You do realize that Cycles currently only has one employed coder (Sergey), who is also doing non-Cycles-related stuff? Everybody else is just working on it for free in their own free time because they like doing it.
Usually it’s pretty great, it’s a challenge, you usually learn new stuff by doing so and generally people are thankful and happy for new features. Until some *** like you comes along and thinks they are entitled to free software and somehow everybody else has an obligation to fix/do/change every single thing that they want done - and that’s the point where you start to think for a short time why you even put effort into it when all you get in return is people like you complaining that you didn’t do X instead.
Just accept it - nobody cares. In fact, even the employed devs don’t have any obligation - the dev fund isn’t dedicated to specific funding targets like e.g. the Krita funding campaigns.
DingTo is totally correct here, I’d even kind of agree with the modified form you misquoted (except that nobody minds actual requests as long as they’re not in the form “holy shit, why does nobody add X, are you all stupid?”). Again - nobody owes you anything.

Again, to make it clear for you, you have these four options if you don’t like something about a FOSS project:

  • Suggest it to be changed and hope that it’s going to be implemented - but again, don’t think that anybody is obliged to do it
  • Change it yourself - you know, actually do something to help others as well instead of sitting back and criticizing others that write free software for you
  • Pay somebody to change it
  • Use another software, it’s not like Blender is the only 3D tool - oh wait, you don’t want to pay for your software? Well, then either accept what you get for free or follow options 1-3.

Sorry for the rant, but this entitled attitude towards FOSS projects in general annoys me a lot…

Quoted for agreement. I am trying to learn to code to make things work for me, and in so doing maybe change the minds of devs that don’t see my needs in their own workflows. And in learning a little bit, I learn a lot.

Today should be dev appreciation day.

GPU path tracing is, at best, a cool toy as far as production animation is concerned. At worst, it’s a drain on limited resources that could be better spent on battle-proven R&D. And I’m not just talking about Cycles. It is a complete non-starter for production. Arch-viz and product rendering are the only fields it’s thrived in. That’s not to say that arch and product viz aren’t important fields, but the stated purpose from day 1 for Cycles has been production animation, and GPU just doesn’t fit the capacity needs of most production-sized shots in 2016. Even the most vRAM-liberal GPU available today couldn’t even hold the data necessary for medium-low sized production scenes. Even if this weren’t an issue, when choosing a GPU, you can never increase the amount of memory available to your shot. This will never be an acceptable solution for production. For the cost of a max RAM GPU, you could drop two very powerful CPUs plus a boatload of memory into a rack.

I get that GPU is a nice thing to have for individual Blender users who are impatient with render times on their home PC, but for anyone in the business of getting large projects rendered it’s nothing more than an interesting concept that might be useful some time in the future. This doesn’t really personally affect me, as Cycles isn’t my main renderer, but GPU development definitely takes time away from areas of Cycles that could use some serious love to make it truly production-ready. Full GPU support should be the cherry that sits on top of the Cycles package, not the feature that holds it back from going where it needs to be.

As mentioned above, Sergey is one guy who basically has all of the (official) burden of Cycles on his back, in addition to the other areas of Blender he’s expected to develop for. When you have a complicated project with that kind of limited manpower, trimming the fat so to speak is a necessity, and for Cycles’ intended purpose, GPU rendering is certainly fat for the time being.

Great post Lukas :slight_smile:

It’s easy to point fingers at developers, but don’t forget that each and one of us also started contributing once. I started in 2009, during 2.5x, because I wanted to bring Blender further. I didn’t post in a forum that I am unhappy about the development, I learned coding and started helping.

Please try not to generalize personal opinions with the whole community. Something very good at OpenSource is that you can discuss with developers face to face. This is not very common in other software, with some exceptions.
So let’s try to keep this, developers coming here and often explaining technical issues and teaching us things is very nice.

@LazyVirus, To be honest, I do not like much when you propose something and developer answer: “if you want, you code”. I just would prefer they let it pass unanswered. If they believe that the user proposal is useful and means a challenge for them, then take it. Otherwise, leave it. But we must also bear in mind that often these proposals are not made with the best tone and politely.
Fortunately not all us are equal and each of us have different capabilities. Imagine the world being all programmers, it would be a disaster :slight_smile: (just kidding)
Anyway I understand OpenSource developers, especially when some users does not value the work they do.

As freelancer I only use GPU for my little productions videos because it’s always in a short time and GPU allows me to prepare assets faster than CPU.
After I send it to a farm with CPU/GPU or I calculate it myself on my PC in GPU + CPU.
I have 2 GPU’s on this PC, 1 on the other, so I can calculate 5 images at the same time.

GPU is not production ready, but in 5 years, we will have cards with more than 32GO.
If dev’s allows the use of the system ram like octane or redshift, that will be better.

So, GPU is usefull.

Lol
Here they are the fierce dogs defenders of the sweetheart god nature of blender’s developers.
I know… They can’t fail as humans do.
You can stop growling and worryin about devs’ personal hygiene and go back to your normal own blls licking activity.

I’ve just said that slap the door, or build a wall, or show the ranks, or whatever action to close the discussion in front to someone in is childish. In a community everyone contributes with what he can, even an opinion or a critique.
But no, if you’re not a developer you deserve to be humiliated with this sentence. You’re not able to do it by yourself? Shut up.

Imagine what would have happened if I had said that I saw the mother of a developer strolling sunset boulevard last night.

Lukas, I stopped reading your rant after few lines cause it’s not the point but you had your love from others so you’ve made a good deal.

Until a developer puts you in what he thinks is your place. And that’s the point. God be praised.

vv @mod vv
Yeah this sentence is used with your meaning as Santa Claus will win the woman Nobel’s prize for medicine. And we were all born yesterday. Anyway case closed… as if I ever had intention to open it.