v2.3 Vs v2.4 performance

Discussion related to the LuxCore functionality, implementations and API.
User avatar
lacilaci
Donor
Posts: 1930
Joined: Fri May 04, 2018 5:16 am

Re: v2.3 Vs v2.4 performance

Post by lacilaci » Sun May 03, 2020 11:24 am

Slower rendering is always better than any precomp. process. Anyway, would like to see if cuda specific features or some other improvement could regain the performance.

An interesting example of new features sometimes slowing down rendering is recent rtx update on octane.

A very simple scene mostly containing shaders rather than geometry can actually render a bit slower than on cuda(as reported by many users on internet)

However this is offset by pretty big speedups on scenes that contain a lot of geometry (logically cause that's what rt cores do fast) and massive speedups with heavily instanced geometry (scattered grass paches, trees, mesh based particle systems)

Anyways, I take +/- 15% performance penalty any day over looking 2 minutes at a "compiling kernels" message every time I hit render.

User avatar
Sharlybg
Donor
Posts: 2155
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: v2.3 Vs v2.4 performance

Post by Sharlybg » Sun May 03, 2020 11:44 am

All that isn't completely clear to me but in the animation i'm working on (with 2.4 cuda) i'm facing some hard choice :

Time before rendering start can be tricky when you wann't spend more than 60secs/frame in a 6000+ frame animation.
caches become a bit useless in exterior + reflective surface like Car / Wet road / Metallic surfaces. But they are amazing as soon as we go other 2 min render per frames with matte surfaces.
30sc for compilation /mesh export / cache compute and then 1mn 30 for the rendering.

Sure that the best will be to not have to spend more than 10 sc for all stuff before rendering and get the same boost as PGI no matter the scenes Lighting / shading condition.
Support LuxCoreRender project with salts and bounties

Portfolio : https://www.behance.net/DRAVIA

epilectrolytics
Donor
Posts: 703
Joined: Thu Oct 04, 2018 6:06 am

Re: V2.4 performance, background kernel hard compilation possible?

Post by epilectrolytics » Sun May 03, 2020 12:27 pm

Dade wrote:
Sun May 03, 2020 10:55 am
It is easier to just have a flag to use the generic, feature-complete kernel or the on-the-fly generated and compiled kernel. In one case, there is no kernel re-compilation, on the other you pay the cost of a kernel recompilation but you have a faster rendering.
...
Anyway, in both case, I have to (optionally) re-enable conditional compilations ... for God sake ....
...
Short version: no solution is optimal in all cases, you may need both.
It would be awesome to get v2.2 render speed back as an option to enable conditional compilations.

Just tested v2.2 "session init time" on Blender 2.80 (caches disabled):
Food scene: 11.1s
Hall Bench: 6.4s
Benchmark2.1: 4.8s, 7.9s on Intel Mac with Blender 2.79b and BlendLuxCore 2.1

Does anyone have a really heavy scene to test?

User avatar
Dade
Developer
Posts: 4509
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: V2.4 performance, background kernel hard compilation possible?

Post by Dade » Sun May 03, 2020 2:25 pm

epilectrolytics wrote:
Sun May 03, 2020 12:27 pm
Just tested v2.2 "session init time" on Blender 2.80 (caches disabled):

Food scene: 11.1s

on Intel Mac with Blender 2.79b and BlendLuxCore 2.1
You have not erased the kernel cache, it doesn't include compilation time (note: NVIDIA driver has it is own cache).
Support LuxCoreRender project with salts and bounties

epilectrolytics
Donor
Posts: 703
Joined: Thu Oct 04, 2018 6:06 am

Re: V2.4 performance, background kernel hard compilation possible?

Post by epilectrolytics » Sun May 03, 2020 3:05 pm

Dade wrote:
Sun May 03, 2020 2:25 pm
You have not erased the kernel cache, it doesn't include compilation time
How can I erase the kernel cache in order to measure correct compilation time?

In the meantime I tried this:
- restart PC
- open LuxCoreUI v2.2
- open food scene cfg file
- render starts after ~8 seconds
- copy console output
food.txt.zip
(16.29 KiB) Downloaded 27 times

User avatar
Dade
Developer
Posts: 4509
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: V2.4 performance, background kernel hard compilation possible?

Post by Dade » Sun May 03, 2020 4:34 pm

epilectrolytics wrote:
Sun May 03, 2020 3:05 pm
Dade wrote:
Sun May 03, 2020 2:25 pm
You have not erased the kernel cache, it doesn't include compilation time
How can I erase the kernel cache in order to measure correct compilation time?

In the meantime I tried this:
- restart PC
- open LuxCoreUI v2.2
- open food scene cfg file
- render starts after ~8 seconds
- copy console output
food.txt.zip
It is a NVIDIA driver/OS specific directory. I have no idea where it is on MacOS. The easier way is to edit the OpenCL sources so to force a recompilation but indeed it is something you can do only if you compile your exes.
Another possible trick is to edit the scene and add a mix material of some kind so to produce different kernel sources.
Support LuxCoreRender project with salts and bounties

User avatar
Dade
Developer
Posts: 4509
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: v2.3 Vs v2.4 performance

Post by Dade » Mon May 04, 2020 3:43 pm

We are a bit chasing a "ghost". The difference is huge in very simply scenes while, more complex is the scene, and smaller is the difference up to the point where v2.4 starts to become faster. This is the LuxMark "Complex" benchmark scene (about 5,000,000 triangles) with v2.3:

v23.jpg

and this with v2.4 with CUDA and cache-friendly Sobol settings:

v24.jpg

V2.4 is faster even without factoring kernel compilation. Note that this "Complex" scene is using 719MB out of 8GB of my RTX 2070 (so it isn't exactly "Complex").

This pattern is going to become even more noticeable with RTX where the benefit are likely to be noticeable over 5,000,000+ triangles and significative over 10,000,000+ triangles.
For the above reasons, it doesn't look like is worth going trough all the trouble of re-implementing conditional compilation just to render simpler scene faster.
Support LuxCoreRender project with salts and bounties

User avatar
B.Y.O.B.
Developer
Posts: 3681
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: v2.3 Vs v2.4 performance

Post by B.Y.O.B. » Mon May 04, 2020 3:55 pm

We can also look into two topics to speed things up:

- Optimize shader node trees after parsing them: For example, evaluate constant expressions and replace them with a constfloat/constfloat3 texture. Or, if an image is only used once, apply all operations between the image and the first material directly to the image pixels. Or replace simple band textures with mix textures when they are equivalent.

- Check if we can abandon some old textures at some point. For example, the "Blender noise" texture is something that is very rarely useful, but causes a lot of confusion and wrong usage. Or the dot texture, which is basically just a fixed pattern with no customization options - I don't think I've ever seen anyone use it.
(On the other hand, I also want to add a lot of textures (the Cycles/Eevee procedural textures), so we have to see how this goes)

edit:
Also, we could check if removing some obsolete features would bring performance benefits, e.g. the BC denoiser.

epilectrolytics
Donor
Posts: 703
Joined: Thu Oct 04, 2018 6:06 am

Re: v2.3 Vs v2.4 performance

Post by epilectrolytics » Mon May 04, 2020 6:11 pm

Dade wrote:
Mon May 04, 2020 3:43 pm
We are a bit chasing a "ghost". The difference is huge in very simply scenes while, more complex is the scene, and smaller is the difference up to the point where v2.4 starts to become faster. This is the LuxMark "Complex" benchmark scene (about 5,000,000 triangles) with v2.3:
. . .
and this with v2.4 with CUDA and cache-friendly Sobol settings:
. . .
For the above reasons, it doesn't look like is worth going trough all the trouble of re-implementing conditional compilation just to render simpler scene faster.
You're right about v2.3 vs v2.4 not making a big difference.

But the big difference in render speed is with v2.2 vs v2.4.
hotel.jpg
V2.2 renders 50 percent faster then today's build of v2.4 on my PC.
Compilation time around 10s.

Maybe you could make a poll to find out what users think?

User avatar
B.Y.O.B.
Developer
Posts: 3681
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: v2.3 Vs v2.4 performance

Post by B.Y.O.B. » Wed May 13, 2020 10:29 pm

Split some off-topic posts into a separate thread: viewtopic.php?f=4&t=2181

Post Reply