Blender 2.81/2.82 - OpenCL - Significan slow render times #71479

Closed
opened 2019-11-10 21:03:29 +01:00 by Grzegorz Wereszko · 43 comments

System Information
Operating system: Windows 10 - AMD drivers 19.10.1
Graphics card: RX Vega 64

Blender Version
Broken: 2.81 - eefd806afc & 2.82 - 23e1fb365b
Worked: 2.80 - official build

Short description of error
Cycles OpenCL - Using default BMW pulled from Blenders benchmark section, rendering in latest 2.81/2.82 experimental builds have significant slow render times

Exact steps for others to reproduce the error
Car Demo scene from : https://www.blender.org/download/demo-files/
Blender 256 128 64 32 Build
2.80 1m28s 1m30s 1m39s 1m56s official
2.81 2m.34s 2m34s 2m43s 3m20s eefd806afc
2.82 2m.35s 2m34s 2m43s 3m25s 23e1fb365b

more details and test by others reporting similar issue on blender nation post:
https://blenderartists.org/t/very-slow-gpu-rendering-in-cycles-opencl-blender-2-81/1186239

**System Information** Operating system: Windows 10 - AMD drivers 19.10.1 Graphics card: RX Vega 64 **Blender Version** Broken: 2.81 - eefd806afc15 & 2.82 - 23e1fb365b65 Worked: 2.80 - official build **Short description of error** Cycles OpenCL - Using default BMW pulled from Blenders benchmark section, rendering in latest 2.81/2.82 experimental builds have significant slow render times **Exact steps for others to reproduce the error** Car Demo scene from : https://www.blender.org/download/demo-files/ Blender 256 128 64 32 Build 2.80 1m28s 1m30s 1m39s 1m56s official 2.81 2m.34s 2m34s 2m43s 3m20s eefd806afc15 2.82 2m.35s 2m34s 2m43s 3m25s 23e1fb365b65 more details and test by others reporting similar issue on blender nation post: https://blenderartists.org/t/very-slow-gpu-rendering-in-cycles-opencl-blender-2-81/1186239

Added subscriber: @Prodeous

Added subscriber: @Prodeous

#71859 was marked as duplicate of this issue

#71859 was marked as duplicate of this issue
Member

Added subscriber: @Jeroen-Bakker

Added subscriber: @Jeroen-Bakker
Member

Yes, I have noticed this also. The reason is that there are a lot of nodes/complexity (4d noise) added to cycles. The AMD compiler doesn't do an excellent job at reusing registries resulting that less work that can be done in parallel and speeds down the rendering process dramatically. This needs further investigation.

Yes, I have noticed this also. The reason is that there are a lot of nodes/complexity (4d noise) added to cycles. The AMD compiler doesn't do an excellent job at reusing registries resulting that less work that can be done in parallel and speeds down the rendering process dramatically. This needs further investigation.

Added subscriber: @Adam-Burke

Added subscriber: @Adam-Burke

Added subscriber: @OmarEmaraDev

Added subscriber: @OmarEmaraDev
Member

After benchmarking the BMW scene on 23564583a4988778b4c43496fd21818b286f6ba1 and 45d4c925799e94c6d442a9a9066af2d3305724e1, which are the commits before and after the new noise functions were added, there isn't any regression.

Since the Noise node is the only node in the BMW scene that we touched during GSoC, then the regression must be due to the increased size of the kernel as Brecht described before, perhaps due to the Voronoi node.

I will bisect the code and try to find the source of the regression.

After benchmarking the BMW scene on `23564583a4988778b4c43496fd21818b286f6ba1` and `45d4c925799e94c6d442a9a9066af2d3305724e1`, which are the commits before and after the new noise functions were added, there isn't any regression. Since the Noise node is the only node in the BMW scene that we touched during GSoC, then the regression must be due to the increased size of the kernel as Brecht described before, perhaps due to the Voronoi node. I will bisect the code and try to find the source of the regression.
Member

Just confirmed that the new Voronoi is the source of the regression. What can we do about this?

Just confirmed that the new Voronoi is the source of the regression. What can we do about this?
Member

@OmarEmaraDev first check if we can speed it up by commenting out the case 4: in svm_node_tex_voronoi and if this speeds the rendering up we could add this case in a special NODE_FEATURES construction.

My experience is that sometimes small changes can have huge impact in OpenCL rendertimes. It is not based on what is used, but what is compiled.

Last week we did several performance tests and it seems that the Vega architecture is really dropping behind. The Polaris architecture seems to hold up better. I don't have any data about NAVI atm.

