New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Check if we can decrease the RAM usage #151
Comments
I have removed the need for Python buffers during the restructuring of the pyluxcoreforblender conversion functions. I will also remove the intermediate float arrays in all functions where we simply Even after the optimizations mentioned above, I'm a bit puzzled. Yet, this is the RAM usage I observe for the Blender process (includes LuxCore RAM usage):
Settings: PATHCPU, SOBOL, path depths total: 7, diffuse: 5, glossy: 5, specular: 6 I used 8 CPU threads for all tests. Why does LuxCore need this much RAM? [LuxCore][4.906] Configuration:
[LuxCore][4.906] path.pathdepth.total = 7
[LuxCore][4.906] path.pathdepth.diffuse = 5
[LuxCore][4.906] path.pathdepth.glossy = 5
[LuxCore][4.906] path.pathdepth.specular = 6
[LuxCore][4.906] sampler.sobol.adaptive.strength = 0.69999998807907104
[LuxCore][4.906] sampler.random.adaptive.strength = 0.69999998807907104
[LuxCore][4.906] sampler.metropolis.largesteprate = 0.40000000000000002
[LuxCore][4.906] sampler.metropolis.maxconsecutivereject = 512
[LuxCore][4.906] sampler.metropolis.imagemutationrate = 0.10000000000000001
[LuxCore][4.906] film.filter.type = "BLACKMANHARRIS"
[LuxCore][4.906] film.filter.width = 1.5
[LuxCore][4.906] lightstrategy.type = "LOG_POWER"
[LuxCore][4.906] renderengine.type = "PATHCPU"
[LuxCore][4.906] film.height = 3000
[LuxCore][4.906] film.width = 4000
[LuxCore][4.906] scene.epsilon.min = 9.9999997473787516e-06
[LuxCore][4.906] scene.epsilon.max = 0.10000000149011612
[LuxCore][4.906] sampler.type = "SOBOL"
[LuxCore][4.906] path.forceblackbackground.enable = 0
[LuxCore][4.906] renderengine.seed = 1
[LuxCore][4.906] film.outputs.0.index = 0
[LuxCore][4.907] film.outputs.0.filename = "RGB_IMAGEPIPELINE_0.png"
[LuxCore][4.907] film.outputs.0.type = "RGB_IMAGEPIPELINE"
[LuxCore][4.907] film.imagepipelines.0.radiancescales.0.enabled = 1
[LuxCore][4.907] film.imagepipelines.0.radiancescales.0.globalscale = 1
[LuxCore][4.907] film.imagepipelines.0.radiancescales.0.rgbscale = 1 1 1
[LuxCore][4.907] film.imagepipelines.0.0.type = "NOP"
[LuxCore][4.907] film.imagepipelines.0.1.type = "TONEMAP_AUTOLINEAR"
[LuxCore][4.907] film.imagepipelines.0.2.type = "TONEMAP_LINEAR"
[LuxCore][4.907] film.imagepipelines.0.2.scale = 0.5
[LuxCore][4.907] batch.haltthreshold = 0.0001
[LuxCore][4.907] batch.haltthreshold.stoprendering.enable = 0
[LuxCore][4.907] batch.haltspp = 0
[LuxCore][4.907] batch.halttime = 0 |
luxcoreui needs 2.7 GiB of RAM. |
@Theverat How's going ? |
I'm waiting for Dade to look into this issue. |
After Dade's latest changes as of commit LuxCoreRender/LuxCore@b3505a2, luxcoreconsole now needs 509 MiB on Linux (built without OpenCL) with 8 threads to render the testscene (previous RAM usage was 2.7 GiB). The average samples/sec after 55 seconds rendertime: |
More complex is the scene, less samples/sec there are to splat and smaller is the difference. The difference is also related to the kind of CPU used (some as a more modern/fast support for atomic ops). A not marginal benefit of a single film is also no more thread film merges (aka film updated is very fast and doesn't requires anymore 30+secs for very high resolutions). |
Sounds good, thanks for your work Dade! |
Compared to Cycles, our RAM usage is extremely high, most noticeable with high-resolution film size.
Find out where we can save RAM.
For example, I think each render pass needs 3 times as much RAM as strictly necessary:
Maybe we can save number 2 by directly converting from LuxCore AOV to Blender pass rect in the pyluxcoreforblender helper functions.
Todos:
The text was updated successfully, but these errors were encountered: