Work faster - Create your own Blender, with new modifiers and faster rendering

commercial

(mathieu) #101

You’re welcome :slight_smile:


(Eric Klein) #102

Thank you for the latest build. Here is my testing with this build.

First problem CUDA error rendering with using this blender 2.79 benchmark with my 1x rtx2070. Here is the link The new Cycles CPU 2.79 Benchmark.

CUDA error: Illegal address in mem_alloc_result, line 850
Error: CUDA error: Illegal address in cuCtxSynchronize(), line 1686

I did some benchmarking with your latest build.

BMW scene - 1x rtx2070
Release_E_Cycles_win_RTX_20190103 (auto tiles): 46.66
your latest (auto tiles): 47.36.
your latest (256x256): 57.06.

Classroom scene no compositor and no layers - 2x rtx2070
Release_E_Cycles_win_RTX_20190103 (auto tiles): 1:25.73
your latest (auto tiles): 1:29.87.
your latest (256x256): 1:29.57.

The latest build is little slower compare to previous one.

Another issue is in some scenes like in the BMW scene the auto tiles is noticeably faster than (256x256) tile. I prefer using the 256x256 because the denoiser is a lot faster. Could we improve performance for the 256x256 tile?

In the builds would it be possible to expose the scrambling distance parameter so I can do some testing with it? Now that you have expose dithered sobol.


(mathieu) #103

the few seconds more could come from dithered sobol, as it’s the only addition I made that could have a drawback. But I think it’s worth the 1-4%.

Regarding the crash, it’s because you are reaching a timeout on windows. See https://stackoverflow.com/questions/17186638/modifying-registry-to-increase-gpu-timeout-windows-7. It’s because you use big tile size with crazy materials. There is no single real scene I know that has such a setup like the file they posted. It’s really only a synthetic bench. It doesn’t say much on real case most of the time anyway. But you can decide if you want to modify your registry to have it run. It’s just a driver protection for games, so that when they hang, you can go back to desktop. Linux doesn’t has it and it also works good.

Regarding making the bigger tiles work faster, it’s possible, it will be explained in an advanced tutorial next week. But it has serious drawbacks for many users, so it’s something each student has to decide for himself. That’s the good part for you. You are not bound to decision that fit the most, but can tweak it to your needs.

The advanced tutorial will show how to even get 15-30% faster on top of what you already have :smiley:


(Eric Klein) #104

Just to let you know it is not the gpu timeout I had the registry changes done for rendering with octane. It is not big tile size cycles crashes also with small auto-tiles. The latest build cycle crashes in the benchmark scene. Your previous RTX build and the latest on the head do not. The point is something in your latest changes can cause cycles to crash in certain scenes.

Maybe you could let me know if it is possible to expose the scrambling distance parameter?


(mathieu) #105

Ok, then it comes either from a change in master or from dithered sobol. I will have a look. Could you provide the scene crashing per PM or Email?


(Eric Klein) #106

I did provide link in my previous message. Here it is again The new Cycles CPU 2.79 Benchmark. The latest master and your previous build are fine. It is latest patches that you added in the new build that cause this scene to crash cycles.


(mathieu) #107

Yep, sorry, just woke up :confused: Investigating


(Lissanro Rayen) #108

I just tried Dithered Sobol on top of master - it crashes when trying to render “The new Cycles CPU 2.79 Benchmark”. Even if I choose regular Sobol. Compiled without Dithered Sobol - no crash. Very strange, I tested many different scenes with it and never (until now) experienced a crash. I did not find yet what exactly in the patch causes the crash.


(mathieu) #109

@Dragon.Studio Thanks for testing, I was building without dithered, was my first guess.

Good to know. I will remove dithered sobol until it’s stable as it wasn’t planned at the beginning. Students wanting it can do their own builds with it anyway. I will let the patch with a warning in the downloads.

@Dragon.Studio if you manage to fix it, I’ll restore it in the builds.