The next results are from BMW on an AMD RX480

  • 2.80 (3:10)
  • 2.81 (5:48)
  • 2.81 excluding 4d voronoi (4:05)
  • 2.81 excluding 4d voronoi+mus+noise (4:05)
  • 2.81 excluding 4d voronoi+3d smooth (3:52)
  • 2.81 excluding 4d voronoi+3d (3:52)
  • 2.81 excluding 4d voronoi+3d smooth + 2d smooth (3:50)
@OmarEmaraDev first check if we can speed it up by commenting out the `case 4:` in `svm_node_tex_voronoi` and if this speeds the rendering up we could add this case in a special `NODE_FEATURES` construction. My experience is that sometimes small changes can have huge impact in OpenCL rendertimes. It is not based on what is used, but what is compiled. Last week we did several performance tests and it seems that the Vega architecture is really dropping behind. The Polaris architecture seems to hold up better. I don't have any data about NAVI atm. The next results are from BMW on an AMD RX480 * 2.80 (3:10) * 2.81 (5:48) * 2.81 excluding 4d voronoi (4:05) * 2.81 excluding 4d voronoi+mus+noise (4:05) * 2.81 excluding 4d voronoi+3d smooth (3:52) * 2.81 excluding 4d voronoi+3d (3:52) * 2.81 excluding 4d voronoi+3d smooth + 2d smooth (3:50)

Added subscriber: @brecht

Added subscriber: @brecht

Tagging with 2.81 since this fix really should go in the release.

Tagging with 2.81 since this fix really should go in the release.
Jeroen Bakker self-assigned this 2019-11-13 08:00:40 +01:00

This issue was referenced by e527544b76

This issue was referenced by e527544b766bb01fb95bff1d98fe5a246aaf7398
Jeroen Bakker was unassigned by Brecht Van Lommel 2019-11-13 15:43:56 +01:00

I think this is sufficiently resolved now for the 2.81 release.

During the 2.82 cycle we can look at getting back a bit more of the performance since it's still not fully the same.

I think this is sufficiently resolved now for the 2.81 release. During the 2.82 cycle we can look at getting back a bit more of the performance since it's still not fully the same.

@Jeroen-Bakker, not sure if you wanted to be assigned this follow up task, up to you.

@Jeroen-Bakker, not sure if you wanted to be assigned this follow up task, up to you.

Just wanted to say thanks for the work you are doing. I can confirm that render time is much better on my setup as well.

2.80 - 1m28s
2.81 - 2m34s
Nov14 builds
2.81 - 1m46s

Just wanted to say thanks for the work you are doing. I can confirm that render time is much better on my setup as well. 2.80 - 1m28s 2.81 - 2m34s Nov14 builds 2.81 - 1m46s
Member

Added subscriber: @tm9000

Added subscriber: @tm9000

Added subscriber: @MarcinJ

Added subscriber: @MarcinJ

I would like to confirm that the issue is still present on official 2.81.

Windows 10
GPU: Radeon VII (19.11.3).
CPU: Ryzen 3800X

I've tested rendering using Class Room scene (256*256)
2.80 (official) 2m40s
2.81 (official) 3m20s

I would like to confirm that the issue is still present on official 2.81. Windows 10 GPU: Radeon VII (19.11.3). CPU: Ryzen 3800X I've tested rendering using Class Room scene (256*256) 2.80 (official) 2m40s 2.81 (official) 3m20s

Added subscriber: @esciron

Added subscriber: @esciron

Added subscriber: @enenra

Added subscriber: @enenra

Added subscriber: @ucupumar

Added subscriber: @ucupumar

Added subscriber: @cerebral

Added subscriber: @cerebral

Thank you so much for this task and making this a priority! Maybe my new GPU won't have been a mistake after all <3

Thank you so much for this task and making this a priority! Maybe my new GPU won't have been a mistake after all <3

Added subscriber: @UrbenLegend

Added subscriber: @UrbenLegend
Jeroen Bakker self-assigned this 2020-01-21 08:59:16 +01:00
Member

Due to the changes done we are not in line with 2.80. There is still one task open to be able to create OpenCL2.0 contextes which will improve memory intensive renders (Barbershop). Will mark this issue with TODO and close it when the patch is finished

Due to the changes done we are not in line with 2.80. There is still one task open to be able to create OpenCL2.0 contextes which will improve memory intensive renders (Barbershop). Will mark this issue with TODO and close it when the patch is finished
Jeroen Bakker removed their assignment 2020-02-21 09:46:07 +01:00

Marking as high priority since this is something we want to address for the 2.83 release. @Jeroen-Bakker has submitted a patch to use OpenCL 2.0 which will helps, but currently requires some manual configuration which I'll try to find an automatic solution for.

