Sss gpu render speed degradation #55351

Closed
opened 2018-06-06 15:25:12 +02:00 by Yegor · 10 comments

System Information
CentOS, Nvidia GTX 1070

Blender Version
Broken: 2.79 713027b832 daily build, 2.8
Worked: 2.79b official

Short description of error
Rendering sss on gpu take more time in the daily build and 2.8.
This particular scene: 2.79b - 1:12, 2.79 daily build - 1:23
With more complex shading it was even 1:12 vs 1:38, and 1:42 on 2.8
Rendering on CPU is the opposite - faster in the daily build.
The settings are important. This behavior is only for:
branched path tracing
subsurface samples = 3
hdri as a light source (multiple importance is on)

And what's more, if you set the subsurface in the shader to 0, you'll get almost the same render time, but in 2.79b it'll have noticeably less noise.
Don't know if it's relevant and should i create a new report on this.
2.79b.png

2.79_daily.png

Exact steps for others to reproduce the error
Open the scene.
Hit render.
Repeat in the different versions of blender.
blender_cycles_gpu_speed_degradation.blend

**System Information** CentOS, Nvidia GTX 1070 **Blender Version** Broken: 2.79 713027b8325 daily build, 2.8 Worked: 2.79b official **Short description of error** Rendering sss on gpu take more time in the daily build and 2.8. This particular scene: 2.79b - 1:12, 2.79 daily build - 1:23 With more complex shading it was even 1:12 vs 1:38, and 1:42 on 2.8 Rendering on CPU is the opposite - faster in the daily build. The settings are important. This behavior is only for: branched path tracing subsurface samples = 3 hdri as a light source (multiple importance is on) And what's more, if you set the subsurface in the shader to 0, you'll get almost the same render time, but in 2.79b it'll have noticeably less noise. Don't know if it's relevant and should i create a new report on this. ![2.79b.png](https://archive.blender.org/developer/F3602059/2.79b.png) ![2.79_daily.png](https://archive.blender.org/developer/F3602058/2.79_daily.png) **Exact steps for others to reproduce the error** Open the scene. Hit render. Repeat in the different versions of blender. [blender_cycles_gpu_speed_degradation.blend](https://archive.blender.org/developer/F3601962/blender_cycles_gpu_speed_degradation.blend)
Author

Added subscriber: @YegorSmirnov

Added subscriber: @YegorSmirnov

Added subscriber: @SteffenD

Added subscriber: @SteffenD

First question: Are you using "Hybrid" rendering in master?

I mean this (not available in 2.79b):

Screenshot at 2018-06-06 16-20-05.png

I tried with and without CPU enabled (I have a whimpy 10years old XEONx2 with a GTX780 3GB so the CPU is the weakest part) and here are my results:

Version Tile Size CPU enabled Render Time
2.79b 256x256 No 1.43min
Master 256x256 Yes 12.34min (!!!)
Master 256x256 No 1.45min
Master 32x32 No 1.29min
Master 32x32 Yes 1.31min (CPU is still taking too long per tile)
Master 16x16 Yes 1.22min (Now the tiles are small enough for the CPU to no longer slow down the whole process)

As you can see tile size is king and very important. There was a change after 2.79b where small GPU tiles were no longer a problem so it could be used together with usually smaller CPU tiles.
Most likely your "regression" is none but your render settings just need a little adjustment of the tile size to render even faster than 2.79b.
If you have a halfway decent CPU you will render a lot faster even.

First question: Are you using "Hybrid" rendering in master? I mean this (not available in 2.79b): ![Screenshot at 2018-06-06 16-20-05.png](https://archive.blender.org/developer/F3602475/Screenshot_at_2018-06-06_16-20-05.png) I tried with and without CPU enabled (I have a whimpy 10years old XEONx2 with a GTX780 3GB so the CPU is the weakest part) and here are my results: | Version | Tile Size | CPU enabled | Render Time | -- | -- | -- | -- | | 2.79b | 256x256 | No | 1.43min |Master|256x256| Yes| 12.34min (!!!) |Master|256x256|No| 1.45min |Master| 32x32| No|1.29min |Master| 32x32| Yes|1.31min (CPU is still taking too long per tile) |Master| 16x16|Yes|1.22min (Now the tiles are small enough for the CPU to no longer slow down the whole process) As you can see tile size is king and very important. There was a change after 2.79b where small GPU tiles were no longer a problem so it could be used together with usually smaller CPU tiles. Most likely your "regression" is none but your render settings just need a little adjustment of the tile size to render even faster than 2.79b. If you have a halfway decent CPU you will render a lot faster even.
Author

No, i used GPU only render with 256x256 tile size.
And by the way, i didn't know about smaller tiles improvement! Now i've tried 32x32 and got 1:18. But it takes still a bit more than 256x256 on 2.79b (1:12)

No, i used GPU only render with 256x256 tile size. And by the way, i didn't know about smaller tiles improvement! Now i've tried 32x32 and got 1:18. But it takes still a bit more than 256x256 on 2.79b (1:12)

Depending on your hardware and the scene configuration you might need to fiddle a bit with the tile size to find the sweet spot.
In my case it's almost always 32x32 or 64x64 but that can vary. Like with your scene it's 16x16 although I didn't test 8x8.

Depending on your hardware and the scene configuration you might need to fiddle a bit with the tile size to find the sweet spot. In my case it's almost always 32x32 or 64x64 but that can vary. Like with your scene it's 16x16 although I didn't test 8x8.
Author

No no, the tile size is understood and i'm really happy with those news. On my hardware it works best on 32x32, but the thing is even with this sweet spot it's still a bit slower than 2.79b with 256x256 GPU only. I could get the exact same time with the hybrid render - 1:12, but it's still more, than gpu alone on 2.79b, right?

No no, the tile size is understood and i'm really happy with those news. On my hardware it works best on 32x32, but the thing is even with this sweet spot it's still a bit slower than 2.79b with 256x256 GPU only. I could get the exact same time with the hybrid render - 1:12, but it's still more, than gpu alone on 2.79b, right?
Author

Tested some more scenes and i guess it's scene related and can vary a bit. The speed is about the same. Somehow the tile size speedup slipped away from me. The light behaves a little different, though, but the task can be closed now, i think.

Tested some more scenes and i guess it's scene related and can vary a bit. The speed is about the same. Somehow the tile size speedup slipped away from me. The light behaves a little different, though, but the task can be closed now, i think.
Member

Added subscribers: @Sergey, @brecht, @lichtwerk

Added subscribers: @Sergey, @brecht, @lichtwerk
Member

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'
Philipp Oeser self-assigned this 2018-06-07 09:19:48 +02:00
Member

Generally this might still be of interest to @Sergey and @brecht, but since this is somewhat tamed by the tilesize speedup, will archive as @YegorSmirnov suggested....

Generally this might still be of interest to @Sergey and @brecht, but since this is somewhat tamed by the tilesize speedup, will archive as @YegorSmirnov suggested....
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#55351
No description provided.