Skip to content →

Run SheepIt! Renderfarm on Multiple GPUs Easily

Sheep it is a great, free renderfarm that lets you render your work on fellow Blender users’ computers. All you have to do in return is lend your computer for rendering when you’re not using it, to rack up points which you can then use for rendering.

My biggest gripe with it is the lack of built in support for multiple GPUs, especially as a huge selling point for the Blender Cycles render engine is the multiple graphics card support. The only way to do this previously was clunky and required opening the client multiple times and manually changing the settings for some of the windows but not others.

As someone who uses Sheep It intermitently, it was a huge pain to do this every time I restarted my computer or closed the windows to use my computer for something else.

Luckily, there’s a better way.

The Answer

It’s easy to set up one click multi-GPU rendering. All you have to do is create a simple batch script. Here’s how to do this in Windows.

First, you’ll need to download the Sheep It .jar command line client. Just download the file from that page, you can ignore their instructions. Place it somewhere where you won’t accidentally move it later on. You want to double click the file to open it as a normal client, and input your login details, making sure to tick “save settings”, and then “save”. You can close it before it starts any rendering. This will save you having to write your password into the script later.

Next, you want to hold shift and right click the .jar client. Click “copy as path”.

Now open up notepad and type the following command, replacing “C:\Users\Mohamad\Desktop\sheepit-client-5.354.2796.jar with the path name you just copied”:

start java -jar “C:\Users\Mohamad\Desktop\sheepit-client-5.354.2796.jar” -gpu CUDA_0

start java -jar “C:\Users\Mohamad\Desktop\sheepit-client-5.354.2796.jar” -gpu CUDA_1

start java -jar “C:\Users\Mohamad\Desktop\sheepit-client-5.354.2796.jar” -gpu CUDA_2

This will open three instances of Sheep It, running your first 3 GPUs on their own instanec each. You can change the “CUDA_” string of text after “-gpu” to whatever your graphics cards are called, but they are usually number starting from 0. Alternatively, you can simply add lines to this script for more GPUs or delete them for fewer.

Now go to file, save as, and change the file type from .txt to “All Files (*.*). This will let you change the file extension to .bat, which you need for windows to recognise it as a batch file. Now just give it a sensible name and save it. All you have to do is run the .bat file you just created, and you should instantly have multiple GPUs rendering Sheep It at once!

 

2017-03-12 02_29_30-sheepit_multiGPU.bat - Notepad

I hope that is self explanatory, but if you have any questions please post them below 🙂

CUDA_ What?!

If you’re unsure what the CUDA ID of your graphics cards is, it’s easy to find out.

Make sure you’ve copied the path of your command line client, as we did above. Now open command prompt and type the following command. Again, replace “C:\Users\Mohamad\Desktop\sheepit-client-5.354.2796.jar with the path name you just copied”:

java -jar “C:\Users\Mohamad\Desktop\sheepit-client-5.354.2796.jar” –show_gpu

This will print out details about all your GPUs, along with the CUDA name you can put into the script above. The output will look something like this:

2017-03-12 02_15_18-Edit Post ‹ Moby Motion — WordPress

With Great Power, Comes Great Responsibility

It would be very tempting, and indeed if you wanted to it would be possible to use this method to run CPU and GPU rendering at once. (This is different from ticking both “CPU” and “GPU” on the client; all this does is alternate between the two based on which one has frames available)

In my experience, this impacts the performance of both CPU and GPU greatly. Whereas GPU rendering scales very well to multiple GPUs, it seems that for some reason running both at the same time strains the system too much and neither one runs very well. This seems to be more than a simple CPU constraint as it remains even if you limit the CPU threads.

If you have any ideas why this might be, or any ways to get around it, I’d love to hear them in the comments below.

Anyway, I hope you found this useful and I’ll see you again soon.

Published in Tutorials

  • Thanks! Gonna try soon 😀

  • I’d really like to know more about the CPU+GPU issue. I was sort of counting on rendering on each independently at the same time. Had no clue they would affect each other.

  • MrQozy

    thank you bu8t the command for –show-gpu is wrong.
    please edit it,
    thanks 🙂