Iray Speed & Nvidia Cards

Just before Iray appeared on Daz I purchased a Mac which has an AMD Radeon graphics card (its called Sods Law I believe). The cpu is a 3.5 GHz Intel Core i5, using this some renders are pretty quick, but others that I want to do take 24 hours or more.
I can't change the video card on the Mac, so I am looking at getting a Windows machine with Nvidia card to run alongside it. The advantages as far as Daz is concered is not only ?much? faster rendering, but being able to do other work on Daz at the same time as rg render.
Does anyone here know or can point me in the direction of info on which card should I go for & how much faster rendering on a machine with such a card be? etc. etc.
Thanks
Comments
I have just found this on on the Daz3d Help Centre, it may be valuable information to others here - Red highlights are mine.
System Recommendations for DAZ Studio 4+
posted this on May 7, 11:08
We would like to provide some hints as to what system to get by explaining the factors that come in play:
CPU: When you load content a fair amount of CPU calculations are made to apply morphs, fit clothing, smooth and deform. It is one of the factors involved in loading time (along with storage speed). The CPU is also 100% of your render performance (render time) when using non GPU accelerated renderers (like 3Delight in DAZ Studio). So if using DAZ Studio 4.7 or older your CPU determines how fast your renders happen as well as has an influence on how fast things load and deform.
Storage speed: Your hard drive speed does play a role when loading content but only to a certain point. A spinning disk (regular hard-drive) is quite a bit slower than an SSD so I would recommend getting a 520GB or 1TB SSD to host your DAZ content and scene files on. This along with CPU speed determine how fast things load in your scene. If you raid spinning disks you do get more bandwidth but access time stays slow therefore a raid of spinning disks will not be as fast as even a single SSD. It’s not just about bandwidth MB/s, it’s more about latency (how quickly data seeks happen) and an SSD is much quicker than spinning disks. Storage has no (or negligible) effect on render time.
GPU (Graphics Processing Unit): With the latest public beta (DAZ Studio 4.8) the GPU plays a HUGE role in the render time when using Iray (the default renderer in DS 4.8). The GPU plays two roles, it determines how fast you can move geometry around in the interface and it adds processing power to the render process (reduces render time) with Iray (included), Octane (plugin) and Reality (plugin that uses Lux render). Let’s ding into the GPU as a few factors come to play.
GPU memory has no direct effect on render time, it simply determines how big a file you can work with. We found that 2GB can handle a single character with a medium sized environment, 4GB can handle around 4 characters and a scene so we recommend 4GB and up. If you have two GPUs and they have 2GB each it does not add up to 4GB, each card has to hold the entire scene. If you try to render a file that is too large to fit in the GPU, Iray will use the CPU to render (which will be much slower than using a GPU or both GPU and CPU together). So GPU memory is what determines if the GPU can be used or not, if the file fits, it will be used and if the file doesn’t fit, it won’t.
GPU cores, this is similar to CPU cores but instead of having 4,6 or 8 cpu cores running at 4000 MHz, you have thousands of them but they run at around 7000 to 1200 MHz. Each core can calculate a par tof the image so render time (with a gpu based renderer) is directly proportional to how many cores you throw at it. Iray is an NVIDIA technology and uses CUDA cores which are found in all NVIDIA GPUs, This means AMD (or ATI) GPUs will NOT be used for rendering with Iray, they will however come into play in the OGL viewport when you orbit around your scene (in drawstyles other than Iray). You can use one or multiple NVIDIA Geforce, Quadro and Tesla cards (or a mix of Quadro and Tesla) to decrease your render time with Iray and current cards tend to range from 250 to 3000 CUDA cores so there is a huge range of performance (and pricing) to pick from. The biggest setup that is available today as I write this would be using four NVIDIA Geforce Titan X cards which would give Iray a total of 12,288 cores to render with and 12GB per card would accommodate very massive scene files. Even entry level cards with 300 or 400 cores are substantially faster at rendering than current high end CPUs.
There is no tangible difference in render time between Quadro, Tesla and Geforce cards, the specs that matter are how many cores and how quick they are (Geforce tend to be a little faster).
To decide what computer to go with I would use the following guidelines:
Make sure your motherboard has the latest Intel chipset (currently the X99)
For graphics applications 32GB of RAM is a good minimum, most high end systems have 64GB but this will have little to no impact on your render time.
6 core CPUs are enough if you are going to use Iray (or other GPU renderer), when you get into high core count GPUs, the CPU becomes less important.
Get as many large GPUs as you can… 4GB or memory is a minimum, over 8GB is probably not going to be needed. Core count is critical, so if two less expensive cards give you more cores than one expensive card, go for the two cards…
· Make sure your motherboard offers at least 8 lanes of PCI per GPU installed (Ideally 16 lanes per GPU). If you have 16 lanes per GPU you get the full performance, having only 8 lanes per GPU gets you around 80% of the GPU performance, this influences the decision to buy one large card over multiple smaller cards.
Just to add a little practical knowledge to this, as well as some bits I've learned from experts around these forums:
I run a single Nvidia 970 w/4GB of RAM. My processor is a quad-core i7 4GHz overclocked to a very stable 4.8GHz. The difference between GPU and CPU-only rendering times is pretty massive for me. I find the real limitation to be the 4GB RAM on the GPU. There are some additional things to think about:
Special note: if you plan on doing gaming with the PC as well, seek more qualified knowledge than me. I don't do PC gaming. That's what the PS4 and the big TV are for :)
Thanks, very useful.
One more thing on GPU memory, etc.
It's textures + geometry that must fit on the card. Not only must the scene fit, but IRay needs some space on the car to render its results. I find I have to do some messing around and simplifying with my models to make everything fit well.
Details:
With 2 characters in bright sunshine, the times get somewhat larger: say 1000 - 3000 sec
However, some scene components have many more textures than others. To fit stuff on the card and have a decent amount of space to render results, I often simplify my models in various ways: Eliminate useless textures, and occasionally do geometric simplification. Example useless textures: diffuse and glossy textures for fingernails/toenails, specular textures for skin with limited variance, normal maps that don't seem to do much, high resolution textures for stuff you aren't taking pictures of...
Also, if the clothes are opaque, I turn off the body underneath the clothes. This will save triangles, but not textures, since the hands and face are always visible in my scenes, but if you have a ninja with gloves, you could hide just about all of the actual body geometry. The clothes will fit even if the body is invisible.
The worst example was a Pergola scene that had 6 different 4kx4k wood textures that were only subtly different. Changed that to one texture, and usd the decimator to cut the polygon count by a factor of 5.This made a big difference in render times
The following snippet from my AppData/Roaming/DAZ 3D/Studio4/log.txt file describes the details of how much space iRay thinks it has on a scene with two characters + the deco apartment scene. For MY setup, 806MB is the maximum workspace that IRay tries to allocate. There are a lot of textures in this scene, so on this particular run, IRay falls back to 445MB workspace:
Iray INFO - module:category(IRAY:RENDER): 1.0 IRAY rend info : Geometry import (1 object with 740K triangles,)
...
Iray INFO - module:category(MATCNV:RENDER): 1.0 MATCNV rend info : found 583 textures, 20 lambdas
...
Iray INFO - module:category(IRAY:RENDER): 1.0 IRAY rend info : CUDA device 0 (GeForce GTX 660)
Iray INFO - module:category(IRAY:RENDER): 1.0 IRAY rend info : CPU (7 threads)
Iray INFO - module:category(IRAY:RENDER): 1.0 IRAY rend info : Rendering...
Iray INFO - module:category(IRAY:RENDER): 1.7 IRAY rend info : Using device 0 to build data for host
Iray INFO - module:category(IRAY:RENDER): 1.2 IRAY rend info : CPU (7 threads): Scene processed in 56.322s
Iray INFO - module:category(IRAY:RENDER): 1.2 IRAY rend info : CPU (7 threads): Allocated 53 MB for frame buffer
Iray INFO - module:category(IRAY:RENDER): 1.3 IRAY rend info : CUDA device 0 (GeForce GTX 660): Scene processed in 56.852s
WARNING: dzneuraymgr.cpp(261): Iray ERROR - module:category(IRAY:RENDER): 1.3 IRAY rend error: CUDA device 0 (GeForce GTX 660): out of memory (while allocating memory)
WARNING: dzneuraymgr.cpp(261): Iray ERROR - module:category(IRAY:RENDER): 1.3 IRAY rend error: CUDA device 0 (GeForce GTX 660): Failed to allocate 846086144 bytes
WARNING: dzneuraymgr.cpp(261): Iray ERROR - module:category(IRAY:RENDER): 1.3 IRAY rend error: CUDA device 0 (GeForce GTX 660): May not have enough memory available to start CUDA kernel (estimated 806MB).
Iray INFO - module:category(IRAY:RENDER): 1.3 IRAY rend info : CUDA device 0 (GeForce GTX 660): Allocated 53 MB for frame buffer
Iray INFO - module:category(IRAY:RENDER): 1.3 IRAY rend info : CUDA device 0 (GeForce GTX 660): Allocated 445 MB of work space (566k active samples)
Iray INFO - module:category(IRAY:RENDER): 1.3 IRAY rend info : CUDA device 0 (GeForce GTX 660): Device optimized for interactive usage; performance could be sacrificed
Before you jump to windows... consider building a hackintosh. That is what I run. X99 Mac Pro with a GTX Nvidia card.
I have question about 2 same Nvidia video card A and B, I could understand, I can set SLI Off when I render by Nvidia controll panel,
and it seems to be recommended for Iray.
My question is,
I hear, it is good to set one video card A for display (or other apriation if you need),
then set another video card B as render (iray , it seems same for cycles render of blender)
If you have two same video card , what you recommend?
case 1 the scene size over the limits of Video card memory. (eg scene 5GB then I have two video card with 4GB )
about this case, there is no difference, whether I set video card for display only or not,
simply DS render by CPU only, then both video cards not work for render? (I think so)
case 2 the scene size under the limits of Video card memory (scene 3 GB then I have two video card with 6GB etc)
then about this case , I may better to set Video card A as render only ? or no need to change
setting just set SLI OFF?
and how I can set it ? there is option to set each Video card for display, or render only in DAZ studio?
(sorry I have never gotten two video card, then I do not know what I need to set some video cards ^^;)
and,,, christina wrote
For graphics applications 32GB of RAM is a good minimum, most high end systems have 64GB
but this will have little to no impact on your render time.
that means I may need not 64GB RAM, if I have 32GB (and I will)
(good minimum?! At current I had only 12GB memory,, then actually only 10GB less can work for other aprications,, I think)
change memory to 64GB may not need about tweaking daz stuido ( modify figure weight map,, or big scene management, pozing, etc)?
or it change many for usability ? when 64GB memory need?
eg 3delight cpu render, the 64GB memory not useful so?
(I am thinking if I need to get more memory for my new PC (with 32GB RAM )
(edit navida to Nvidia ^^;)
That's right. The GPU can't do IRay renders on scenes that are too big for its memory. See your log file for what it's actually doing: AppData/Roaming/DAZ 3D/Studio4/log.txt
Also, there's a sub-window named Advanced on the IRay control panel on the Render Settings tab. Here you can select what gets used for IRay rendering. There's a list for interactive mode, and for photoreal.
Note, that the GPU memory cannot be shared between cards. If you have a 4GB GPU and a 2GB GPU, IRay will only be able to do GPU rendering of your 3GB scene on the 4GB GPU. The 2GB GPU will be idle for that render.
Hi CDS1a. thank you .
I may need to check the log carefully to understand maximum set up,
scene size, actually I ray can use my GPU or not.
maybe report here after I set up new PC (she will come this week end ^^;) with each setting and some test scene.
(I saw some report ,even though the scene is clear overflow maximum set up memory of GPU,
we may better try to use CPU with "GPU" in daz render setting, it can reduce time than " CPU only",
(not many but effective,, 5 second etc,,) ,,but I feel it may change with each user video card setting
to render CPU with GPU correctly,,)
Having matching cards in parallel on your computer will certianly help decrease render times. Do NOT SLI these cards! On a side note I have done testing on the GTX980Ti and can confirm that it nearly halves the render time from the GTX980. Having two GTX980Ti's in parallel was outstanding... and I saw 200% increase in render performance and major impovements in animation - video rendering too. Also, something to keep in mind about RAM - do fill up your RAM slots completely. I am running 32 GB of 2133MHZ DD4 in 4 of 8 slots. This RAM is running at 2500 MHZ which has given me a small but noticable boost in performance. Filling up those extra RAM slots also gave me an extra 40% in speed for render times. These are just a few fine adjustments that can help improve rendering performance.
Hi, jwhyteaphotography , really thank you because I worry to plus RAM, actually.
I have ordered new PC , but I choosed DDR4 SDRAM PC-17000 QuadChannel as 32GB as BTO PC
then I do not like touch pc (change memory or add video card my self ^^;) ,
I know 32GB is plenty of usuall PC usage, and most of 3d game or aprication may not need more RAM,
but I often feel stress when blender simulation , or play animation with many poligons figure , without retopo much,
and hope to lender everything as fast as I can too ^^; and hope to move everything in 3d scene as fast as I can,,
then after see your response, I could order more 32 GB to PC shop... as quad channnel set.
At least ,I may not care about RAM etc anymore,,
my ordered PC will come as best component as I could now.
(I know my pc will be too powerful for my 3d skill etc,and
know how good PC I will get, it never change my skill, but I simply hope to lender fast ^^;
because tweaking 3d is my life hobby. some one may use money for their car,
but I hope to use it for PC to play 3d.
Filling up all the lanes means that you'll have RAM processing on all data pathways which leads to better performance. Overclocking RAM by a safe margin is good but be careful not to go too far or it will crash the computer or prevent start up.
Are you using an X99 board. Kitakoredaz? I agree - getting a better graphics card in combination with more RAM will give a significant boost to the rendering performance. So I've included a picture that was rendered first in 4K - IRAY. The time on the first render was 70 minutes. When I overclocked my RAM from 2133 MHz to 2500 MHz - the same picture took 65 minutes. Next, I filled all of my RAM channels and applied the same overclock. My render times dropped down to ~ 43 minutes. Using up more RAM lanes is going to give the highest performance on the CPU side. Next.... you do your video card. The Titan black is equal to the GTX 980 Ti - and the new Titan X is equal to 1.5 times the rendering processing as the GTX Titan Black and features a full 12GB of ECC ram on board. It's a beast.
Thanks
now I am convinced it was good idea for me to change RAM as 64GB.
then yes, I plan to OC ,but actually I have never tried Over clock about CPU ,video card etc,
though new mother bord is MSI X99A GAMING 7 [Intel X99 chipset]
then it seems have easy one click way (OC ginnie?) to set up for OC,
but PC shop man tell me , if you try OC be carefully tweak ,and we can not support if it break my PC ^^;
(then I maybe not try it)
anyway really thank you to teach me about PC, (I have very little knowledge to customize PC)
by the way,, then it is out of subject, but now my father (85 yeasrs old ^^;) is in hospital for aspiration pneumonitis ,
it is one reason ,,I decide to buy new really powerful PC beyond my 3d skill ^^;
PC is easy to get strong and even though it break we can easy change divice,,
,but human is very difficult to set up well after lost health,,
and feel human life is too short to enjoy all ,, I feel,, if I hope it,, just do it,, if I can now,,,
Usually I am not man to say many about famiy event,
but nowdays to think about new PC and ask here about something ,help me lot.
I need not think about difficult things of human life,, when read all topic about 3D,,,
then thank you guys.
I guess Cristina Galloway never considered two cards over one will make significant demands on your PSU. So if two cards are less expensive than one in giving you more cores just cross your fingers and hope your PSU can adequately power them or the system will fail and could cause permanent damage to the PSU.
Get as many large GPUs as you can… 4GB or memory is a minimum, over 8GB is probably not going to be needed. Core count is critical, so if two less expensive cards give you more cores than one expensive card, go for the two cards…
Question I have wondered re. textures and RAM. If a scene uses same texture on multiple surfaces, say on four walls of a room, is that same texture loading four instances into RAM or is it loaded only once and use on any surface that uses that same texture?
Multiple cards and onboard graphics?
I have a couple of machines just used to render. The one with the most space, most PCI slots and biggest power supply is a Dell T5400 with two 8 core Xeon CPU's and 48GB RAM. Right now I have a GT730 card with 4GB. It renders pretty quick for the most part, but just like the guy with the hot rod...I want more power!
I understans from what I read a Tesla will not play nice with a GeForce 730 due to incompatible drivers. Tesla cards can be found fairly cheap on eBay. But very few have any monitor outputs.
Can I use a simple graphics card just for displays and a couple (or more) Tesla cards for GPU? I'm thinking of a dual monitor AMD card so the system does not even think of considering that card as part of the rendering process.
The Xeon MOBO does not have onboard graphics.
Any input or thoughts most welcome.
The texture only gets loaded into RAM once