I've been working on a project for work on my local machine that eventually made it to our server (specs listed below). On my local machine and, since troubleshooting the issue, many other coworkers' local machines, Blender Renderer seems to be utilizing all CPU cores to render (as expected). However, when it's on the server, it only seems to be rendering with a single core - dinging the CPU in task manager for ~3-5%.

My coworkers and I are at a bit of a loss for what might be happening and don't really know where to go from here on troubleshooting. =\

Here are the specs for the server:

CPU: AMD Ryzen 3900x
Memory: 64GB
GPU: NVidia 1070
OS: Windows Server 2016
Blender: 2.79b
Script: Called via cmd line arg

We're rendering via a python script wrapped inside a Renderer obj/class I made to keep settings consistent across all our scripts. I'm not sure if all of the code below applies to the renderer we're using?

for scene in self.bpy.data.scenes:
    scene.render.threads_mode = 'FIXED'
    scene.render.threads = 24
    scene.render.engine = 'BLENDER_RENDER'
    scene.cycles.device = self.device  # defaults to 'CPU'
    scene.render.resolution_x = 1280
    scene.render.resolution_y = 720
    scene.render.resolution_percentage = quality  # defaults to 100
    scene.render.use_raytrace = False
    scene.render.antialiasing_samples = '5'
    tile_size = 32 if self.device == 'CPU' else 512 # for 'GPU'
    scene.render.tile_x = tile_size
    scene.render.tile_y = tile_size
    scene.render.preview_start_resolution = tile_size
    scene.world.light_settings.samples = 3
    scene.render.filepath = join(output_folder, output_file)
    scene.render.image_settings.file_format = 'FFMPEG'
    scene.render.ffmpeg.format = "MPEG4"
    scene.render.ffmpeg.codec = "H264"
    scene.render.ffmpeg.constant_rate_factor = 'LOW'

I have an intuition there might either be a hardware problem or Windows Server 2016 is somehow bottlenecking the application. Are there any known issues with Ryzen CPU's not utilizing all of their cores?

  • $\begingroup$ Just a hunch, could it be that self.device (unclear how this is set) is not "CPU"? In that case the tile size is so large that you would have few threads operating concurrently at the current render resolution. $\endgroup$ – Robert Gützkow Sep 11 '20 at 21:55
  • $\begingroup$ Aye! Good intuition there! When we were first troubleshooting this, we realized I actually had it defaulted to 'GPU' since I use GPU locally and forgot to set it to 'CPU'. Derp. Well, we set it back to 'CPU' but it doesn't seem to affect the performance/utilization. =\ $\endgroup$ – NinjaBunny9000 Sep 11 '20 at 23:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.