Marking as high priority since this is something we want to address for the 2.83 release. @Jeroen-Bakker has submitted a patch to use OpenCL 2.0 which will helps, but currently requires some manual configuration which I'll try to find an automatic solution for.

Added subscriber: @Forshu-2

Added subscriber: @Forshu-2

Added subscriber: @BartekMoniewski

Added subscriber: @BartekMoniewski

Added subscriber: @CoderWolf

Added subscriber: @CoderWolf

This issue was referenced by blender/cycles@d3dada9dfe

This issue was referenced by blender/cycles@d3dada9dfe44b70a796118c6d855fa2da6e9978d

This issue was referenced by 5801a016d4

This issue was referenced by 5801a016d4cf2384274b0f813e29d61662dc8ee2

This issue was referenced by blender/cycles@8817bed777

This issue was referenced by blender/cycles@8817bed777242ffa6526dc260dfbbc240bf367cb

This issue was referenced by 2bec6f1f06

This issue was referenced by 2bec6f1f06dff400d3b5abd08064ef05312a29bf

This issue was referenced by blender/cycles@c26a983fe4

This issue was referenced by blender/cycles@c26a983fe457b56bc09350fbcc5d98be6c02727c

This issue was referenced by 394a1373a0

This issue was referenced by 394a1373a0cd20b7d0660df4bf80e1231e33cba9

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Brecht Van Lommel self-assigned this 2020-03-24 20:17:51 +01:00

From my testing this is resolved now. If others still find significant performance regressions please let me know.

For reference, here are my performance measurements:
{F8427295, size=full}

I have this set up now to test CPU, CUDA, Optix and OpenCL performance, so we should be able to catch issues like this early in the future.

From my testing this is resolved now. If others still find significant performance regressions please let me know. For reference, here are my performance measurements: {[F8427295](https://archive.blender.org/developer/F8427295/AMD_radeon_pro_WX9100.png), size=full} I have this set up now to test CPU, CUDA, Optix and OpenCL performance, so we should be able to catch issues like this early in the future.

Unfortunately I can NOT confirm this issue is solved.

I'm using Vega 64GPu (also tested on 2 other vega 56 GPU's i have in my build. times blow are for Vega64.

  1. WIndows 10, fresh install (last weekend)
  2. Radeon drivers 20.3.1

BMW27_gpu.blend file pulled from blender.org site. no changes to any settings.

Times are average of 3 runs, excluding first as that includes also kernel compile.

blender 2.80 - 1m27s
Blender 2.82a - 1m54s
Blender 2.83 - 1m58s (todays build - 94b8166a8b)

Unfortunately I can NOT confirm this issue is solved. I'm using Vega 64GPu (also tested on 2 other vega 56 GPU's i have in my build. times blow are for Vega64. 1. WIndows 10, fresh install (last weekend) 2. Radeon drivers 20.3.1 BMW27_gpu.blend file pulled from blender.org site. no changes to any settings. Times are average of 3 runs, excluding first as that includes also kernel compile. blender 2.80 - 1m27s Blender 2.82a - 1m54s Blender 2.83 - 1m58s (todays build - 94b8166a8b05)

94b8166a8b does not include the fix yet, it will be in the next build.

94b8166a8b does not include the fix yet, it will be in the next build.

Classroom scene - file dated 2019-06-13 (pulled from blender https://www.blender.org/download/demo-files/

changes : set to GPU and 256x256 tiles

2.80 - 3m12s
2.82a - 5m34s
2.83 - 7m15s... (build - 94b8166a8b)

Classroom scene - file dated 2019-06-13 (pulled from blender https://www.blender.org/download/demo-files/ changes : set to GPU and 256x256 tiles 2.80 - 3m12s 2.82a - 5m34s 2.83 - 7m15s... (build - 94b8166a8b05)

fingers crossed, and eager to test. will test again tomorrow and report back.

fingers crossed, and eager to test. will test again tomorrow and report back.

There's a new Windows build now with the fix.
https://builder.blender.org/download/

There's a new Windows build now with the fix. https://builder.blender.org/download/

Thanks, here are results, confirming the fix.

BMW
Blender 2.80 - 1m27s
Blender 2.83 - 1m23s (fixed version)

Classroom
Blender 2.80 - 3m12s
Blender 2.83 - 2m57s (fixed version)

nice to get even faster renders. don't see any visual differences between the version.

Again thanks for the work.

Thanks, here are results, confirming the fix. BMW Blender 2.80 - 1m27s Blender 2.83 - 1m23s (fixed version) Classroom Blender 2.80 - 3m12s Blender 2.83 - 2m57s (fixed version) nice to get even faster renders. don't see any visual differences between the version. Again thanks for the work.
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
15 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#71479
No description provided.