LogicReinc / LogicReinc.BlendFarm

A stand-alone Blender Network Renderer
GNU General Public License v3.0
441 stars 38 forks source link

When there's multiple GPU cards on one device, the first on the list is used #29

Closed kkaveny closed 2 years ago

kkaveny commented 2 years ago

First off, thank you for creating this wonderful tool for people like myself to use for their own DIY renderfarm!

My laptop has multiple GPU cards. Under the DeviceWindowSettings, it would be nice to have a dropdown to where I can designate which GPU I want to use for rendering on my laptop device. Apparently, there is no option so when I try to render an image, it uses the first GPU listed in my computer, which is my default graphics card (see screenshots so you can see what I'm seeing). I want to use my RTX graphics card, but there is no way to do it anywhere.

This would be a huge improvement for myself and others if they can choose. Thanks.

screenshot01 screenshot02

LogicReinc commented 2 years ago

Hey @kkaveny, BlendFarm uses all GPUs available on a device, however, since your device is a Laptop, it likely only exposes one GPU to the application (similarly to games). You'll likely have to launch BlendFarm with your "dedicated GPU". (Heres a link I found explaining it https://pureinfotech.com/set-gpu-app-windows-10/) When starting a Render it will print out all (valid) devices as follows: image A 1 means it will use that device, a 0 means it won't use that device. If your GPU device is not visible there it is likely your Laptop is hiding it from BlendFarm/Blender for energy consumption reasons.

I hope this helps you out. Let me know if you solved it/have additional info.

kkaveny commented 2 years ago

Thanks for the help. I've decided to take a different direction with my render farm build design and moved each gpu to its own individual Linux box. I do have a separate issue I've discovered when testing my renders. I'll file a separate ticket for this.

cyanling2 commented 2 years ago

E0627 17:38:46.387981 2622 shader_eval.cpp:34] Multi-devices are not yet fully implemented, will evaluate shader on a single device. E0627 17:38:46.388047 2622 shader_eval.cpp:34] Multi-devices are not yet fully implemented, will evaluate shader on a single device. E0627 17:38:46.388056 2622 shader_eval.cpp:34] Multi-devices are not yet fully implemented, will evaluate shader on a single device.

Have you ever had this issue? I have multiple GPUs on my server, and all of them are marked as 1. I can observe that there are tasks running on them thru nvidia-smi. However, when it comes to the shader evaluation, I still have this error message. On one server, only one GPU will be used for shading. It would help me a lot if this issue can be solved. Thank you!

LogicReinc commented 2 years ago

@cyanling2 This appears to be a Nvidia issue or Blender issue which I cant resolve. Im not entirely sure how you mean marked as 1. If they are trying to expose them as 1 gpu, that might be causing the issue? I don't have enough context about your setup to make an educated guess.

EDIT: After re-checking I misread you marking them as 1 instead of the previous image I posted. Rest of my ttatement stands. Without more context, my only solution is running them in different computers, or if your server is a hypervisor, expose each to a seperate VM/Container. I haven't experimented too much with multiple GPUs in the same machine (as you know, GPUs and motherboards that can house them aren't a common commodity these days)

cyanling2 commented 2 years ago

I see, thank you for the suggestions!