Cycles render regularly failing

I’m relatively new to the 3D world and VERY new to Blender, having started in Cinema 4D. Not only did I make the jump from C4D to Blender, but also from Mac to PC-which has had it’s issues!

System info
Windows 10 Home
Intel i9-10900X
64GB RAM
2 x RTX 2070 Super 8GB

I’m really enjoying working in Blender-until it comes to rendering. I’m getting repeated fails with numerous settings. Most notably when activating Optix denoiser-I’m getting about a 50% success rate on renders there. Sometimes it works, sometimes it doesn’t-and I can’t tell any difference in the setup between when it does and doesn’t. Might fail and I’ll try again and it works. The failure seems to come at Building Optix Acceleration Structure… Then an out of memory error-but then, as I say, it might work when I try again.

My has apparetnly exceeded the limit of the GPU’s memory. This seems unlikely to me; to my mind it’s not an overly complex scene and I would have thought well within the 8GB limit. How can I check / reduce this?

Even without Optix, though, I’m getting regular fails with the following error message.

Invalid value in cuMemcpy2DUnaligned(&param) (device_cuda_impl.cpp:1244)Invalid value in cuMemcpy2DUnaligned(&param) (device_cuda_impl.cpp:1244)

Does this mean anything to anyone? I’m at a complete loss and banging my head against the wall, deadline looming, seemingly unable to render. Please help!

Thanks

1 Like

I’m watching this thread, as I’m interested in learning what the experts have to say on this topic too.

In the short term, if the Optix denoiser is giving you the most problems, try denoising in the compositor instead. If Optix rendering is giving you trouble in general, how goes it with CUDA? It’ll be slower, but if it’ll render, that’s a win. The same goes for CPU; slower, but you have a lot more memory available.

I have the most trouble with the memory limits on Eevee. Past my 11GB, and it crashes.

CUDA render also failing-that’s where that error message came from. That’s with both of the GPUs and CPU enabled under Preferences / System / CUDA. Seems to me like that should work no matter, what, even if slower than Optix…?

I don’t know my way around the compositing workflow well enough for post-denoising. Primarily, though, I’m after faster renders, which is why I had been using Optix. I’m rendering large resulotion (12000 x 6000 pixels) equirectangular panoramas-so CPU rendering is way too slow.

Be sure you’re not on some ancient (like two month old lol) Nvidia driver version. All these fancy RTX and Optix features are VERY dependent on having the latest driver versions. Optix Denoise was totally buggy and produced many bad render buckets for me with a three month old driver. Updating fixed everything.

My personal preference is to us the OIDN denoise as a post-process in the compositor when doing final renders. For viewport Optix is quite useful, but for bucketized rendering, the per-bucket overhead is very high and it’s much more effective to do it in one go at the end. Also OIDN can run well on the CPU and require no GPU memory at all.

I also find that the more automated denoise options all automatically collect the denoising data passes which slow down the render significantly. I prefer to use a Denoise compositor node and feed in the regular Normal pass and just use the color pass for albedo. This is not perfect, but you can still get very good results while avoiding the extra pass calculation overhead, and it’s IMHO the fastest way to render in Cycles while working on a scene. Color, Normal, a small number of samples (as few as 1), and the compositor Denoise.

Thanks for your reply.

Definitely on up to date driver-the whole machine was only built / delivered a couple of weeks ago. Have downloaded / reinstalled driver just to be sure. Also tried Gaming driver as alernative to Studio driver-no change. The render is just not starting. Or at least it starts compling but then fails, with error warning listed in original post.

I moved from Cinema 4D to Blender and Mac to PC almost simultaneously-and it’s been a tough transition! For the most part, 3D is 3D, but C4D and Blender are very different workflows, particularly in texturing and rendering (not to mention general stability!(. I don’t know anything about compositing in Blender yet-but your workflow sounds intriguing. Are you saying you don’t add denoising during render, but only in “post”, through compositing nodes? And with only one sample in Cycles??? Do you think you could share a screenshot of your node setup? Will definitely look into this.

Cheers

I’m a C4D user as well, you can ask me anything if you have questions. What can be causing some troubles for Cycles is your scene using more memory than what is available for rendering on GPU. Try changing to CPU instead to see if the problem persists (low the titles to something about 32 x 32). If not, then its a GPU issue. Or a driver or your scene is memory heavy and I will need to optmize it.

About the denoiser, IMO, it’s better to use the one available trough compositor. It’s the Open Intel Denoiser. You need to activate a Denoising Data on the Passes and then plug the correct slots. This way you can control the denoiser after the rendering.

To set up an OIDN Compositing pass, first make sure that Compositing is enabled in the Output Properties:

image

The enable the Denoising Data passes option in the View Layer properties:

image

Then in the /Compositing\ tab, make sure [X] Use Nodes is checked in the header bar, and set this up:

Now set the Cycles Render properties Sampling -> Render samples to 1 (start at 1 for fun and you can bump it up as needed) and run a render. Have Performance -> Tiles size set to something appropriate for the Cycles render device(s) you have selected in Edit->Preferences->System->Cycles Render Devices for best performance.

That should be a fast render and the denoise will happen after the Cycles bucketized render completes and should magically transform the grainy image into something more impressive. You can up the samples to say 16 or 32 and see how that improves it.

If you want an even FASTER option, disable the Denoising Data passes for the View Layer, and enable the Normal pass, so:

image

and then change the Composite to simply:

image

This isn’t as “accurate” but calculating all those Denoising Data passed can double the render time and this can give you a much faster result and sometimes it looks great. I have just been using this for still images, so for animations, you’re on your own :slight_smile:

One sample on the left, and with OIDN using only Color and Normal passes on the right. The HDR reflections off the glass come out of nowhere as if by magic.