Improvements to Deadline for Houdini + Arnold GPU

I have figured out solutions to 2 functions I found lacking in Deadline.
There was no way to use Arnold GPU on Deadline.
If rendering with chunk size > 1 the Deadline progress report would show frame progress, not task progress. Therefore the progress percentage would be no indication of total task progress.

  1. The following code to hrender_dl.py on line 623 will enable Arnold GPU on Deadline. It will actually set the rop parameters that make Arnold run on the GPU. Note these parameters will need to be editable.
if gpus is not None and sys.platform is not "darwin":
    gpu_string = " ".join(list("gpu%s" % gpu for gpu in gpus.split(",")))
    rop.parm("ar_render_device").set("GPU")
    rop.parm("ar_render_device_fallback").set("error")
    rop.parm("ar_gpu_default_names").set("")
    rop.parm("ar_manual_device_selection").set(True)
    rop.parm("ar_device_selection").set(gpu_string)
  1. The following code to Houdini.py will make it so that the stdout handler for done will only be invoked if the chunk size (frame list length) is 1. This way if the chunk size is > 1 only the ALFRED progress handler will be used.

The following lines need to be removed from the function InitializeProcess

self.AddStdoutHandlerCallback(".?(\d+)% done.").HandleCallback += self.HandleStdoutFrameProgress

And the following should be added to PreRenderTasks

if len(self.GetCurrentTask().TaskFrameList) <= 1:
   self.AddStdoutHandlerCallback(
       ".*?(\d+)% done.*").HandleCallback += self.HandleStdoutFrameProgress

Sure hope this helps anyone else out there facing these issues.

1 Like
Privacy | Site terms | Cookie preferences