Rendering Hardware Resources

Being a new user, I have looking at all the different features in order to get a feel for the overall application/s.

When doing a rendering test I noticed it is very heavy on both the CPU and GPU. Typically I see rendering engines heavy on 1 or the other, but not both. I saw the Blender CEO doing a recent interview with Intel with regards to CPU rendering. Do we know which hardware resources are doing what tasks?

On 2nd related topic, I have noticed when loading a project, it is multi threading and CPU intensive. Is there a mixture of single and multi threaded processing programmed into the application. I am interested to understand more about the hardware resource ultisation.

Coming from a background of single threaded CAD applications, high freq, low core count CPUs were required. Does the IFC file structure give rise to allow improved multi threaded CAD application?


  • There seem to be two questions here: 1) resources during rendering, and 2) resource during IFC loading.

    For the first, that's a general Blender question which I'm not qualified to answer, but I do know that in the Blender settings you can choose whether or not rendering is performed with the CPU or GPU. I assume there's always a bit of both involved, but that setting will let you choose I assume the primary computation source.

    For the second, there is multithreaded processing during load which is purely CPU which processes the geometry to create tessellated geometry which can be visualised. You can see sample code which does it here: - however once the geometry is processed, it goes back to single threaded to create the Blender objects one at a time. Editing is also single threaded, but drawing generation has portions of the process being multithreaded (e.g. the serialisation of the geometry is multithreaded but the polygon merging is single threaded).

  • Is the single threaded serialization a by-product of the IFC-SPF structure? Would the use of IFC-XML, IFC-SQL, IFC-HDF5, IFC-JSON present opportunity to separate multithreaded operations on smaller data packets due to grouping of related code without the need to have the complete database in memory?

  • Threading is mostly not a function of serialisation, I believe. There are some scenarios where non-sequential serialisations can lead to faster loading in some aspects, but I don't think these are the most important bottlenecks.

Sign In or Register to comment.