Vram management

Maxon Cinema 4D (Export script developed by abstrax, Integrated Plugin developed by aoktar)

Moderators: ChrisHekman, aoktar

User avatar
affixxius
Licensed Customer
Posts: 55
Joined: Fri Jun 22, 2018 1:25 pm

Hello,
Im after some advice, if any one is feeling generous...

Recently I have been making projects with higher poly counts, such as large scale airports and high poly kitchen appliances. Quite quickly I come across problems with Vram, not enough Vram.
I go through striping models down as much as possible, use instancing as much as possible, reduce texture sizes (so they'll be 512px or lower if not close for example) and use octane textures as much as I can rather than image textures.

I'm wondering how others deal with such scenarios, for example, I had a cad model of a fridge freezer which i stripped down re topped as much as I could, but it still had 15m polys, then I had to fill it full of photoreal food! In the end it wouldn't render locally and I had to send to render farm. Is there a 'limit' on how high a poly count octane can handle, are other renderers more or less capable (i really dont want to move from octane even for single projects!)

I currently have my main PC which has an i9, 64gb ram and 2 x 3080 (10gb, but i can only seem to use 6gb), and a slave pc with 4 x 1080ti.

If anyone can offer advice or links to how to best control these problems or best practices, like would it be more efficient to combine models so they are high poly but less objects?

Any help much appreciated
Cheers
AK
// Windows 10 // 2 x RTX3080 // 4x GTX1080Ti // Octane Latest // Cinema 4D 2024 //
skientia
Licensed Customer
Posts: 254
Joined: Tue Mar 12, 2024 1:50 am
Contact:

Hi,

Optimization is essential, upon reaching the hardware limitation which simply necessitate investment in higher VRAM capacity single GPU or a GPU system (shared memory).

Render layer workflow, optimized texture files and properly setting the texture importer node (Octane has one for each type of files), SubD at render time (not baked and besides CAD triangulated assets), lower resolution output, to name a few suggestions.

This page contains several tips and recommendations on VRAM and sampling.
affixxius wrote: I go through striping models down as much as possible, use instancing as much as possible, reduce texture sizes (so they'll be 512px or lower if not close for example) and use octane textures as much as I can rather than image textures.
File format is also a factor to consider, not only for VRAM but also "performance".
affixxius wrote: Is there a 'limit' on how high a poly count octane can handle
It should be fair to say in-the-billions, as with nearly all renderers due to their nature. The limitation often comes from the DCC host's viewport, not the renderer itself.
User avatar
glimpse
Licensed Customer
Posts: 3740
Joined: Wed Jan 26, 2011 2:17 pm
Contact:

seems like You are already doing quite a bit to optimize Your scenes and know the most that is important.

if You want to have more usable VRAM, mix those cards that You have so, You would have screen card + render card. Even if You do not use GPU for screens but it still runs in WDDM driver mode, it would be still 1.5-1.7 GB unavailable (unless You get TitanRTX or any of Quadros that allow to run in TCC mode, disabling their screen output capabilities).

Anyway, if You have screen card + render card and You work with smth in the background, Your render card should be usable at the most TotalVRAM - 1.5gb & then You have Out OF Core. Since it's recommended to have 3-4x RAM, compared to VRAM, I would not set OOC too high, as with 10GB GPU and some tasks in the background, You might already use like 40-50GB at some point, so not much being left, but You can set few GB of OOC, just to have some room to breath.

Overall, I understand it's an investment, but the best would be to look for 24 GB card (TitanRTX, 3090, 3090ti, 4090.. new or used) and double the RAM to 128gb,. This in effect would give You like 3x of usable VRAM compared to what You have now and extra RAM would allow to utilize card properly.
User avatar
affixxius
Licensed Customer
Posts: 55
Joined: Fri Jun 22, 2018 1:25 pm

Thanks guys, that's really helpful stuff

Yer I use only tiffs for inputs and exrs for output (99% of the time)

I work at a smallish studio, but we do big jobs frequently, what id like to know is how 'bigger' studios (3d guys), handle huge scenes, My Post manager keeps saying that he sees content that is large in its scope (high poly/ highly detailed geometry) and wonders why I cant do it with the hardware I have, as it cost quite a bit! My answer is usually, as you have said, i need more headroom so buy bigger cards. Is it that way for the bigger guys? they have better hardware? or is it a better workflow to segment how things are rendered?

Yer I work off 3 monitors, 2 monitors on GPU0 and 1 on GPU1, how much impact does (might) that have? Ive tried figuring it out with task manager, and unplugging and rendering etc, but cant see much difference.

One last thing, I know the 3080s don't have NVlink, but if i have relevant cards, does that work with octane? would it give me more headroom/ or do that and slow down the render time?


Thank you again, I'm the only 3D man here so I've no one to ask, this forum is so helpful to me

Thanks
AK
// Windows 10 // 2 x RTX3080 // 4x GTX1080Ti // Octane Latest // Cinema 4D 2024 //
skientia
Licensed Customer
Posts: 254
Joined: Tue Mar 12, 2024 1:50 am
Contact:

affixxius wrote:what id like to know is how 'bigger' studios (3d guys), handle huge scenes
Most studios run on CPU rendering and scalable systems / farms.
This is partially applicable to GPU rendering, within the known limitations of it (mostly VRAM, since cores can be scaled up more easily, see resources below).

Worth mentioning that studios typically split tasks / projects into separated layers and departments. It mostly depends if there is an actual solid compositing department to handle such workflow.

Some additional resources:
Scene Optimization
Hardware Guide for OctaneRender

Ideally and as suggested in a previous reply, on a single machine, one GPU is fully allocated to rendering while the other on OS and display monitor.
VRAM represents the ultimate limitation while cores is "speed", therefore, more VRAM means larger assets / scenes and more cores means more efficient rendering (sampling, calculations...), essentially.
frankmci
Licensed Customer
Posts: 917
Joined: Fri May 26, 2017 2:00 pm
Location: Washington DC

One thing I didn't see mentioned in this thread is that you can reduce the "Engine Runtime Data" portion of your VRAM requirements by reducing the Parallel Samples/Max Tile Samples from their default 16/32 in the kernel settings. The relatively modest scene I'm working on right now goes from using 87 MB of VRAM at 1/1 to 3 GB of VRAM at 32/64 samples.
Animation Technical Director - Washington DC
User avatar
affixxius
Licensed Customer
Posts: 55
Joined: Fri Jun 22, 2018 1:25 pm

Thank you again guys I really appreciate it

After sharing your thought with boss, we are looking in to some upgrades, maybe swapping out the 2 x 3080s for 1 x 4090 and another smaller card for monitors. Or adding a new machine with that set up and keeping the 3080 machine for a new slave.

I have dropped parallel samples but only ever to maybe 8/16. What kind of performance hit do you get if dropped to 1/1? I mean i can test this my self of course, just wondering about your experience. (say on a scene that would take 1 min per frame at 32/64)

I think I have some great stuff to work with now, I'm glad i've been covering most of this already (i do fear i miss obvious things sometimes!) but those guides that were posted are really great thank you

Thanks guys
AK
// Windows 10 // 2 x RTX3080 // 4x GTX1080Ti // Octane Latest // Cinema 4D 2024 //
User avatar
affixxius
Licensed Customer
Posts: 55
Joined: Fri Jun 22, 2018 1:25 pm

Sorry, a follow up question!

I have been experimenting with low parallel samples, and it i think there's a good balance for reducing Vram and not increasing render time so much, that's great.

I have also been trying changing the texture 'import type' from auto to 16>8, my question is, as this doesn't seem to effect the texture noticeably so far, are there considerations i need to make, like don't do that if its a hero texture or something? It does seem to reduce memory usage abit, so in a texture heavy scene may be a good tool!

Cheers!
AK
// Windows 10 // 2 x RTX3080 // 4x GTX1080Ti // Octane Latest // Cinema 4D 2024 //
skientia
Licensed Customer
Posts: 254
Joined: Tue Mar 12, 2024 1:50 am
Contact:

frankmci wrote:One thing I didn't see mentioned in this thread is that you can reduce the "Engine Runtime Data" portion of your VRAM requirements by reducing the Parallel Samples/Max Tile Samples from their default 16/32 in the kernel settings. The relatively modest scene I'm working on right now goes from using 87 MB of VRAM at 1/1 to 3 GB of VRAM at 32/64 samples.
In the link of a previous reply! This one. More efficient to link to a full page than replying the same information repeatedly on various forum threads. The website is basically a large series of notes, no ads, no tracking or affiliation, as described on the home page.
skientia
Licensed Customer
Posts: 254
Joined: Tue Mar 12, 2024 1:50 am
Contact:

affixxius wrote:(...)like don't do that if its a hero texture or something?
There is only "one rule", so to speak: "experiment and if it works, it works".
That's it. If the main asset doesn't necessitate 16/32 bit TIFF / EXR files, then it doesn't.

However, this doesn't apply to master output. This is further explained here and here. Only relatively rare occasions (no post, no archiving...) would "allow" to export to compressed / integer (SDR / limited) encoding type.
Post Reply

Return to “Maxon Cinema 4D”