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?
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