(mathieu) #110

It has to do with the principled shader and it’s subsurface code it seems. I had a similar problem 1 year ago with a patch optimizing the principled shader https://developer.blender.org/D2679, it would also crash on this scene. I hope it helps.


(Lissanro Rayen) #111

The issue was that some code for Dithered Sobol was executed even if regular Sobol was chosen (so with CMJ and Dithered Sobol the crash did not occur and only regular Sobol was affected).

I have fixed it, new patch be downloaded here: http://Dragon.Studio/blender-2.80-patches.7z (only patches 0002 and 0003 are needed for Scrambling Distance and Dithered Sobol).


(mathieu) #112

Thanks for the patch, I’ll have a look at it. In the meantime, I compiled and uploaded a version without dithered sobol to be sure. What line(s) did you change exactly?


(mathieu) #113

Ok, so there is a new version available, without dithered sobol first, will come back later. As a plus, scrambling distance is now available to be tweaked manually. The default is 0.0 = automatic.
Those who like dithered sobol can still use the old build in the mean time.


(Eric Klein) #114

I can confirm that Dithered Sobol did not cause the cycles crash only regular Sobol. Thanks Dragon.Studio for this find and patch.

Bliblubli hopefully next build we can add the Dithered Sobol fixed patch and thanks for adding the manual scrambling distance parameter.


(mathieu) #115

Here is the thread about the course Eklein. I’m open to suggestion and I really invested a good chunck of time in testing and including dithered sobol, but I have to offer a stable base and concentrate on the tutorials here.

If you want support, I also offer monthly or yearly support with E-Cycles. Customers are really happy with it see here and here for example about the response/bug fixing rate and time.

Here the build are only offered for students to check what the changes offer as an artists. They may get updated further, but the focus is on helping people make their own version to be able to be faster/better as an artists.


(Eric Klein) #116

I thought I was helping you by suggesting adding two popular patches DS & SD to your base course to help make your course more valuable and have more sales. I did a lot of testing to make your product better.

It is unfortunately if now I have to buy E-Cycles to get now the newer patches. Especially since I do this as hobby. Maybe you can offer a discount to course customers.


(mathieu) #117

Then let me word it better. I’m thankful you gave ideas and I did my best to integrate them, but I have to prioritize the course here, dithered sobol is way to complexe for a course to get started with coding. But it will come back in the final build offered with the course as a bonus, when it’s stable and well tested. The old build is still there as I said, so you can further test it. And now that you know it only crashes the normal sobol, you can test safely with dithered sobol always on.

By the way, dithered sobol is not in E-Cycles yet (because it’s not tested enough. For example, I know it make some scenes with glass much darker), so you have even more luck here.

And if I do everything for the students, they don’t learn. Try and if you have a problem, I’m here to help :slight_smile:


(Lissanro Rayen) #118
Summary

The line which caused the issue was if(rng_hash & DITHER_MASK) - it was supposed to be true only for Dithered Sobol, but as it turned out there is a chance it will be true for regular Sobol as well and this will cause a crash. So at first I replaced it with if(rng_hash & DITHER_MASK && kernel_data.integrator.dither_size > 0), and later today I simplified it to just if(kernel_data.integrator.dither_size > 0) - dither_size is always set to 0 for regular Sobol, and when Dithered Sobol is chosen dither_size is always > 0 because dither_size = sobol_dither_matrix_size() and dither matrix cannot have zero size.


(mathieu) #119

very helpful, thanks a lot :slight_smile:


(mathieu) #120

The course has been updated.

  • Now everything you have to know to make Cycles 2x faster is explained. With some tips to make it fit your GPU and make it even faster than E-Cycles.
  • The bonus course about the bevel after boolean modifier is also available.
  • You will also learn how to upload your changes for review on developer.blender.org, either automatically or manually.

Have fun coding and/or using your own Blender :slight_smile: