Page MenuHome

Force GPU rendering python script
Open, NormalPublic

Description

In our quest to get our GPU workers to use all available GPU's we have found a script.

This script doesn't work when added to the script>startup directory. We don't know why.

But, when added to the commandline in the yaml file of the manager it works perfectly.

Add this to the commandline. --enable-autoexec --python "S:/-location script-/gpurender.py"

gpurender.py is below script.

# ##### BEGIN GPL LICENSE BLOCK #####
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software Foundation,
#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####

# <pep8 compliant>
import bpy
bpy.context.user_preferences.addons['cycles'].preferences.compute_device_type = 'CUDA'
bpy.context.user_preferences.addons['cycles'].preferences.compute_device = 'CUDA_MULTI_2'

Our request is to have this be added in the flamenco worker code or something. And have a checkbox somewhere to enable this feature..

We hope it helps!

With kind regards,
Dennis Teusink

Details

Type
Patch

Event Timeline

Dennis Teusink (Teus) triaged this task as Normal priority.

We are urgently need this feature

Something like this should work:

import bpy

scene = bpy.context.scene
scene.cycles.device = 'GPU'

prefs = bpy.context.user_preferences
cprefs = prefs.addons['cycles'].preferences

# Attempt to set GPU device types if available
for compute_device_type in ('CUDA', 'OPENCL', 'NONE'):
    try:
        cprefs.compute_device_type = compute_device_type
        break
    except TypeError:
        pass

# Enable all CPU and GPU devices
for device in cprefs.devices:
    device.use = True

Thanks @Brecht Van Lommel (brecht)!

@joel heethaar (joel_nl) I've added Brecht's script to Flamenco Worker, to the T53099-gpu-rendering branch, but I haven't created anything around that yet. Can you test that the script works by adding --enable-autoexec --python "/path/to/flamenco-worker/flamenco_worker/enable_all_gpus.py" to the blender variable in your flamenco-manager.yaml?

Adding the script to my blender variable in flamenco-manager.yaml works for me.