Page MenuHome

Cycles CPU 25% load only during rendering
Closed, ResolvedPublic

Description

System Information
Operating system: Windows 10 pro
Graphics card: 1080ti
PC: AMD 2990WX, 4x16GB ram

Blender Version
Broken: 2.8 date: 2018-12-24 14:03
Hash: 6d89337257b6

the rendering uses 25% CPU load
auto-detect 64threads, or fixed 64, both same issue,
render output image size 1920*1028, tile size 16*16, progresive rendering does not work - shows tile rendering
the problem does not occur in blender 2.79 - the load is close to 100% there.

many thanks,
Filip{F6078572}

Event Timeline

https://www.anandtech.com/show/13124/the-amd-threadripper-2990wx-and-2950x-review/2 says 2 dies have direct access, 2 do not. But all of them have caches (L3 being 8MB per CCX, 2 CCX per die) so while they will get a performance hit with the extra hop, they should not be 100% useless. https://www.guru3d.com/articles-pages/amd-ryzen-threadripper-2990wx-review,4.html gives less than double time for the double hop case, noticeable but caches could hide part of the issue.

rBce927e15e0e3570a02834b6001519a024ca1e2b6 has special code for 2990WX and while comments talk about nodes 0 and 2 , function calls only use 0 (!?). Suspicously matches that you see 25% used, with 1 & 3 ignored on purpose, 2 not called.

Maybe reverting that commit and testing could show if that is the culprit, and if running with all cores is worse than with half them. In that respect, you probably can try using OS tools to limit 2.79 to different dies (1 without direct RAM, 2 dies but one with the other without, etc) and compare the effects of RAM hops. The important will be seeing the variation in render times between only 2 dies with direct RAM to also using one or both of the indirect RAM dies.

Sebastian Parborg (zeddb) lowered the priority of this task from Needs Triage by Developer to Normal.Dec 27 2018, 1:37 PM

@Sergey Sharybin (sergey) any input on this?

This is expected that only node 0 is used. This is explicitly mentioned in the comment in the code itself. This way job thread is likely to be on a node where .blend file data was read.

The commit referenced here is only affecting render preparation step (when data is being converted from Blender structures to Cycles). Path tracing is not affected by this (well, it is not supposed to anyway). Also, from my tests on Threadripper2 i had all cores occupied.

Does it happen with any file? Can it be seen, with, say, classroom or vector scenes from benchmark bundle?

just tested, see the attachment please{F6085707}