Blender Cycles GPU Hardware FAQ

Blender Cycles Hardware F.A.Q.

Disclaimer and thanks: This information is compiled primarily from this link at BlenderArtist.com and the Blender official Cycles FAQ. Special thanks to users R3sili3nt and arexma at BlenderArtist.com for providing the bulk of this information – most of the credit for getting me started on this FAQ belongs to them.

I am currently adding to this FAQ, so if you have questions or comments, please use the form at the bottom at the page and I’ll try my best to answer.

Last update: Aug 6, 2013 @ 18:50 – added the Titan to the “which GPU?”-section.

Introduction

The complete beginner’s introduction to getting a GPU for Cycles

Last update: Feb 19, 2013 @ 19:20
If you’re not someone who has a keen interest in building your own PC, or you’re simply someone more interested in making dazzling 3D artwork than spending your weekend trawling internet forums in search of answers to bizarre technical questions you have zero interest in, fret not – it doesn’t actually have to be all that hard.  I’ll do my very best here to give a soft introduction and overview of the basic bits and pieces you need to know. It’s not really all that much, but since rendering is something that does require a wee bit of understanding of the tools of the trade, there’s no way around a bit of geeky lingo. So, let’s jump right in, but first a small list of term you need to know:

GPU Graphics Processing Unit, commonly called a graphics card. This is a PC expansion card that gives your PC the ability to show dazzling graphics in real time.
VRAM Just like your PC or Mac, your GPU has its own memory. Though not 110% technically correct, I will refer to your GPUs RAM as VRAM to distinguish it from the RAM in your PC throughout
CUDA CUDA is NVIDIA’s (a maker of GPUs) architecture for using your GPU as a separate little computer inside your PC that can do certain tasks, like rendering, very quickly
Cores Just like your PCs processor, a GPU has a number of cores. PCs processors typically has from one to four or even eight cores. A GPU on the other hand, can have several hundred – it is a parallel architecture. Each core is much weaker than your PCs, but can do a very large number of simple tasks in parallel
PCIe PCI Express, is both type of physical connection that you plug a GPU into on your PCs motherboard and a communications bus. Don’t worry – for rendering only the physical part matters, and it’s easy a building Lego
PSU Power supply unit. It’s the big clunky thing in your PC with a bunch of wires sticking out that connects to your motherboard, disks, fans and pretty much everything else inside your PC

With that out of the way, we can get started on the interesting stuff: how can this help me to get faster renders in Blender?

Since GPUs are built for gaming and graphics applications, it shouldn’t be too surprising that this specialized graphics hardware is pretty good for rendering as well. Luckily, the Blender developers are a pretty clever bunch and when they came up with the new Cycles render engine, they pretty early on decided to harness all that processing power to help out with the rendering process. Turns out that rendering is a parallel computing problem, and what is a GPU but a little parallel computer inside your PC? :)

In order for this to  work, they needed to use rendering architecture, or methodology if you like, of the GPU producers. The big three today are AMD (formerly ATI), Intel and NVIDIA. Unfortunately, only NVIDIAs architecture, called CUDA, is currently working perfectly with Blender. This means that if you want GPU rendering in Cycles, you need to get yourself a NVIDIA GPU. This will hopefully change, but as it stands today, there is no choice.

In order to find out which exact NVIDIA GPU you need, you can find quite a bit on information in this FAQ. I would personally recommend a card in the series called GTX-500. The GTX-580 is perhaps the best on the market (better than the more recent GTX-600 series), but its a bit expensive.

Before ordering though, you need to check the manual of your motherboard to see if you have a free PCIe slot. You will find this in the diagram of all the bits & pieces on your motherboard in its manual. If you have a fairly recent PC (a couple of years old is fine), and you don’t already have a GPU eating up your only PCIe slot, you should be good to go. But you need to verify two things first: if you have the space in your PC case (check dimension of your PC and the GPU you want to buy online) and secondly if your PSU is strong enough to handle the extra load.

If you are only going to have one GPU in your case, any PSU rated at 500W or more should be fine. If you want to go bananas and add more GPUs you need to look around this FAQ a bit more for further help. Also check the guide to power cables for the GPU in this FAQ. You need to check if you have the right type (8-pin or 6-pin).

Os, so that’s it! Order the GPU, plug it into your PCIe slot of your PC, connect your GPU power cables, fire it up and start Blender. Now all you have to do is enabling your GPUs in Blender’s settings (File -> User Preferences… -> System -> Compute Device -> CUDA) and enable “GPU Compute” in your render settings and off you go! :)

Setting CUDA as Compute Device and selecting your GPU

Setting CUDA as Compute Device and selecting your GPU

Enabling GPU Compute

Enabling GPU Compute

 

Be mindful that your GPU might be faster than your PC’s processor, but it has normally less VRAM, so if you get “out of memory” errors, take a look around this FAQ for tips to overcome this.

If you run into any problem or have questions not covered here or in the reset of the FAQ, just leave me a comment in the box below and I promise to do my best to answer.

Permalink.

A word of WARNING – please read first (really!)

Last update: Feb 16, 2013 @ 10:10

First I’ll offer a small disclaimer that you must read and understand before using this FAQ, and then I’ll try to explain when things can go really really wrong. Being aware of this can save you tears later, so please don’t skip this!

warningDISCLAIMER: Messing with computer hardware is not without risk. You, your equipment and your cat all respond poorly to electrical shock, fires, explosions (yes, explosions) and water spills indoors. Though I do my best to avoid any of this here, I do not accept any responsibility for material or physical damage you (or your cat), your PC/MAC or house might suffer from following my advice.

Now, with that out of the way, what could potentially have really nasty consequences when you’re messing around with PCs and GPUs? Well, a couple of things:

  • Using the wrong type of adapters for your GPU can damage your GPU, your PSU and your components
  • Ditto for overloading your PSU
  • Overheating your case due to putting in too many GPUs without proper cooling is a fire hazard and can kill your GPUs and wreck havoc on your PC
  • TURN OFF and UNPLUG your PC before handling components and wires! Electrocution is only fun in cartoons!
  • Water cooling is great but poring water over electrical components can lead to all sorts of destruction, fires and electrical shocks
  • Water cooling that leaks can damage your house
  • Overclocking your GPU can kill it, start a fire and kill your cat. And it can damage the GPU in nasty little subtle ways you don’t immediately realize
  • Pretty please do not overclock your GTX-590 (and be careful with the GTX-690)! I overclocked my GTX-590, and I did it very carefully – gradually and with water cooling and kept to reasonably safe ranges. I watched it perform nicely for a while with no problem and moderate temperatures and then poof! The card is now a (very) expensive book rest. This is a known problem (and to those who claim it’s an old driver problem let me assure you I did it with current February 2013 drivers), so if you decided to ignore the warnings (like I did), you’re taking serious chances.
  • Sudden power outages inside your PC due to an overloaded PSU can lead to crashes that can both damage hardware and kill your files, depending what your disks were doing at the point of the crash
  • Static electricity can build up, and cause nasty shorts. Ideally, you should always be wearing an anti-static wrist strap when handling hardware components

    Anti-static wrist strap

    Anti-static wrist strap

  • Strange, unintended side effects that I don’t even have the imagination to suggest can also come from messing with your hardware. All this stuff is unlikely to happen to you, but my point is that if I were you, I’d rather research well and ask a lot of questions. Hardware hacking is not to be taken lightly – things can go wrong, and usually will every now and then

Permalink.


Choosing the right hardware

What GPUs (graphics cards) are supported by Blender Cycles?

Last update: Mar 11, 2013 @ 17:30
Short answer: Only NVIDIA GPUs in the GTX-4xx, GTX-5xx and GTX-6xx series. Some older cards also work, but not well enough to be worth it. No AMD/Intel/other support at the time I write this (Jan 2013)

Long answer: OpenCL, the industry standard framework for GPU processing, is unfortunately not yet (as per January 2013) officially supported in Blender yet (though test builds exist on GraphicAll.org, but that is beyond the scope of this FAQ) . CUDA is however, but CUDA is a NVIDIA proprietary format. This means you will need fairly recent NVIDIA GPU. See other FAQ entries for more detail.

The Blender Cycles supported graphics cards starting from GTX-2xx (shader model 1.3), however it is recommended to Use a GTX-4xx, GTX-5xx card or GTX-6xx card (shader model 2.x), since only those are likely to give good speedup, earlier cards are often slower than just using the CPU. Shader model 1.3 cards also do not support some Cycles features. See the official Cycles FAQ as well as the FAQ post about CUDA versions for more detail.

UPDATE: Starting with Blender 2.67, only CUDA version 2.0 card and higher will be supported.This means that you should really really get CUDA 2.0 compatible card, or you will have to stick with older Blender versions going forward.

Permalink.

But I have a brand new AMD/Intel/something GPU, are you telling me I can’t use it?

Last update: Feb 19, 2013 @ 18:59

You can certainly use it for Blender in general, but you cannot use it for Cycles hardware accelerated rendering, due to the lack of support for OpenCL rendering in Cycles. This will hopefully soon change, but at the moment that is the current state of affairs. This means you’ll have to use your CPU for the actual rendering of your scene.

However, there are test builds of Blender on GraphicAll.org that have experimental support for OpenCL. You can try those, but that lies outside of the scope of this FAQ. Feedback thus far has been that it’s nowhere near the performance of CUDA (NVIDIA’s OpenCL alternative that only runs on their GPUs), and that stability can sometimes be an issue, depending on your model. I have not personally tried this though, and I’ve seen some users report good results, so you’d be better of trying the forums at BlenderArtist for help if you want to give it a shot.

Permalink.

Which NVIDIA GPU model then, there are so many different?

Last update: Aug 6, 2013 @ 18:49

Short answer: The NVIDIA Titan for those lucky enough to afford this monster of a card, and the GTX-580 for the rest of us with a more moderate budget.

Long answer: This is not a simple question to answer, as it depends on your price/performance preferences. But there are two factors to consider: performance and VRAM (the amount of RAM on the GPU). Please note though, that rendering performance is not the same as game performance. See the next item in the FAQ.

VRAM: Generally the VRAM only impacts the size of textures/scene complexity, not speed. My personal experience is that 1.5GB of video RAM should be ok for most practices, but some people are fine with 1GB. Less than that and it gets tight. A modern GTX-680 (not really recommended, a GTX-580 has better performance at lower price) has 4GB. Really the only argument for buying at GTX-680 over GTX-580, unless you’re also a gamer of course

Performance: For performance, there is luckily a good benchmark you can use to compare different cards. Pick the best you can afford

The fastest card for Cycles on the market used to be the GTX-590. This beast is two GTX-570 cards molded onto one single card. My favorite is the second most powerful and a lot cheaper – the single GPU GTX-580.

Recently NVIDIA launched the Titan , and though initial performance benchmarks were a little inconclusive (using Blender without proper support for the Titan chipset, early drivers etc.), it’s very hard to ignore the overwhelming evidence that this is now with a solid margin the best GPU for Blender Cycles, and probably the best card hands down for any CUDA based rendering engine.

Still, there are many options. Find the best card you can afford by examining these benchmark results, but note that this benchmark is a little outdated and doesn’t at the time of writing include the Titan.

Also, for the technically minded, there is plenty of detail.

Permalink.

Quickly! Which is the fastest GPU I can buy?

Short answer: The Titan

Longer answer: Which is the “best” GPU for your particular use is a bit more tricky to answer. Realistically, it depends on your scene size and your budget. However, since this one always comes up, and since most people are really just asking “which is the fastest”, I have included a very simple comparison here between some of the most common NVIDIA GPUs.

GPU Benchmark Chart

This is the test results from Tom’s Hardware Guide, which were run with 200×200-sized tiles for the GPU and 32×32 for the CPU, using the old BMW benchmark scene. I think it conveys the general idea nicely…

This is a very simple single benchmark with only a few GPUs. If you want way more detail and GPUs, you should check out the more comprehensive benchmark.

Permalink.

Why are the older GTX-5xx cards faster than the newer and more expensive GTX-6xx series?

Last update: Feb 9, 2013 @ 02:31
This is due to optimizations for gaming in the new GTX-6xx series, at the expense of CUDA compute ability. I have both GTX-580 and GTX-680 here, and I can tell you from personal experience that the GTX-580 is significantly faster. See also benchmark comparisons if you don’t believe me ;)

Permalink.

Can I use my laptop/Mac with an NVIDIA mobile GPU? Or an older GPU than GTX-4xx?

Last update: Feb 24, 2013 @ 17:54
In theory yes. In practice you probably do not want to unless you have a very recent  or high end model.

There are two limitations you need to be aware of:

  1. CUDA version: Check your GPU here. If you have a shader model older than 1.3 it wont’ work at all, and if you have a shader model older than 2.x there are several missing features, which probably means it’s not worth the trouble. See the official Cycles FAQ for more detail.
  2. Speed: Simply try a render and compare it to the render speed of the CPU. I tried an old GTX-260 for example, and it turned out to render much slower than my CPU, so there there really is no point. Same for my MacBook.
But, if you do have one of those new super-duper laptops with a very strong NVIDIA GPU, enough VRAM and high enough CUDA version, by all means, know yourself out! :)
You could use an old GPU as your windows desktop GPU if you don’t already have a built-in GPU to increase available GPU VRAM for the render-GPU. See here for more details.
For the adventurous, there is a way of attaching a discrete GPU to your laptop/no-expansion-port-Mac, take a look at this entry for more detail.

Permalink.

How do I know which CUDA version my GPU supports and why does it matter?

Last update: Mar 11, 2013 @ 17:30

Firstly, your CUDA version matters as Blender Cycles officially only supports version 2.x of CUDA. Version 1.3 and higher might also work, but as some functionality isn’t supported, you’ll find yourself designing scenes in Blender based on what your GPU can render, and that’s probably an exercise in extreme frustration that you want to avoid.

UPDATE: Starting with Blender 2.67, only CUDA version 2.0 card and higher will be supported.This means that you should really really get CUDA 2.0 compatible card, or you will have to stick with older Blender versions going forward.

To find out exactly what level of CUDA your card supports, see the table below. In short you’ll be fine with a GTX-4xx, GTX-5xx and GTX-6xx series card. If you don’t know your GPU version, you can use CUDA-Z (which will also tell you your CUDA version directly). CUDA-Z works on Windows, Mac and Linux.

If you find your card in the red section, I’m sorry, but you’re out of luck. You card will not work. If you’re in the orange section it can work on Blender versions lower than 2.67, but quite limited and there are several features you cannot use (see below). I would not recommend it. Also most cards in this category are so slow that a CPU from the last couple of years will be much faster anyway. I’ve personally tested the GTX-260, a popular card that I got several questions about, but it was too slow to be practically usable even for simple renders. If you’re in the green category though, you’re all set to go!

CUDA versions for different NVIDIA GPUs

CUDA ver.
GPUs
Cards
1G80, G92, G92b, G94, G94bGeForce 8800GTX/Ultra, 9400GT, 9600GT, 9800GT, Tesla C/D/S870, FX4/5600, 360M, GT 420
1.1G86, G84, G98, G96, G96b, G94, G94b, G92, G92bGeForce 8400GS/GT, 8600GT/GTS, 8800GT/GTS, 9600 GSO, 9800GTX/GX2, GTS 250, GT 120/30/40, FX 4/570, 3/580, 17/18/3700, 4700x2, 1xxM, 32/370M, 3/5/770M, 16/17/27/28/36/37/3800M, NVS420/50
1.2GT218, GT216, GT215GeForce 210, GT 220/40, FX380 LP, 1800M, 370/380M, NVS 2/3100M
1.3GT200, GT200bGeForce GTX 260, GTX 275, GTX 280, GTX 285, GTX 295, Tesla C/M1060, S1070, Quadro CX, FX 3/4/5800
2GF100, GF110GeForce (GF100) GTX 465, GTX 470, GTX 480, Tesla C2050, C2070, S/M2050/70, Quadro Plex 7000, Quadro 4000, 5000, 6000, GeForce (GF110) GTX 560 TI 448, GTX570, GTX580, GTX590
2.1GF104, GF114, GF116, GF108, GF106GeForce 610M, GT 430, GT 440, GTS 450, GTX 460, GT 545, GTX 550 Ti, GTX 560, GTX 560 Ti, 500M, Quadro 600, 2000
3GK104, GK106, GK107GeForce GTX 690, GTX 680, GTX 670, GTX 660 Ti, GTX 660, GTX 650 Ti, GTX 650, GT 640, GeForce GTX 680MX, GeForce GTX 680M, GeForce GTX 675MX, GeForce GTX 670MX, GTX 660M, GeForce GT 650M, GeForce GT 645M, GeForce GT 640M
3.5GK110Tesla K20X, K20
This table is taken from the Wikipedia CUDA article. Color codes adde by me.

The specific features unavailable when using CUDA version 1.3 are as follows (from official manual page):

  • Transparent Shadows
  • Sample as Lamp for World textures
  • Ambient Occlusion
  • Render Passes
  • Motion Blur

So in other words you’re better off starting to save up for another card unless you’re stuck with a laptop or Mac that cannot be upgraded.

Permalink.

There are more than one version of the same model. What do the versions mean?

For example, EVGA makes a GTX580, GTX580 SC, GTX580 Classified, GTX 580 Hydro Copper, and a GTX580 3072. The differences to look for regardless of the cute names is simple. Processor speed and onboard RAM. In the case of the Hydros- a different build for water-cooling enabled systems.

  • GTX580: 772Mhz / 1536 GB RAM
  • GTX580 SC (Super Clocked): 797Mhz / 1536 GB RAM
  • GTX580 Classified: 855Mhz / 1536 GB RAM
  • GTX580 3072: 772Mhz / 3072 GB RAM
  • GTX580 Classified 3072: 855Mhz / 3072 GB RAM

So with any card, look for those changes between the models. Technically, you should be able to overclock any card, and most graphics cards include utilities for that, but the overclocked (Higher Mhz) versions have stronger components and better cooling specifically designed for running the processor harder than stock specs.

Permalink.

How about NVIDIA’s Quadro and Tesla cards – aren’t they specialized super-rendering cards?

Last update: Feb 14, 2013 @ 18:56

Well, yes and no. Let’s compare the GTX series (like the GTX-5xx series) with Quadro and Tesla first:

Family
Strengths
Weaknesses
GTX• Excellent DirectX gaming performance
• Cheaper than alternatives
• Best Blender Cycles CUDA performance
• Crippled OpenCL
• Crippled CUDA (but still works ok)
Quadro• Strong OpenCL
• RAM (up to 12GB!!!)
• Crippled CUDA
• DirectX only on some models
• Expensive for new models
• Poor gaming performance
Tesla• Excellent CUDA support
• Double-precision floating-point for apps supporting it
• RAM (up to 6GB)
• No graphics connector
• Useless for gaming
• Extremely expensive for new models

For the Tears of Steel short movie they tested high-end Tesla performance, and the actual results were not too encouraging. Simply put, the GTX-580 is three times faster (!) at rendering a benchmark scene. Previous test with Quadro cards have been a lot worse again.

What this boils down to is this: with CUDA being the only option in Cycles at the moment (so no OpenCL cards) the GTX cards rule supreme. The only reasons for getting Tesla cards (if you have a fortune to burn) would be the additional VRAM they have, plus the fact that they run cooler and more stable, meaning you can stack a whole bunch of them in a single box. As their main selling point of double precision performance doesn’t apply to Blender Cycles at this time, there are few other reasons. And with a GTX-680 coming with 4GB of VRAM as an option, well, you do the math ;)

Permalink.

Can I check my wattage (PSU load) somehow? Reliably?

Last update: Feb 24, 2013 @ 16:45
Not really, but almost. This is a bit tricky, as the main problem is that it’s not the sustained wattage that you have to worry about. But first a small refresher:

  • Volts are a measure of electric force (simply put)
  • Amps (amperes) are a measure of electric current
  • Watts are a measure of electric power
The relationship between them (using the units) is defined as :

Volts * Amps = Watts  ( V * A = W )

This means that is you have (as we do in Europe) have 220V wall sockets and thus PSUs, and your system spends 2A (amps), your total wattage is 220V * 2A = 440W. Since we know that the voltage remains relatively stable (ideally), it’s the current, the amps, that decide the total load on the PSU. This is nice to know as many peripherals will list their maximum amperage, which can help you get an idea of the total amperage (which multiplied with the voltage for that device will give you the wattage).
You can use a watt-meter to measure the wattage, so what are the problems?
  1. Most wattmeters are rated for 10% precision. This means that if your real load is 500W, it could report from 450W to 550W – quite a difference!
  2. Your PSU has limited conversion efficiency. Typical values are around 70%. This means that if you read 500W on the wattmeter (assuming that is 100% correct),  your system is only getting 350W. 150W is lost to heat and other waste in the PSU
  3. Most wattmeters will only read your sustained wattage. They will typically typically don’t catch sudden spikes or peaks. If your system peaks over the maximum wattage for even a short amount of time it will most likely crash. When buying PSU you should watch the peak values for your PSU if they are given.
  4. The relationship between the wattage the PSU needs to pull externally versus what it can deliver internally is not constant. This is an example of a high-end PSU, most practical cases are worse than this.
PSU efficiency graph

PSU efficiency graph for high-end 850W PSU (“80 Plus Platinum”)

As you can see, measuring real wattage be rather difficult. But it is worth doing, as it will give you a ballpark figure, just keep the points above in mind.
See this point in the FAQ for picking the right PSU.

Permalink.

My PSU doesn’t have the 6-pin plug for the GPU. What can I do?

Last update: Feb 24, 2013 @ 17:27

You can use the converter below. But please read and understand this warning first:

Your PSU has several wires coming out of it (some modern PSUs have contacts where you can plug wires yourself, but that makes no practical difference). Each of these wires constitute a “rail”. Each of these rails provide a fixed voltage (typically 5V, 12V etc.). An example of such a rail is one of the wires, with several plugs attached to it, that powers your disk drives, CDROM, fan etc.

Now for the important bits: each of these rails have a maximum current rating (measured in ampere/”amps”, and thus often called “amperage”). If your components on a single rail tries to suck too much current, i.e. too high total amperage, they will not get enough and fail (typically crash, often your whole system). The required amperage of a modern GPU is quite high under full load. This is the reason the adapter below have two white molex plugs. This is so you can distribute the load across two different rails. Thus, when you connect an adapter like this, you must connect it to two different rails (wires) on your GPU!

For reasons that are somewhat complex, this might not be true for your particular PSU. Please read the addendum at the bottom of this entry to get the full story.

Molex to PCIe adapter, 6-pin

Molex to PCIe adapter, 6-pin

A bit more detail

From Wikipedia:

As power supply capacity increased, the ATX power supply standard was amended (beginning with version 2.0[3]) to include:

3.2.4. Power Limit / Hazardous Energy Levels Under normal or overload conditions, no output shall continuously provide more than 240 VA under any conditions of load including output short circuit, per the requirement of UL 1950/​CSA 950/​EN 60950/​IEC 950.
—ATX12V Power Supply Design Guide, version 2.2[4]

This is a safety limit on the amount of power that may pass, in case of a fault, through any one wire. That much power can significantly overheat a wire, and would be more likely to melt the insulation and possibly start a fire. Each wire must be current-limited to no more than 20 A; typical supplies guarantee 18 A without triggering the current limit. Power supplies capable of delivering more than 18 A at 12 V connect wires in groups to two or more current sensors which will shut down the supply if excess current flows. Unlike a fuse or circuit breaker, these limits reset as soon as the overload is removed.

Ideally, there would be one current limit per wire, but that would be prohibitively expensive. Since the limit is far larger than the reasonable current draw through a single wire, manufacturers typically group several wires together and apply the current limit to the entire group. Obviously, if the group is limited to 240 VA, so is each wire in it. Typically, a power supply will guarantee at least 17 A at 12 V by having a current limit of 18.5 A, plus or minus 8%. Thus, it is guaranteed to supply at least 17 A, and guaranteed to cut off before 20 A.

These groups are the so-called “multiple power supply rails”. They are not fully independent; they are all connected to a single high-current 12 V source inside the power supply, but have separate current limit circuitry. The current limit groups are documented so the user can avoid placing too many high-current loads in the same group. Originally, a power supply featuring “multiple +12 V rails” implied one able to deliver more than 20  A of +12 V power, and was seen as a good thing. However, people found the need to balance loads across many +12 V rails inconvenient. When the assignment of connectors to rails is done at manufacturing time it is not always possible to move a given load to a different rail.

Rather than add more current limit circuits, many manufacturers have chosen to ignore the requirement and increase the current limits above 20 A per rail, or provide “single-rail” power supplies that omit the current limit circuitry. (In some cases, in violation of their own advertising claims to include it. For one example of many, see [5]) The requirement was deleted from version 2.3 (March 2007) of the ATX12V power supply specifications.[6]

Because of the above standards, almost all high-power supplies claim to implement separate rails, however this claim is often false; many omit the necessary current-limit circuitry,[7] both for cost reasons and because it is an irritation to customers.[8] (The lack is sometimes advertised as a feature under names like “rail fusion” or “current sharing”.)

The general confusion surrounding this is the reason why I would generally advice you to get a new PSU with (enough) 6-pin or 8-pin contacts already included. At least then you know that your PSU is scaled to handle the load and you don’t run into the risk of pulling too much power from one rail.

The worst case scenario would be pulling so much load over a single wire that it starts developing heat which melts the plastic which then catches fire (and the exposed wire can then create an additional short-circuit somewhere). This is not hypothetical – I’ve done it myself, albeit many years ago and due to a faulty device.

Permalink.

What’s the implication of buying an OC (overclocked) version or overclocking my standard GPU?

Last update: Feb 9, 2013 @ 02:36
Simply put overclocking means increasing the clock rate of your GPU. When you buy a factory overclocked GPU, the supplier has set this up for you in hardware, and (hopefully) added the required cooling, as overclocked cards run hotter that standard cards.

When you overclock yourself, you need to be aware of (and monitor) the temperatures of your card. If you go too far, you ill get first artifacts in your renders, and later system instability. You will also most likely permanently damage your card if you overdo it, so consider yourself warned! Oh, and it could theoretically catch fire (yup!)

I would not buy a used card that I knew had been overclocked by someone (not a factory overclock) simply because it only takes a little mistake to permanently damage, or at least significantly reduce the expected life span of a GPU.

Overclocking  is outside the scope of this FAQ, but you want to make a go at is, here is a good article to get you started. Just please remember the warning above. I take no responsibility for your wrecked system/burned down house!

Permalink.

I don’t have the 8-pin plugs my GPU requires, can I use the 6-pin PCIe connector on my PSU?

Last update: Feb 24, 2013 @ 17:04
Short answer: Maybe, but I wouldn’t risk it. Time for a new PSU!

Long answer: The 6-pin PCIe connector that older PSUs have (and older GPUs use) are only rated for 75W load. The 8-pins are rated for 150W. This means that if you plug a 6-pin in the 8-pin connector, either the GPU will refuse to start or it will start pulling double the rated load over your cables, which is dangerous. You can use a molex-PCIe converter, see below, but I would never chance it! If this is all very confusing (or your PC crashes when you start a render), the short answer is “no, get a new PSU” ;)

To better understand why this is a dangerous idea, read this entry, and then think about the implication of pulling up to twice the load (wattage) of a molex 6-pin adapter and you’ll get the point ;)

Here are three different adapters, let’s examine each one:

Double molex to 8-pin PCIe adapter

Double molex to 8-pin PCIe adapter

Double molex to 8-pin PCIe. This is rather dangerous converter, as it will pull up to 150W from each of the two 12V rails.

Use at on risk! (I would never try this!)
Single 6-pin to single 8-pin PCIe adapter

Single 6-pin to single 8-pin PCIe adapter

This one is also dangerous. 6-pin PCIe plugs are dimensioned for 75W, but a 8-pin can pull 150W.

Use at our own risk! (I wouldn't!)
Double 6-pin to single 8-pin PCIe adapter

Double 6-pin to single 8-pin PCIe adapter

This is ok. Each 6-pin plug provides up to 75W, for a total of 150W, which is the max the 8-pin will draw. I use this one myself.

Just remember that if you use an adapter that gets power from different plugs, you should always connect each of these two plugs to two different rails.

Permalink.


Adding more GPUs to beef up performance

How about throwing in several GPUs or same or different model?

Last update: Feb 24, 2013 @ 16:53
It works very well to mix different GPUs, just remember that the GPU with the least amount of VRAM (GPU RAM) will determine the available RAM for rendering.

Also, there is no point in adding antiquated cards, like a GTX-2xx series card, as it is so slow that it will still be rendering the first tile when your other card is finished rendering all the others. Plus, see point about RAM above. Also, older cards might have CUDA compatibility issues.

Using your built-in GPU if you have one can also be a good idea.

Oh, and do check the post about PSUs also in this FAQ before you go and put your PC and cat on fire!

Permalink.

I have several GPUs – how does this affect VRAM?

Last update: Feb 24, 2013 @ 16:51
Simply put the total VRAM available to you will be the VRAM on the card with the least onboard VRAM. If you have a 1GB card and a 4GB card you will effectively only have 1GB to your disposal when rendering. This is why throwing in an old GTX-260 with 0.5GB RAM together with your 4GB GTX-680 is a very bad idea indeed (plus the GTX-260 wouldn’t contribute in any meaningful way even for small renders and have CUDA compatibility issues).

There are a lot of cheap cards to be had second hand now, but you have to weigh the added performance against the loss of VRAM if you combine them with a GPU with more VRAM.

You can also use an internal GPU to increase the available VRAM or make the GPU with the most VRAM your Windows/OSX/Linux viewport renderer (i.e. use the GPU as your “main” GPU for your operating system). Or, if you don’t have a built-in GPU, you can use your old GPU for the viewport and save the new GPU for rendering.

Permalink.

How about buying two cards in a SLI setup?

Last update: Feb 18, 2013 @ 15:58
NVIDIA SLI (Scalable Link Interface) is way of linking several (two normally) GPUs together. This can be great for gaming performance, but is not a good idea when using Blender. Actually, two independent GPU are much better for rendering with Cycles!

If you want to see exactly how terrible the performance hit is from using SLI, take a look at this entry.

SLI is for automatic distribution of rasterization, while CUDA (which Blender Cycles uses for rendering) is for addressing direct execution of code on the GPU. CUDA is not used for rendering (on- or offscreen). Which is why when using CUDA you can simply list all available cards in the machine and directly submit code to execute. For Cycles this is great, as you don’t have to worry about anything except making sure the card each has required minimum of VRAM for the scene. .

Do not confuse “multi-GPU” and SLI, they are not the same (even though NVIDIA makes this quite confusing in the settings for Windows).  The simplest way to think of it is that SLI is a way of getting games to run faster, while CUDA is a way of using each GPU as a separate (parallel) computer that Blender Cycles sends tiles to for rendering. A GPU is really a separate “mini-supercomputer” if you like.

In short: do not use SLI, but feel free to use as many independent GPUs as you like!

Permalink.

I’ve added a new GPUs to my system and now it doesn’t boot?!? (or: how big PSU do I need?)

Last update: Jan 20, 2013 @ 14:36

Ah, yes, the wonderful feeling of loading up your system after having turned it into your own personal supercomputer, quickly ends in tears when you try to start the beast on your 500W power supply (PSU).

Short answer: It’s blody hard to say what you need as it depends on CPU/fans/disk/etc., but I’d recommend no less than 800W to be safe for a dual-GPU setup, and ideally a 1100W+ for a triple setup. Also: you need to watch the type of connectors (6-pin or 8-pin) that the GPU requires – your PSU needs to provide those. But don’t come after me with a pitchfork when your case & cat catches fire – do your research!

Long answer: You need to be aware that GPU add some serious drain on your PSU. Simply put, a 650W might do the trick with two cards, but for example for a system using two GTX-570 GPUs cards NVIDIA specifies a minimum of a 800 Watt or greater power supply that has a combined +12 volt continuous current rating of 56 Amps or greater and that has at least four 6-pin PCI Express supplementary power connectors. Actually, total PSU wattage is not the crucial factor in power supply selection. Total continuous amperage available on the +12V rail(s) is the most important factor, but that gets a tad technical for this F.A.Q.

I have seen tests of GTX-580s running at full load pulling 475W, and another test showing a system with 3xGTX-480 pulling over 1KW (!!!) Again, I really cannot tell you the exact answer here, but overdo it and be safe! PSU are expensive, a new house more so.

You should also take a look at this point in the FAQ for tips on checking your wattage (PSU load).

A final point about about PSU are their efficiency. This is how good they are are converting outside wattage into inside wattage, to put it a bit simplistically. The graph below is taken from a high-end 850W PSU certified as 80 Platinum Plus. Notice the drop-off towards full load. I apologize for the typos in the graph, the PSU manufacturer is German ;)

PSU efficiency graph

PSU efficiency graph for high-end 850W PSU ("80 Plus Platinum")

Permalink.

Can I have more than one NVIDIA GPU rendering simultaneously? Different models?

Last update: Feb 9, 2013 @ 02:32

Yes you can! Cycles will use all your GPUs – even if they are different models. Just be aware that SLI setup are not recommended – see other item in the FAQ. Also remember that the card with the least VRAM (GPU RAM) will determine your available VRAM (also covered elsewhere in this FAQ).

And don’t forget to chose (all) your GPUs in Blender’s settings ( User Preferences > System > Compute Device Panel). I managed to waste two days rendering due to me having forgotten to chose both my GPUs in Blender’s settings before starting a render. Doh!

Finally – adding more GPU, even the crappy built-in GPU can help increase the available VRAM for rendering.

Permalink.

I want more GPUs but I’ve run out of PCIe slots – anything I can do?

Short of buying a new motherboard with more PCIe slots, your options are somewhat limited. You could of course  buy at GTX-590 or GTX-690 which is two GPUs on a single card. But if you want to add more GPUs without replacing anything there is really only one solution – PCIe bus extenders.

Using PCIe bus extenders is considered a bit hit or miss. Some people report no problems at all while others report all sorts of stability issues as well as non-working results where the PCIe cards (GPUs) in the extender are not detected by your OS. Your mileage may wary.

The idea behind PCIe bus extenders is quite simple: you insert a PCIe card in one of your free PCIe slots, and this card has a wired connection to an external board with yet more PCIe slots on it.

PCIe extender

Simple PCIe extender with (very) short cable (from 16x to two 16x and one 4x PCIe slot (from Orbit Micro)

8-slot PCIe expander from Cyclone

8-slot PCIe expander from Cyclone. Notice the separate PCIe adapter card connected with a custom cable

There are many different PCIe extenders on the market, and they are widely used, especially by the BitCoin mining community. Some are also provided as “expansion cards” to your motherboard, and some are completely discrete boxed solutions. This also a solution you can use with laptops/iMacs/Mac Minis and an adapter – see separate FAQ entry.

As this is a solution that I presume appeals to a very small minority of readers of this FAQ, and since I do not myself have first hand experience with this solution yet, I will not be including a HOWTO in this FAQ. I’ll merely content myself with pointing out that such solutions exist. If you’re someone who need more than the typically three or four PCIe slots that a PC provides and cannot simply use a second PC for the job (which is faster by the way),  you’re probably already in professional renderfarm territory, and that’s beyond the scope of this FAQ.

Permalink.

I only have a laptop/MacBook/iMac, can I still add (more) GPU power?

Last update: Feb 24, 2013 @ 15:55

Until this morning, my answer would probably have been “no”. Laptops are pretty much impossible to upgrade beyond RAM and disk/optical drives (same goes for iMacs, which are really laptops in disguise). It turns out however, that I’d be wrong. User chop_suey at the Blenderartist forums made me aware that there is a way. In retrospect I should have thought of this, as I was already planning an FAQ entry on PCIe bus extenders/expanders, but it didn’t occur to me you could pull this off with a laptop.

A small warning first though: this isn’t really a terribly elegant solution, and unless you buy a ready-made box for the external GPU, you’ll be playing with live wires, shorting pins on your PSU and generally engaging in activities that can quite possibly kill your cat. But if you’re really really desperate for a solution that will turn your old laptop into a proper Cycles rendering box (or you’re the adventurous type), do read on.

So, what’s the idea? Well, we might not have access to PCIe ports on our laptops, but that doesn’t mean we can’t connect an external PCIe bus to our laptop using a converter of some kind. So in order to make this work, you’ll need:

  1. A laptop with an expansion port, like Thunderbolt or a PCI Express Mini Card (also known as Mini PCI Express, Mini PCIe, and Mini PCI-E), but any expansion port will work as long as you can get a …
  2. PCIe -to-expansion card adapter with a PCIe slot
  3. A GPU (any Cycles compatible GPU will do)
  4. A PSU (with contacts that will fit into your GPU), or a ready-made enclosure with a power supply

The general idea is deceptively simple really. You connect the GPU to the PCIe adapter’s free PCIe slot, and the PCIe adapter to your laptop’s expansion port. Then you fire up your GPU with the PSU, and off you go . In theory at least. PCIe-to-ExpressCard-adapter Here you can see what such an adapter looks like. Notice that this one includes an extra USB port, and its own power. You’ll still need to power the GPU though (using the 8-pin or 6-pin power connectors on top of the GPU). Just to make sure we don’t fry anything, please read this entry about choosing the right connectors, and then read this one if you have 8-pin power connectors. To start up the PSU without connecting it to the motherboard, you can get a howto here [article yet not ready]. Once you have connected the PSU and powered it up, it should now be detected by the OS on your laptop, and it will behave just as a regular PSU connected to a PC would. I’m sure someone at this point is getting ready to comment that this won’t work, as the picture shows a PCIe 1x slot, while modern GPUs need a 16x slot, but if you’ve read other parts of this FAQ, you’ll know that doesn’t matter as long as the GPU fits physically into the slot.

What I have described here covers the basics, but there is a lot more detail. Of course, the main challenge is finding the right adapter for your laptop, which is a quite comprehensive topic. Trying to cover it here would be futile, as I do not myself have this setup, so unlike the rest of this FAQ I don’t have firsthand experience in setting this up. However, that doesn’t mean there is no help to be had. As mentioned initially, user chop_suey at the Blenderartist forums has a working setup. He used this very comprehensive guide to get his system up and running, so if you’re up for some hardcore hardware hacking, so can you ;)

As usual, there are a couple of things you have to keep at the back of your mind when planning this solution:

  • For enclosures (DIY or ready made):
    • Will my GPU(s) physically fit in the box?
    • Will my GPU(s) physically fit into the PCIe slots?
    • Do I have enough PSU power for the GPUs? Quick math: each 6-pin connector on the GPU indicates a maximum of 75W load and each 8-pin 150W. If your enclosure has a 250W PSU and you have a GPU with one 6-pin and 8-pin power connector (just to take an example) you must assume a maximum load of 75W + 150W = 225W, which I would consider to be cutting it very close (and most ready made enclosures I’ve seen are less than 250W)
    • Do you have enough cooling? A tight enclosure with one or more GPUs will get mighty hot very quickly and you’ll for sure need some serious fans or water cooling
  • For adapters:
    • Have someone else tried this and gotten it to work on a similar hardware as I have?
    • Do I have the right version of the adapter for my particular type and revision expansions port?
    • Does my expansion port supply enough amperage to drive the adapter reliably? (See two points up)

Generally I’d say that if you can find someone with a nearly identical setup to your in the guide that has gotten it to work, you should be off to a good start.

Permalink.


Improving rendering performance

Adjusting cycles tile sizes for increased speed and reduced VRAM

Special thanks to Brecht van Lommel (lead Blender Cycles developer) for helping me getting to the bottom of this.
Last update:Feb 14, 2013 @ 12:26

Short answer: Reducing tile size to get more VRAM has marginal effect. Do this only if your scene is only a couple of MB too large to render on your GPU. You do get a bit better effect doing this if you have a lot of render passes though. Conversely, increasing tile size to speed up rendering works, but make sure that your tile sizes are whole fractions of the total scene out size. For example: a scene rendered in HD (1920×1080) could be rendered in 1920/4 x 1080/4 = 480 x 270. To find the ideal fraction, trial and error is unfortunately key, but try to keep the dimensions over 128×128.

Very long answer:Recently the option to specify tile sizes in pixels ( x and y direction) has been added to Blender Cycles. The original explanation was that this allows for tweaking performance and VRAM usage, to get optimal speed and help reduce memory footprint of your renders. The tricky bit is though, that there was really no good explanation as to how one should go about doing this. Generally speaking, smaller tiles should produce more overhead (slower), but also reduce the amount of VRAM required to render any given scene. This is good news, as most people have GPUs with 1GB to 4GB VRAM, and on the lower end of that you will get a lot of errors while rendering due to being out of VRAM. Then you can either reduce scene complexity (not really desirable in most cases) or switch to significantly slower CPU rendering. Also, since rendering animations for example, can take a very long time, even a small increase in speed makes a big difference, so this matters.

But how do we optimize this? And how much extra speed and saved VRAM are we realistically talking about? Let’s take them one at a time.

Impact on VRAM

As it turns out, the tile size only impacts a small portion of the total VRAM your GPU requires to render a scene. The total VRAM consists of your textures, your geometry, shader code, render passes and more. Additionally, and this is the important bit for tiles, Cycles also stores the result of your render passes in its output buffer in GPU VRAM, before it saves that to disk or your computer’s RAM at the end of the render. It is this output buffer that you can reduce the size of using tiles, as splitting your render into tiles will allow Cycles to flush the output buffer every time a tile is finished. So instead of having to store the whole image (and all the render passes) in the output buffer, you can now store only a tile-sized portion of it.

This is of course helpful for reducing total VRAM usage, but since the output buffer is a relatively small part of the total VRAM that your scene requires to render, the impact won’t always be that significant. In my case, whenever I am very close to the limit I might try to tweak it. For example I could test a scene on my 4GB GTX-680 and find it to use 1.6GB, then I might try to reduce tile size to get it to render on my 4 x GTX-580 mini-renderfarm, which has only 1.5GB available.

Impact on speed

As you probably have already realized, small tile sizes create more overhead and impacts negatively on speed. Thus you’re forced to weigh VRAM usage vs. speed. Fortunately, unless you’re in one of the borderline situations where you are 10% over your GPU’s VRAM and need to reduce tile size, you can mostly focus on the speed part. Generally, larger tile sizes are faster, but this is not a linear relationship, so the larger your tiles get, the less benefit your get from making them larger, until you get the point where an increase in tile size leads to negligible speed increases.

Finding the right tile size can be a bit tricky, but if I were you, I’d start with Andrew Price’s excellent empirical tests. Then try doubling and halving the tile size and see the impact on speed for your GPU. After a couple of tries, you should ideally be close to your ideal tile size. That said, you should also see if you can’t adjust the tile size to an multiple of your full render resolution. Let’s make a quick example of how you could do this:

You are rendering a small animation of 50 frames, each frame in 1280×720 (720p) and want to optimize tile size for speed. This is how you could go about it:

  • Split the resolution into chunks that are roughly in the 128 to 256 range. If we try to split it in 4 for example, we get 1280/4 x 720/4 = 320×180, which is a bit high
  • We then try diving by 5 instead and get 256×144, which is acceptable. Incidentally, 256 and 144 are both multiples of 16 (which may or may not matter, se below)

We now have found our first test size (256×144). This will make sure there are no tiles that don’t get full power (being rendered partially empty), they are multiples of 16 and they are in our preferred range of 128-256. In order to test if this is really the best tile size you could then try the first values we found with a multiple of 4 (320×180) and perhaps a higher multiple like 6, to see which setup works the best. As this can depend on particular setup and all sort of factors, taking someone else’s results could give you a starting point but likely not the final answer.

Also be aware that doing quick 10 second benchmarks to find the best tile size for rendering a scene that normally take 10 hours, could be imprecise. Unfortunately though, it all boils down to “try it and see what works best for you”.

There are some rules of thumb you should always keep in mind though:

  • GPU and CPU rendering have different optimal tile sizes. Typically the CPU will prefer significantly smaller tiles than your GPU
  • If you render tiles that are not a multiple of your full resolution, you are wasting time. See example above for a 1920×1080 render. This is due to the fact the Cycles need to render everything, and if you’re rendering a tile that is 90% empty, it still takes the same time to render as several of your CUDA cores will then be waiting for others to finish. This is even more true with multi-GPU setup, where all GPUs have to wait for the last to finish before moving on to the next frame/finish rendering
  • Multiples of 16 have been suggested as helpful to speed things up, but according to Brecht this may depend on your specific GPU model and it not necessarily generally true (doesn’t hurt though) ;)
  • If you do decide to use small tiles to preserve VRAM, there are some nasty costs associated with that:
    • The GPU might not be fully utilized, as each pixel is handled by one core, and GPU’s have hundreds of cores and tend to work more efficiently when they have multiple threads per core
    • More GPU/CPU communication which can also lead to the GPU being underutilized
  • Experience seems to show that tiles over 128×128 works best. Less than that and you start running into the problems above.

I started this FAQ entry thinking I could provide a “one catches all” formula for tile sizes, but as you’ve probably gathered by now, this is rather tricky stuff, and there is really isn’t a single simple answer to the question.

Permalink.

What determines the rendering time for a single GPU?

In short you need to compare 3 things:

  1. Number of processors on the card. The more the better
  2. Speed of core clock. The faster the better
  3. Amount of RAM. The more the better

Things that do NOT matter (or matter very little):

  1. CPU (matters for physics and such, not for GPU rendering)
  2. PCIe speed (see more in this FAQ on the topic of PCIe speeds)
  3. Disk speed, motherboard frequency, RAM speeds, non-rendering GPUS, moon phases, your Zodiac sign etc.
But hey, why don’t you just cheat and use this benchmark is stead of guessing ;)

Permalink.

Which is faster: adding another GPU to the same PC or using two PCs?

Last update: Feb 9, 2013 @ 02:26
Short answer: Two PCs with one GPU each is quite a bit faster that one PC with two GPUs, but only for animations, not for single renders.

Long answer: If you are rendering an animation, two PCs will be a lot faster. Just point them to the same shared network drive (don’t forget to use placeholders, and prevent Blender from overwriting existing frames – this you will find under render settings). For stills, you’d obviously better off with a single PC with as many GPUs as possible as there is no easy way to distribute to work of an individual render across several PCs (network rendering addons can help here, but right now they are not working very well).

The reason is that there is always overhead when using multiple GPUs. You could say that GPU + GPU < 2 discrete GPUs to the extent that you’d probably get around 160-180% of the performance of of a single GPU by adding a second one. On two separate PCs you don’t have overhead, so you get back the difference (200% – 170% for example) which gives you an additional 30% performance in this example.

Don’t worry about using an old PC as you second one, as long as the GPU fits in it, stuff like PCIe speeds/CPU speed/disk speed etc. doesn’t matter.

Permalink.

What’s the implication of buying an OC (overclocked) version or overclocking my standard GPU?

Last update: Feb 9, 2013 @ 02:36
Simply put overclocking means increasing the clock rate of your GPU. When you buy a factory overclocked GPU, the supplier has set this up for you in hardware, and (hopefully) added the required cooling, as overclocked cards run hotter that standard cards.

When you overclock yourself, you need to be aware of (and monitor) the temperatures of your card. If you go too far, you ill get first artifacts in your renders, and later system instability. You will also most likely permanently damage your card if you overdo it, so consider yourself warned! Oh, and it could theoretically catch fire (yup!)

I would not buy a used card that I knew had been overclocked by someone (not a factory overclock) simply because it only takes a little mistake to permanently damage, or at least significantly reduce the expected life span of a GPU.

Overclocking  is outside the scope of this FAQ, but you want to make a go at is, here is a good article to get you started. Just please remember the warning above. I take no responsibility for your wrecked system/burned down house!

Permalink.

What’s this about PCIe speeds? Does it matter when rendering?

Last update: Jan 20, 2013 @ 15:04
Short answer: No, this matters only for gaming, you can ignore it for rendering.

Long answer:  The advantage of a faster bus is that you can shuffle textures (and other stuff) in and out of the GPU much faster, but when you’re rendering, the textures are all copied to the card before you start, and are not changed until you render the next frame (if you are rendering an animation). This means that the bus speed is mostly irrelevant for rendering. It only impacts the time Blender spends setting up the work at the GPU. If you render a lot of frames with short render times (less than a minute for example, with 1000+ frames) it will matter, but for most people it won’t matter at all. If you have a motherboard where you can set the PICe speeds like on mine, you can try for yourself.

I was worried about this, as my motherboard reduced the PCIe speed of all cards when adding two (down from 16x to 8x on both cards) and even worse for three cards. But I did some benchmarking and it turns out there was no performance drop at all for Cycles. For gaming it’s a different story though, but I’m sure there are plenty of other FAQs on that. :)

The same applies to PCIe16 ports that are “electrically” only PCIe8 ports. This you can, for rendering purposes, completely ignore.

Permalink.

Can I use my GPU to render scenes with Open Shading Language (OSL) shaders?

Last update: Feb 9, 2013 @ 02:31
No, not with Blender Cycles. The Open Shading Language (OSL) does not run on the GPU. This means that if you are using OSL shaders, you need to render using the CPU, at least for now.

As far as I know, the only render engine that can do OSL GPU rendering currently is Spectral Studio.

And yes, this means that the price you pay for using those cool OSL shaders is that you give up GPU rendering completely (unless you cheat with renderlayers, but that is outside the scope of this FAQ).

Permalink.

My GTX-590/GTX-690 or SLI setup isn’t performing – what’s going on?

Last update: Feb 18, 2013 @ 16:00

As explained in a different FAQ entry, SLI doesn’t really work very well with CUDA rendering and should be disabled. Both the GTX-590 and GTX-690 are really just two cards molded into one. The trick to get them to perform is to disable SLI. This is easily done in the NVIDIA settings (under Windows).

Disabling SLI on GTX-590/GTX-690

Disabling SLI on GTX-590/GTX-690

I’ve gotten some skepticism on this point, as some people believe the difference is too small to bother with, but take a look of these rendering tests of my GTX-590. The first graph shows the GPU load over time with SLI enabled. The other “half” of the SLI setup (the other GPU on my GTX-590) had a similar graph. Notice how it never gets above 80% load. It seems to wasting all its time synchronizing across the SLI link. On average, the GPU stays at half load.

SLI GPU load over time.

SLI GPU load over time.

I then went ahead and disabled the SLI link (what NVIDIA calls “multi-GPU mode” in the NVIDIA settings), and presto! Take a look at the difference!

GTX-590 with SLI disabled

GTX-590 with SLI disabled

As we can clearly see, this is the performance we want, and more akin to the single GTX-580 running in parallel. To me this clearly shows that if you are using SLI, you’re actually getting a performance hit of -50% on rendering performance. It’s easy to forget that the GTX-590 / GTX-690 are SLI cards by default, so if you have one of these cards, just disable SLI while rendering to get your money’s worth in rendering performance.

Permalink.


Solving problems

I added a(nother) GPU but Cycles is not rendering any faster – why?

Last update: Feb 24, 2013 @ 16:47
Most likely you have forgotten to specify the use of all your GPUs in Cycles (User Preferences > System > Compute Device Pane).

And don’t forget to also set it in the render settings (don’t laugh – I’ve done that plenty :) ):

Enabling GPU Compute

Enabling GPU Compute

Remember though that two identical cards doesn’t give 200% performance. The real gain is more like 160-180%. If you want 200% increase you need two PCs rendering different frames of the same animation to a shared area on disk. See this post for more details.

Also if you have an SLI setup, remember to always disable SLI as it is pretty terrible for rendering. You’ll need to redo this after every driver update.

Permalink.

How hot is too hot for a GPU and what can I do about it?

Last update: Feb 24, 2013 @ 15:52

It’s tricky to give exact values for when a GPU is “too” hot, but I personally try to keep mine under 65°C with watercooling and 75°C when using the standard stock GPU fan. There is also a difference between what your GPU can do for three minutes and what it can do for three days straight. Also, if you are using watercooling like me, the most important factor is rather what the pump can survive (much lower than the max for the GPU). Theoretically though, a GPU can run very hot, at least in bursts. From NVIDIA:

NVIDIA GPUs are designed to operate reliably up to their maximum specified operating temperature. This maximum temperature varies by GPU, but is generally in the 105C range (refer to the nvidia.com product page for individual GPU specifications). If a GPU hits the maximum temperature, the driver will throttle down performance to attempt to bring temperature back underneath the maximum specification. If the GPU temperature continues to increase despite the performance throttling, the GPU will shutdown the system to prevent damage to the graphics card. Performance utilities such as EVGA Precision or GPU-Z can be used to monitor temperature of NVIDIA GPUs. If a GPU is hitting the maximum temperature, improved system cooling via an added system fan in the PC can help to reduce temperatures.

As you can see in NVIDIAs statement, keeping your GPU cool matters not only from a safety perspective (a GPU that gets too hot will break), but also from a performance perspective, as if it gets too hot, it will start throttling down the performance of the GPU, and that’s not something you want.

NVIDIA has published the values for most GPUs, and I’ve added this table at the bottom of this entry.

You essentially got two ways of solving this if your GPU starts getting uncomfortably hot, the first one is to force the built-in fans on the GPU to speed up. It’s noisy but it works to a point. Most GPUs seems to save the full throttle of the GPU fan to when your GPU is ready to melt. Install software like MSI Afterburner to take over control of your GPU fan.

The second is to add more cooling. The simplest is to check your fans and see if the airflow gets unhindered in, through and out of your case. You can also add more fans, preferably some that  blows cold air directly onto your GPU(s). If you want to take it to the next level, you can install watercooling. This is expensive, tricky and not without risk, but if none of the above works,watercooling will save the day.

Installing watercooling

Installing watercooling (click on image for higher resolution)

Watercooling for the GPU is a bit more tricky than for the CPU as it requires you to remove the default cooling and substitute it for a custom watercooling block that fits your particular brand of GPU (meaning you’ll have to physically take apart your GPU). Then you need to hook up tubes to the block(s) and from there to a radiator/reservoir/pump. Once it’s up and running it will look something like this:

Closeup of live water loop

Closeup of live water loop

There are many pitfalls when installing watercooling (blocks that don’t fit your particular GPU, sizes of connections and tubes, right fluid for the right kind of blocks etc.), so this fall squarely outside the remit of this FAQ. Google is your best here.

Permalink.

“The NVIDIA OpenGL driver lost connection with the display driver” – crash!

Last update: Feb 9, 2013 @ 02:23
This is due to a silly hardcoded limit in the NVIDIA driver that is supposed to recover you from a GPU hang. This is done to make sure the Windows desktop never becomes unresponsive and is a problem when you only have one GPU in your system (or are only using one for both desktop and rendering).

I have two systems, one with a double GTX-580 setup and one with a single GTX-680. The last system suffers from this occasionally, but on the first one I use a separate GPU (a built-in Intel GPU) for the desktop. This means that neither of my two GTX-580 are connected to any screen, and when not rendering they are both using zero RAM and zero CPU load. This avoids this problem, plus it frees up a couple of hundred extra MB for rendering, as my 580s only have 1.5GB VRAM.

Short of using a separate GPU for the desktop (which is not a real option for gamers who also use their GPU for games), you can try reducing the tile size in the render settings. This should help alleviate this problem. But don’t forget that if you have a modern CPU, you most probably have the separate GPU option. Take a look at the back of your computer to see if there is a display connection hidden there.

Permalink.

Why am I getting “CUDA Error: Out of memory” when I try to render?

Last update: Jun 26, 2014 @ 16:08
There are two reasons why you could be getting this error:

  1. (uncommon) A bug in certain versions of Blender 2.65 gives this error for scenes that work on other versions. Try upgrading to see if that solves your problem
  2. (common) You don’t have enough RAM on your GPU (VRAM). Try rendering with the CPU and see if that works. If your scene then works perfectly, you know this is the reason.
There are some things you can do though:
  • Watch your texture sizes. Try using smaller textures, or procedural textures in stead of image textures.
  • Simplify your scene in any way you can. I’d try excluding some textured objects from rendering and see if that helps you isolate objects that eat up the most VRAM.
  • If you have a built-in GPU in addition to the one you use for rendering (which is the case on most Intel i5 and i7 setups), use that built-in GPU for Windows graphics. It will shave off a couple of 100MB of VRAM.
There is a separate post on the FAQ about measuring real VRAM usage during rendering.

Permalink.

How do I measure the actual GPU VRAM Cycles uses?

Last update: Feb 9, 2013 @ 02:24

Windows

There are several tools but I will recommend two. The first is the easiest to use: TechPowerUp GPU-Z. Download, install and you’ll get the screen you see here.

GPU-Z This is my GTX-680, which you can see is currently rendering (GPU load is 99%). It is currently using 1893MB of VRAM. Since I have the 4GB version of the card, this means I’m only at 46% of maximum available VRAM.

I do however also have two GTX-580s in a different PC. They are each faster than the GXT-680, so I used them mostly for rendering, however that would seemingly not work here, as they only have 1.5GB (1536) available. But that is not the whole truth. Included in the 1893MB figure you see here, is also the VRAM the GTX-680 needs for my Windows desktop graphics. It’s actually several hundred MB.

On my other PC, an Intel i5 with built-in Intel graphics, the two GTX-580s use zero VRAM when idle, as the Intel GPU handles the desktop. In this case this is enough – the VRAM usage on those two is currently 990MB each as they are rendering the very same scene as I write this.

The other tool I recommend on Windows is MSI Afterburner – the de facto tool for overclocking and GPU monitoring. It has lot more features and is less newbie friendly, but is more powerful.

Linux

I believe the NVIDIA Control Panel will show the RAM load, but I haven’t verified it

Mac

I don’t know here. Any feedback (use the box at the bottom) would be very welcome!

Permalink.

I am measuring VRAM usage and it varies between identical renders – what’s going on?

Last update: Jun 26, 2014 @ 16:11

This happens on single-GPU setup as Windows/Linux/OSX (most pronounced on Windows) also needs to use your GPU’s VRAM to store textures (icons, desktop backgrounds, mouse pointers etc.) and all the other bells & whistles of your desktop. Unfortunately, this can both eat quite a lot of ram (I’ve seen over 350MB on my system with Windows 7 and Aero Desktop enabled) and vary over time. I’ve seen it change 150MB between two identical renders an hour apart. In the worst case this could mean the difference between a GPU render and having to revert back to the CPU.

The best solution it to use a dedicated GPU for rendering. Many people never think of the fact that most modern setups (Intel i5 and i7 systems and their AMD equivalents) have built-in GPUs that they never use. If you enable this GPU in your PCs BIOS you solve this problem neatly and give yourself a bit of extra VRAM for rendering as a bonus.

Otherwise you can do tricks that are specific for your OS. On Windows 7 you can disable the Aero Desktop and you can always remove desktop backgrounds etc. On Linux you could stop using Compiz with that amazing cursor-trailing flame effect ;)

Seriously though, on Linux, you could shut down the graphics altogether. If you’re on Debian (or a derivative like Ubuntu), this would shut down X:

sudo /etc/init.d/lightdm stop

If you’re using gdm or another display manager, just substitute lightdm for it. You’d then have to run Blender from the console with command line arguments. Take a look at the official manual for instruction on how to do so. Just repeat the command above with “start” instead of “stop” to get your desktop back once you’re done.

This confused the heck out of me while I was trying to do test for optimal Cycles tile sizes (and is the reason why that particular information hasn’t made it into the FAQ entry on tiles yet).

Permalink.

I added a(nother) GPU and now my system doesn’t boot

Last update: Feb 9, 2013 @ 02:29

First: take a deep breath. The probability that your system is toast is really small. Check the following:

  1. Did you add the right power to the GPU, and attach it properly ? See here for more detail and explanation
  2. If you have more than one GPU, try removing another GPU than the one you just inserted. If it boots, it’s likely that you need a bigger PSU
  3. Did you insert the GPUs properly in the PCIe sockets? There is a small locking mechanism in the PCIe slot that is supposed to click into place and lock it
  4. Have you checked your BIOS? Sometimes you need to prepare the system for another PCIe card. Your computer peripherals share resources, IRQs in particular. Mine, for example, disables two USB ports when I add a third PICe device, and I need to set that in the BIOS. If you see no such options, check that your BIOS is current
  5. Did you check that no cables are obstructing the cooling fans on the GPU? Some GPUs refuse to let you boot if the GPU fan is blocked by a wayward cable
  6. Did you use an adapter for powering your GPU? There are many pitfalls involving adapters.
If none of this works, it is possible that GPU is not supported by your motherboard. The GTX-590 and GTX-690 are known to cause problems with some motherboards. Use the almighty Google to find out.

Permalink.

Why are my textures suddenly pink / purple?

Last update: Feb 14, 2013 @ 11:03
This is mostly due to two reasons, one software and one hardware related:

  1. Your textures can’t be found. Have you moved them? Did you move the .blend file while using relative links/paths? Just open the material and check the texture that’s not being rendered to see if it’s really there
  2. You’ve hit the 100 textures limit imposed by CUDA in Cycles. There is a 128 texture hard limit implemented by CUDA, meaning the maximum number of textures that can be bound to a kernel is 128 for CUDA versions up to and including 2.0. For 3.0 and 3.5 there is a 256 limit, but Cycles doesn’t account for the compute capabilities of 3.0 and 3.5 yet, and 28 are used internally for setup. This leaves us with a maximum of 100 textures, and 5 are allocated for HDR textures, so 95 LDR (regular textures) and 5 HDR. If you have scene with a lot of different small textures you can hit this ceiling, or if you use several HDR textures, though I suppose in most cases you’d have run out of VRAM a long ago by then

Special tanks to Carlo for suggesting the second point. 

Permalink.

My rendering speed if fine, but viewport (editing in Blender) is still slow – why?

This is actually beyond the scope of this FAQ (as it’s really about optimizing your Blender settings for viewport performance), but the question keep popping up, so I thought I’d mention it here. Obviously when you use rendered preview mode in Blender, your GPU speed and all the stuff this FAQ covers will matter, but for editing that’s all less relevant.

In order to optimize your viewport performance, I recommend this thread at Blenderartist. Read particularly the first post by Zalamander - it should get you off to a good start.

Permalink.

I don’t have the 8-pin plugs my GPU requires, can I use the 6-pin PCIe connector on my PSU?

Last update: Feb 24, 2013 @ 17:04
Short answer: Maybe, but I wouldn’t risk it. Time for a new PSU!

Long answer: The 6-pin PCIe connector that older PSUs have (and older GPUs use) are only rated for 75W load. The 8-pins are rated for 150W. This means that if you plug a 6-pin in the 8-pin connector, either the GPU will refuse to start or it will start pulling double the rated load over your cables, which is dangerous. You can use a molex-PCIe converter, see below, but I would never chance it! If this is all very confusing (or your PC crashes when you start a render), the short answer is “no, get a new PSU” ;)

To better understand why this is a dangerous idea, read this entry, and then think about the implication of pulling up to twice the load (wattage) of a molex 6-pin adapter and you’ll get the point ;)

Here are three different adapters, let’s examine each one:

Double molex to 8-pin PCIe adapter

Double molex to 8-pin PCIe adapter

Double molex to 8-pin PCIe. This is rather dangerous converter, as it will pull up to 150W from each of the two 12V rails.

Use at on risk! (I would never try this!)
Single 6-pin to single 8-pin PCIe adapter

Single 6-pin to single 8-pin PCIe adapter

This one is also dangerous. 6-pin PCIe plugs are dimensioned for 75W, but a 8-pin can pull 150W.

Use at our own risk! (I wouldn't!)
Double 6-pin to single 8-pin PCIe adapter

Double 6-pin to single 8-pin PCIe adapter

This is ok. Each 6-pin plug provides up to 75W, for a total of 150W, which is the max the 8-pin will draw. I use this one myself.

Just remember that if you use an adapter that gets power from different plugs, you should always connect each of these two plugs to two different rails.

Permalink.


General

Do you have an example setup with pictures and explanations?

Last update: Feb 17, 2013 @ 12:53
Yes, I’ve just put together something that might help:

  1. Fitting more that one GPU into your case – some tricks and pitfalls
  2. Building an external PSU box to get more power than your normal PSU can provide
  3. Water cooling for maximum overclocking performance and/or stability (IN PROGRESS)

I’m currently working on installing the setup below, tough I will have 2xGTX-580 and one GTX-590, which is similar to 4xGTX-580 performance wise, but will fit on three physical cards.

AquaCool twinConnect kit

AquaCool twinConnect kit

Permalink.

The meta-FAQ or “FAQ about the FAQ”

I asked for feedback from some friends of mine on this site, and there was a few questions that came up that I though be fun to put in here. Hardly on the must-read list to be sure – just a bit of background

Q: Why are you constantly referring to GPU RAM as VRAM – you know that’s pretty outdated, right (like, decades old)? 

A: Errr yes. I guess this makes me old. But in my defense, though it’s not strictly speaking the correct term, it has the added benefit of helping separate between system RAM and GPU RAM. I started using it here at one point and it kinda stuck. 

Q: You’re not a Blender developer, your daytime job is miles away from any of this. Why are you writing about this stuff?

A: For fun! Also because I’ve really enjoyed Blender, and I was thinking of ways to do something helpful. I landed on this hardware FAQ as it is one of the very few (only?) areas I can make a modest contribution. And though I’m no longer in IT, I did spend nearly a decade there as a UNIX guy and project manager, and I was always fascinated by all the bizarre hardware in the UNIX world. Especially the Silicon Graphics stuff. Anyone remember the SGI Indy? When I started university in 1995, PC graphics were still in its infancy, and suddenly having access to Indy workstations blew my mind. They actually had the same fancy smancy desktop that twas used in the original Jurassic Park movie! They even came with a racing simulator built in! How cool is that!?! Plus, I’ve played every single FPS and RTS since Wolfenstein and Dune 2, so I was constantly spending my very limited cash reserves on the latest and greatest of GPUs

Q: There seems to be a Windows bias here, isn’t your blog called “system agnostic”?

A: This is unintentional and something I intend to fix. It’s simply because I started with my gaming PC and that one has Windows exclusively. I have Linux (i386, amd64 and ARM) boxes as well, and one of them is going to be my main rendering station soon, so I hope to rectify this. Incidentally, it’s no secret that Linux is with some margin the best OS for Blender at the moment. I’m writing this on a MacBook Pro and I have an iMac and a Mac Mini as well, so I hope to fill the gaps soon, but real life is a little hectic at the moment, so I have to take the path of least resistance first. My core philosophy in all things IT is completely agnostic in the sense that I use whatever I think is right for the job, and couldn’t care less if that is Windows/Linux/OSX/whatever. Actually, the blog on which this FAQ resides is all about overcoming the quirks you run into when you start mixing a bunch of OSes and hardware on the same network. It’s been idle for a while though, as my time has been stretched pretty thin recently. 

Q: I see you have Google ads a donate button on this site – is this a get-rich-quick-scheme?

A: Hardly – the ads annoyed me, so I got rid of them and replaced them with a donate button. I think of it as my “buy-me-a-beer button”. Its usage is much appreciated but considered extremely voluntary – if you’re on a budget save your cash for a better GPU! ;)

Q: How did you pick the topics?

A: That’s easy – I started with the most frequently asked questions at the tech support forums at Blenderartist. I was hanging out there after having asked some questions myself and was struck by how big a percentage of the questions had been answered only the day before. People kept asking the same questions over and over. It’s a wonderful testament to the unique (and yes, I really do believe it is rather unique) patience and friendliness of the Blender community that many of the same people would keep on answering the essentially same questions over and over without ever blowing a fuse. A proper FAQ was clearly overdue though, and one was set up in a post there (not by me). It was quite good, but in my experience these FAQ threads become messy and difficult to maintain quickly, so I suggested making a separate FAQ on a blog, and this is it. I do owe most of the original points to the gentlemen attributed at the top of this FAQ – that was my starting point, but I think it’s safe to say that is has grown quite a bit from there…

Q: Can I request a FAQ topic?

A: Absolutely! As long as it (mostly) hardware and Blender Cycles related I’d love to hear it! Just leave a comment and I’ll get right to it as soon as I have a minute. Just please note that I’ve gotten a few questions on specific configurations of the type “I have system like this: xxxxxx (lot’s of detail)xxxxx, will that work?/why doesn’t it work?”. I do unfortunately not have the capacity to answer those – that’s what the tech support forums at Blenderartist are for :)

Permalink.


Below are articles that are not finished, either because I need more data or am looking to include more information, or in some cases the theory and practice doesn’t match and I need to figure out what the facts are before making them “official”. Sometimes I go overboard and write too much, and cutting it down takes time, so I leave them here until they are ready. The main reason they are included here are so that if you, dear reader, spot an error or have the solution any of my conundrums (sorry, as a finance guy I love that word), I’d love to hear it in the comments below.

Work in progress

103 thoughts on “Blender Cycles GPU Hardware FAQ

  1. Pingback: Blender Cycles GPU Hardware FAQ ready | The Dedicated System Agnostic

  2. Thanks a lot for all this – much appreciated! I noticed you haven’t mentioned anything about the Tesla/Quadro card from NVIDIA. Aren’t they supposed to be like the über-rendering cards?

    • Yes, although they are actually not that great for Blender. I’ll add a FAQ point about them today. Thanks a lot for the input! :)

      Update: added to the “Choosing the right hardware” section

  3. Pingback: The Ultimate Guide to Buying a Computer for Blender | Blender Guru

  4. I just got the GTX 650. After seeing this page I realize I may have purchased the wrong one however the GTX 580s are very expensive at this moment.

    • I don’t think you’ll be disappointed with speed of the GTX-650 necessarily, but if you have the 1GB version, you might possibly find yourself a little VRAM constrained, which can be frustrating considering how it does limit the maximum size of your scene/textures that you can render using your GPU somewhat.

    • Yes, that shouldn’t be a problem at all. The SATA plug is just a different physical plug, it doesn’t change the electrical properties in any way. I use those plugs myself, as I have some fans with molex plugs, and my new PSU doesn’t provide enough of the old molex type plug to power all the fans. Just please be careful and make sure that if you are using a molex to 6-pin PCIe power adapter that you read the FAQ post I updated earlier today, as you if you connect it wrong, it can be harmful to your PSU. Please take look at this post for practical info:
      http://www.systemagnostic.com/faqs/my-psu-doesnt-have-the-6-pin-plug-for-the-gpu-what-can-i-do/

      In short, you need to make sure that if you have a single 6-pin PCIe plug on your card, you should have a Y-split adapter to two white molex plugs (each which you again can connect using the molex-to-SATA adapter). Then, and this is the important bit: connect each of those two moles (or SATA) plugs to two *different* wires coming out of your PSU.

      This is because the 6-pin molex sucks a lot of power, and you want to distribute that load on two separate wires (called “rails”). If you connect both of them to the same wire, you defeat the point of having a Y-split, and it is there for a good reason! :)

      • oh snap then i need to look into a new power supply. Im using a Dell 620
        http://www.dell.com/us/p/inspiron-620/pd
        i plugged both ends to the lone sata connector that was coming out of the cd rom since it was the only one there available. should i be worried. It bsoded earlier but ive been on it all day and it only happened once.

        • It’s hard to tell really. It could potentially work, but your BSOD is not a good sign. I’d say that you’re running on higher risk than I’d find acceptable personally. Though the chances of damaging your hardware (GPU and PSU mostly) are hard to estimate, I personally wouldn’t take the chance as the worst case scenario is pretty bad (PSU breaking down, damaging components in the process, even fire hazard due to overloaded cables starting to produce heat – probably unlikely but not impossible). Even if nothing really physically breaks, you still have the more likely possibility of random BSODs, and you’ll get pretty fed up with those. Particularly when they result in hard disk errors and eventually the need to reinstall Windows or Linux at frequent intervals.

          It’s of course tempting for me to always suggest throwing a lot of money after oversized components to be on the safe side, but I do realize the nobody has a unlimited budget for these upgrades. However, skimping on the PSU can turn out to be really expensive in the long run, so here I’d “bite the sour apple” (as we say in Norway) and get myself a nice 650W or more PSU, preferably one with built-in 6-pin or 8-pin (both will fit and work) PCIe plugs. I just checked, and it’ll set you back around $75, so it’s relatively cheap insurance against your Dell going nuclear on you :)

    • I’m sorry to say that I’ve only tested a GTX-680, so not the MX used in the iMac. When it comes to GPUs used in laptops (and an iMac is essentially a large laptop from a design perspective – if you don’t believe me, try prying it open – scariest hardware job I’ve ever done! ;) ), it’s a bit more hit an miss, and it seems to vary from implementation to implementation what they decide to sacrifice from the desktop model to make it fit in a laptop (or iMac). So I’m sorry to say that I can’t help on that chip specifically. My iMac has an older chip that doesn’t work due to being too old CUDA version (plus the horsepower is so lacking the CPU if faster anyways)…

  5. Hi,

    Nice FAQ, can you please add in that CUDA rendering has a 100 texture limit aswell? If images cannot be loaded in, they come up pink.

    • That’s an interesting point that I was unaware of. I’m all *too* aware of the VRAM limit, but are you telling me that the actual number of textures is capped at 100? I’m used to the “pick textures”, but that’s mostly when I’ve moved the textures so they’re no longer found by Blender. Is there a reference to this in some documentation anywhere?

      • Yes, there is a 100 texture limit implemented by CUDA.. http://en.wikipedia.org/wiki/CUDA
        Maximum number of textures that can be bound to a kernel 128 for compute capabilities up to 2.0, 3.0 and 3.5 have a 256 limit… but cycles i dont think accounts for the compute capabilities 3.0 and 3.5 yet… and 28 are used internally for setup. so 100 textures, and 5 are allocated for HDR textures, so 95 LDR and 5 HDR

        • That’s very nice to be aware of Carlo. Thanks a bunch! I’ll add that (and credit you of course) tomorrow. I’m sure there must have been people who’ve run up against that already, though I confess I’ve not been anywhere near that myself yet (or rather: I’ve run out of VRAM long before and cut down on the textures before they could reach such number as a consequence).

  6. Can you absolutely confirm that the *lowest* of the GPUs RAM is used, rather than the GPU with the highest amount of RAM actually sharing it’s RAM between the two – that is to say, you’re limited to the amount of RAM in the GPU with the most, rather than the lowest. Because all information I have read indicates this is the case.

    Many thanks.

    • I can confirm that the lowest GPU ram is used, as the entire scene has to be stored independently on both cards (as each GPU only has access to its own memory)… It is actually mentioned correctly in the article
      “Simply put the total RAM available to you will be the RAM on the card with the least. If you have a 1GB card and a 4GB card you will effectively only have 1GB to your disposal when rendering.”

      • Yup, Carlo is absolutely right – this I’ve tested extensively :)

        Actually, the annoying thing is, when you have only one GPU for rendering and viewport, it’s pretty random how much VRAM the viewport eats up. I was testing Cycles tile sizes and VRAM usage on a system with a single 4GB GTX-680, and Windows ate from 150 to 350MB of VRAM when not rendering. It was such a big source of error it made my testing completely worthless. I’ll repeat the tests on a system with an Intel GPU for the viewport and an GTX-580 for rendering. On that system the VRAM usage of the GTX-580 is 0 when not rendering. Exactly how useful that information will be to people with single-GPU system is another matter, so I think I will add a pretty large disclaimer ;)

        But I have a system with 4 GPUs, and because I’m an idiot, one of the GPUs has 300MB less VRAM than the other, and that single GPU is definitely the limit for the scene I am rendering. If I need those extra 300MB the other GPUs have, I simply disable the GPU with the least RAM. You’ll run into the same problem if you have two GPUs (or a GTX-590/GTX-690) and use one of them for the viewport (i.e for your desktop). In that case you’ll need to render only on the GPU that is *not* connected to your monitor to get the full amount of RAM.

        • Disabling Windows Aero also helps alot, i run windows basic layout and it removes all the transparencies in the menu bars, windows only chews up about 50 meg now on the gpu

          • Yup, or you could go completely overboard and run it from Linux without X from the text console :)

  7. great faq :)
    just little notes:
    gtx 590 = 2 gtx 570 not 2 gtx 580
    full HD = 1920 * 1080 not 1280

    some more info about the tile size:
    for most gtx cards best tile size should be 128 * 128 …why?
    due to the fact that group consists of 32 items …to hide memory latency it is multiplied by 4 …makes it 128

    I think higher gtx breaks this rule (i think group = 48 items or something like that) which makes it 48*4 =192 (not sure about the 48 items but i remember i read it somewhere long ago) …so i guess the best for gtx 580 is 192*192

    for AMD group consists of 64 items…mainly 256 * 256 for i think all cards of AMD
    last note ,I’m an OpenCL developer :D

    cheers

    • another note which is not related mainly to cycles but to gpu performance

      OpenCL mainly == CUDA for nvidia gpus (so gtx 580 will perform the same with CUDA or OpenCL)
      here is the shock!! in most OpenCL benchmarks the Amd 7970x (which is comparable to Nvidia gtx 680) out performs gtx 580 by 2.5 times in almost all tests (which makes this card the future beast!!)

    • You’re absolutely right about the GTX-590 (it’s a little late here atm, so that’s on tomorrow’s TODO). Actually, I shouldn’t really really confess this, but I got myself a 590 earlier this week. Realized that it’s indeed a double 570, got a little mad, strapped on water cooling and overclocked it (just slightly) and promptly blew it up! Not my finest hour! :D

      I was doing some tests on the tile sizes after I got some feedback from Brecht van Lommel who’s lead developer on Cycles, and to be honest with you, his answer was mostly “it depends” – and boy does it depend on a lot of factors. My own tests were inconclusive, though it seemed generally that bigger is better, but that gain fall towards zero at about 256×256. I’m neither an OpenCL nor CUDA developer though, but I thought that I’d compensate for my abysmal technical knowledge (the largest chip I’ve programmed was 8bit, single core ;) ) with some proper empirical tests. I was in the process of doing that when, well, my test-GPU exploded…

      You do bring up some interesting stuff there though. I look forward to see what the tests show – after all, the proof of the pudding is in the eating after all.

      • you are right :)
        it totally depends!!
        but as you guys got 580gtx test with it and tell me …test 192*192 and 384*384 too
        the speed totally depends on the algorithm :D and Brecht for sure know how the whole thing is running :)

        the 192 doesn’t have to be faster though …as it may be not used (by forcing numbers in the host code so that approximations happen when you don’t use non-power of 2 numbers so that gpu doesn’t give you errors)

  8. We run a fair few 580s, and we do everything from 1280×720 renders to 8000×8000 renders…for 1280×720 renders, 256×256 is optimal usually, and anything above, 512×512 is optimal… but its very scene / rendersize based… so doing prerender tests is always important.

    • Yeah, like I mentioned above I figured that at the of the day the only thing that really matters is what real tests show. Problem is that since Cycles moves pretty much everything only the GPU, unlike most other render engines that keep large portions off the GPU, renderlayers, shaders and all that stuff gets chewed on my the GPU, so comparing my test scene with your real-life scenario is probably not going to work very well. But I was at least hoping to get some sort of consistent pattern that I could use to recommend some “sane” values. So far that is use “128×128″ or “256×256″, but things get more complicated with multiple GPUs where they never finish at the same time, and having smaller tiles reduces waiting for the slowest GPU before starting the next frame when doing animations. There is also Brecht’s point that using fractions of the render resolution would be smart (which I was in the process of testing when there was a rather interesting explosion in my case (se above)).

  9. Thanks for the information. Really helpful.
    I would like to know whether Blender can switch from GPU ram to system ram when the GPU ram gets filled up during a cycles render.

  10. Please tell me, does rendering an animation use up more memory than rendering a still?
    IF SO, does it mean the GPU stores each rendered frame before processing all into a video?

    Thank you.

    • No, rendering an animation really just means “render a whole bunch of stills and (optionally) merge them together once you’re done”. In order to render an animation, you will need no more VRAM than the one frame in your animation with the biggest VRAM requirement. After each rendered still, Blender Cycles goes down to zero VRAM usage before beginning the next frame, as it saves the completed frame to normal RAM or disk.

      It is *very* much recommended making a bunch on still from Blender first and then merge them together later, rather than making a video from Blender directly. But the reasons why, and how to do it, is beyond the scope of this FAQ. Take a look at BlenderArtist.com to get some good answers as to how this is best done.

      • Alright, thanks a lot, i get it now. I’ll be migrating to GPU rendering soon so…uh…you know…i got to ask all the questions.

        One more question please, is it possible for the GPU to perform simulation (physics) computations as well or is it strictly just for rendering in cycles and 3D viewport acceleration.

        • Strictly for rendering at this point I believe. That’s actually a very good question, as physics would benefit greatly from GPU assistance, but a far as I know, there is no help from the GPU on that just yet.

          • :(
            I guess that would be another VRAM dependent task…(and we know the limitations that will come with that).

            Thanks for all your help, man!!!
            Happy blending!!!

  11. I’m tweaking a six year old Dell Optiplex 755 by adding a new, but cheap, Geforce GT 630. I read that Blender/Cycles holds on to the GPU most of the time when rendering, thus preventing Blender from writing to the screen. If I “force” my box, via the bios, to use the motherboard integrated GPU, would Blender still be able to “see” the add-in card and render with it while still writing to the screen?

    The Dell manual describes the BIOS GPU settings to be AUTO or ONBOARD to establish the “primary” graphics controller. This implies that a secondary graphics controller would remain visible to the rest of the system. By the way, AUTO just means: if card then use card else use onboard GPU.

    Have you any experience with this or shall I just have to try it after my long trip to Frys and back?

    Best regards.

    • Hi Tony!

      Yes, it will see your GT 630. It’s important to note that Blender doesn’t really think of your GPU as a “GPU”, but rather as a separate parallel computing device in your PC that it can send computing tasks to (as long as you have installed drivers for it).

      Actually, this BIOS settings is really only about one thing: which GPU should it turn on and use when you boot your PC. If you chose AUTO, it typically will use the first external GPU if it can find one, or otherwise use the built-in GPU.

      This setting doesn’t actually matter for Windows/Linux, as the operating system will use its own settings for preferred adapter. To give you an example: I normally use the internal GPU to save RAM (see entries in the FAQ about this). This means than when the PC boots, I need to have my monitor connected to the port of the internal GPU. However, I once needed to make some change in the NVIDIA control panel in Windows, and annoyingly, if you don’t have your monitor attached to an NVIDIA card when opening the NVIDIA control panel, it will refuse to start, saying you nee to connect a monitor to the NVIDIA card. So I did. And forgot about it. When I then rebooted, my screen was dark, as the BIOS was set to using the internal GPU. But the moment Windows started, it would switch on, as Windows detected the monitor attached to my NVIDIA GPU and used that for Windows automatically.

      So what I’m saying here is that the BIOS settings only matters for boot messages, nothing really else. (At least, that’s how it normally works. With Dell/HP and some other brands, well, they do so much weird stuff to their BIOSes that it’s hard to say for sure without testing it).

  12. Thanks for the FAQ. This was really needed badly. Some recommended edits:

    1) You may want to edit this page: http://www.systemagnostic.com/faqs/what-gpus-graphics-cards-are-supported-by-blender-cycles/
    To reflect the fact that starting with Blender 2.67, official builds don’t come with support for Geforce 2xx and 3xx cards (computing capability 1.3) anymore. For more information see here: http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54706
    2) It may be a little premature but you should mention that for people with a sizable budget (~$1K USD), the NVIDIA Titan appears to produce Blender performance on par with or better than other Geforce cards (e.g. 5xx). For example: http://www.sweclockers.com/recension/16541-nvidia-geforce-gtx-titan/13#pagehead

    • Hi!

      Thanks for very good feedback! I just read the 2.67 upgrade ditching 1.3, but I hadn’t found anything solid on it yet – thanks for the link! (And good thing too – the 1.3 stuff with all its limitations only caused headache for the poor saps who tried it).

      I’ve read the Sweclockers review (a perk of being Norwegian and thus understanding Swedish), but I frankly didn’t find it entirely solid enough to use as a source. Granted, it looks very promising, but I’d rather wait and see some real-life Blender tests/benchmarks. Actually, I’m hopefully starting my new job soon, in which case I might actually consider treating myself to one and benchmark it myself ;)

        • I agree. All points to the Titan being the new king of the hill (if you can afford it). I’d just love to see some pure Blender Cycles benchmarks with different kinds of scenes etc., so I could say exactly *how* much better, and if it holds true in all situations. If I wasn’t saving for my upcoming Route-66 tour, I’d consider doing it myself ;)

          That being said, that benchmark looks pretty conclusive though (and I trust Tom’s HW) – it’s more that twice faster than the 580, and with all that VRAM, I think we are safe to conclude that the Titan is indeed the one to go for now.

          • I recommend editing the “Which NVIDIA GPU model then” section of your FAQ to include information on that beast of a card

          • You owe it to your FAQ readers to update the “Which NVIDIA GPU model then, there are so many different?” section with the latest GPU models (incl. Titan).

          • Yup, I definitely should do that. And get the new benchmark stuff ready for launch. I’ve been on vacation and started a new job recently, so I’ve been completely snowed down, but I’ll try my best to get it updated this week – thanks for the reminder.

          • Ok, updated FAQ article to include the Titan. All I have to do now I sell the car and get myself one ;)

  13. Hi! I’ve recently found myself in the 3D world, by the hand of Blender. I bought a new box, with a nVidia GT 640. My question is, if i’m not wrong, CUDA uses the GPU cores to speed up a render right? So, why my machine freezes and gets slower when i’m rendering with CUDA instead of working normally when i’m renderin scene with all the CPU cores? I’ve an AMD Fx 6100 3.3 Ghz, RAM 8 Gb and the said GPU. Running last version of Blender under Archlinux up to date. Is this wrong or is just as it is? Thanks in advance!

  14. Sorry about my language, i feel didn’t expressed myself rightly. I want to say that rendering with CUDA makes my PC slower, than rendering a scene with all my CPU cores. It’s not supposed to be the other way around?

  15. Hi Gabriel!

    I would’ve expected the GT 640 to be quite a lot faster, yes, so I am not entirely sure what causes your problem. As long as you use the Cycles rendering engine, select your GT 640 as rendering device in the Blender settings and choose “GPU rendering” in the render tab, it should normally work fine.

    The GT cards are quite a bit slower than the GTX cards that I’d normally recommend using, but I am surprised you find it slower than CPU. I have not experimented with this on Linux very much (and I did it only on Ubuntu, not Arch), so I cannot say what might cause your problem exactly. My recommendation would be to post your problem on Blenderartist forums (http://blenderartist.org) as there is a lot of experienced Linux users there, and you’ll for sure meet someone with experience with both your specific GPU and Arch.

    Sorry I can’t be of more help.

  16. Hi Ole,

    Thanks again for all of your efforts in setting up this site.

    I was unable to find anything in the cited link to the (dated) article “Blender Cycles best hardware ? Using the Benchmark spreadsheet analysis” demonstrating performance differences with the later GTX 6xx series since the data is largely from 2011 (90 entries) and fewer entries from 2012. Additionally, many of the GTX 5xx series cards from retailers are out of stock or discontinued as I’ve been finding out today.

    All of this (“For the Love Blender!” ;) makes me wonder if maybe it’s time for another crack at such a benchmark test and ideally a little better mapped out this time around. Maybe an online form where testers can enter their results and thus ensure its uniformity along with a handy sortable viewing of the results. This place seems like an ideal place if you have the time and patience. – Just a thought :)

    • Hi Kelly,

      Sorry I’m late in responding – just back from Easter vacation. You’re right that the time is ripe for another updated Blender Cycles benchmark. Part of the problem with that last one was also that the render started becoming so quick that is was difficult getting significant differences to show between the different high-end configurations.

      Your suggestion for using the Google docs for this is sound, but I was thinking that in order to weed out issues with the old benchmark in relation to people using different formatting and naming conventions (which made it a bit of a mess at times), perhaps the best would be for me to hack together a web interface with pull-down menus for selecting your hardware. It would make automatic comparisons a breeze and (hopefully lower the threshold for people participating), as well as allow for some nice auto-generated and always-up-to-date graphs. Will take me a few days (to say the least), but might be worth it in the end.

      Oh, and we’d need a benchmark file. Something a bit heavier than the old one, with a minimum of image textures (the eliminate the PCIe bus-speed’s impact on render scores). Ideally something with quite a lot of polygons and procedural textures perhaps. Maybe I should ask the question at BlenderArtist to see if anyone has any cool ideas…

  17. Hi OJ,

    Currently I have a rig of the following setup:

    intel 3930K
    2 GTX 660 Ti 3Gb (connected with SLI bridge, but default off)
    800 Watt PSU
    16 Gb 1600 Mhz memory,

    I use a dual screen setup ( A HD screen and a small 4:3 screen). On one I do the modeling and compositing, the other I use for the realtime render of my scene. I’m considering of buying a cheap card (GT 630 for example) to use as a drawing device, and take the load of my GTX 660 ti’s. Will this result in a better workflow when using the 660′s for rendering and the 630 as my “work” device ? Is this possible in Blender?

    • Yes it should.

      Another immediate advantage of doing what you suggest, is that you 630 will provide the video RAM for your OS and applications (which can be around 500MB in Windows 7 for example), which will free up the same amount of RAM from your 660s – in itself wort the additional card in many situations, as it will allow you bigger/more complex scenes (remember that you only have access to the video RAM amount of the card you use for Cycles with the *least* available RAM, and if one of your 660s also have to provide video RAM for your desktop, you lose quite a bit). Furthermore, it will of course allow the full power of your 660s to help your rendering (just remember to keep SLI disabled, as it murders performance), so all in all this is all good.

      It’s important to keep in mind that the GPUs you assign to cycles, are treated as small parallel computers by Blender, not really as GPUs (which is why SLI messes things up unless disabled as it tries to do stuff to help you play games faster). Therefore your reasoning is correct – you can simply keep working with your 630 and let the 660s work in the background. There are some situations where you might have some stutter when you’re doing CPU-intensive stuff like fluid simulations and such, but you’ll have that problem no matter what you do really.

      I’d say go for it! :)

      OJ

      • Thanks for the quick reply!
        I got the card installed and ready to go, but I ran into a problem.
        My system supports 3 PCi express cards. My setup is as follows:
        1st slot: GTX 660 Ti
        2nd slot: GT 640
        3rd slot: GTX 660 Ti

        The reason I set it up this way is because of airflow. Now my problem:

        When I want to select the gpu for Cuda in cycles I get these options:
        - GT 640
        - GTX 660 ti (first one)
        - GTX 660 ti (second one)
        - GT 640 + GTX 660 ti (2X )

        So I’m missing the one option I’ve been looking for namely:
        - GTX 660 Ti (2X)

        Is it possible to select just my performance cards and leave my drawing card alone? Could it be related with my (slightly awkward) setup?

        Thanks in advance

        • Dang! I should’ve though about this – sorry! The reason is that Blender lets you chose either all cards (the last option) or any single card. The best way to do it would be to somehow “blacklist” your 640 in Cycles, but exactly how you would go about that I do not know. This is a Blender issue, and not your fault, so I would consider filing a bug report/feature request (which can get you a “proper” solution relatively quickly), or I would ask a Blenderartist for a workaround. If that fails, I would consider asking on the official mailinglist. You can add yourself to it and ask questions by going here: http://lists.blender.org/mailman/listinfo/bf-cycles

          • That’s not a problem, I could return my card withou any issues. However, I did post the same issue on the official blender.org forum and I got the answer. If you open the Nvidia control panel you can add the Blender.exe file to the list of programs that utilize the GPU. Then you can individualy turn of the CUDA cores per graphics card for Blender. It’s a workaround and it works, but it would be easier if you could select them in the software itself.

  18. Спасибо за ваше старание! У меня есть карта с устаревшей версией cuda1.1 .Чтоб в будущем не растраиваться по поводу устаревания сuda, Приобрету 4 ядра процессор.:). чего и вам советую

  19. If I have three graphic cards can I can get blender to use all three or just one. Is there a way to limit blend to use two of the three cards?

    • In the nvidia control panel under 3d settings, you can add the Blender.exe file. Then in the scroll down menu you can disable the cuda cores individually per graphics card. It is advisable to disable the cores on your primary graphics card (wich controls your monitor(s)). In Blender you can select the other two cards for rendering (your primary card won’t show up at all).

  20. I need some help please. I need a list of every thing I need to get to build a good pc, so if you have a good and fast pc for cycles rendering with NVidia gpu’s, I would love it if you could give me a list of every single little thing you had to buy to make it, from the case to every thing that is inside it, thank you so much. good luck have fun bye bye

    • I’m afraid that is somewhat outside the scope of this blog really. Here I deal primarily with the actual GPU – and the focus is rather on solving problems and answering specific questions rather than benchmarking or recommending specific GPUs or hardware. Probably you would have more luck at the BlenderArtist forums. But to improve your chances of getting an answer there, if I were you, I would try making some concrete suggestions and asking for people’s opinions on those. It’s easier to get opinions on your suggestions, than getting other people to do all the work for you ;)

    • I see you’re getting good traction on the thread at Blenderartist (users like mib2berlin are real heavyweights and if they can’t help nobody can). I’ll leave this for now, and if you get stuck I’ll take a look again. It does also look like it’s potentially a Blender bug, and in that case I can’t really help all that much.

    • Hi Kandy,

      Sorry, this site is really a specialized FAQ for Cycles GPU hardware issues. If you want general advice on building a PC from scratch or finding the perfect rending station, I’d recommend asking at http://www.blenderartists.org. They have a technical section where this kind of questions pops up from time to time. If your budget is liberal, I’m sure someone there will be able to suggest some rendering workstations that will give you great bang for your bucks. My contribution would simply be to suggest that whatever PC you buy, get yourself as many NVIDIA Titans as money can buy and will fit in your case :)

  21. Hi, it might be a noob question, as theres a common cpu render farm out there, is it really possible to build a gpu render farm? Multiple pc with good gpu combined and used as render nodes? Thanks before!

    • Hi Faridz,

      Not a noob question at all I think – have been asking myself the same thing ;)

      In theory you have the network rendering plugin for Blender, which is included by default. However, for Cycles it doesn’t really work very well. There are third-party solution by people who’ve built their own – Google will find a couple for you, but most of the ones I tried a year ago weren’t exactly mature solutions. So in short, I think there will be soon, but there aren’t yet.

      However, if you are rendering animations you can “cheat”. Say you have two PCs, and you share the same output directory over the network. Then you simply turn off “overwrite” and on “placeholders”, and render the animation as a set of images. Then the first machine will start rendering frame0.png, and make an empy file by that name in your shared folder. The second machine will try to render the same frame, but sees the placeholder, and skips to the next, so it starts rendering frame1.png, and so on.

      I shared a folder and made three different PC render the same animation, and they nicely shared the load, so in this way you can get around it for animations. For single renders there are, to the best of my knowledge, no full working solution for Cycles at this point.

      I hope this answers you questions.

      • Hi OJ. Thanks for the quick response! I appreciated it!
        Well, i see the point with the animation cheating. Hehee..
        Its logically legal though, haha its the first time i hear about the trick.
        But my primary use is for architectural rendering..
        So i need a sharp detail and hi res textures on my image.
        And some of light bounce for realism. Due for interior lighting. And that takes some serious time. Because i seldom do an animtion with interior or exterior stuff. But when it comes to that, your tips will be really helpful. And i think it also possible to do the “cheat” on a single image. If i have 3 cpu or lptop, i could just use a bounding box to divide it into 3 render areas. And combine it later in image procesing software. Better than nothing. Haha..
        Oh yea, if i may ask, if i use a gtx 560 or 580, what minimum processor / cpu support this? Because it looks like i could do with the cheat.
        Thanks mate!
        Cheers.

        • There is actually one more trick on still images, which, if I recall correctly, consists of rendering the same image on several different computers, say 3, each with, for example, 1000 passes. You just need a different seed for each (in Cycles render settings). You can then take three images and join them in the compositor and get a 3 x 1000 = 3000 passes quality image. It’s a neat trick, but I don’t remember where I saw it…

          For the 580 you really don’t need much. I’m not sure about the actual “weakest” CPU you can use, but any Intel i5/i7 or AMD equivalent would work for sure. I’ve head people getting into trouble with old Pentium 4 CPUs, but I haven’t confirmed this myself. Had no no problem on an old Core2DUO either.

          Remember: once the rendering starts, the CPU doesn’t do much. All the crunching is done by the GPU (this is why PCIe speeds are irrelevant). You should keep one thing in mind though: the GTX-580 has only 1.5GB or 2GB RAM depending on the model. If your scene requires more than that, you either need a Titan (expensive!) or CPU rendering (slow!).

          I don’t know what kind of texture sizes you use, but it’s worth keeping in mind.

          • Well thanks again for the fast response, i bet you’re online right now, hehe..
            I mostly used 2048 tiles. And sometimes HDRI images that is heavy.
            And thanks for the other trick.
            It may works if i wanted to achieve 1500 samples by combining 3 of 500 sample images.

            So if i use core 2 duo, it wont bottleneck the GPU? I’m using 680 now, and had no problem though. And the heat is quite stable.
            I’m still considering things like that though, because i dont know when theres a time i need lots of the VRam…
            And i cant use my farm, that would be funny.

            Well, i can afford that cheap titan.
            After selling my whole family houses!
            Haha..
            Just joking.

            Cheers,

          • Yup – online, though supposed to do work, so I guess that makes me procrastinating… ;)

            Realistically, the CPU is hardly ever the bottleneck. I just tried rendering a scene I’m working on in the background while writing this, and the CPU load of Blender is constant at around 13% – not exactly choking. I do have an 8-core i7, but still, with only 13% CPU load during rendering, I think your DUO should be enough. Trouble is, it’s hard to predict these things sometimes, but I am 85% sure. Just don’t send me hate mail if it actually turns out to be a problem ;)

            If I were you, I would download and install MSI Afterburner if you are on Windows. Then you can see how much VRAM your GPU uses while rendering (just remember to read the FAQ article about saving VRAM by not using the rendering card to also show your Windows/OSX/Linux desktop – it’ll save you a lot of VRAM). If you see that you normally need over 2GB of dedicated VRAM, then you’re out of luck on the GTX-580…

  22. Pingback: A High-End Workstation PC Under $3,000 for Cycles Rendering in Blender | Lightwell

  23. Pingback: A High-End Workstation PC Under $3,000 for Cycles Rendering in Blender | digital craft

  24. I’m not getting any devices listed on the system tab, and it only shows CPU. What do I need to do to enable the GPU? This is with a standard Blender build (from 64 bit Fedora 19) with a GTX 760.

    • Which drivers are you using? You need to use the proprietary NVIDIA drivers, and not the open source drivers in order for this to work if I remember correctly.

  25. Thanks for replying. I have installed the nvidia drivers (from rpmfusion, I think). (I’ve just checked that with lsmod).

    Do I need to install CUDA? Or is that just for building blender? I have had a reply from NVidia support telling me that they do not yet support Fedora 19; I’m not sure if that means I should wait for their next release, or whether the drivers included with their Fedora 18 CUDA will work with the latest kernel.

    More generally, is there anything I need to do, to get GPU rendering, other than:
    - have a suitable graphics card installed
    - install the nvidia drivers
    - set the system option in blender (in user preferences > system)?

    • Hi – sorry about the slow response here – nasty flu virus knocked me out cold.

      No, you do not need to install the CUDA toolkit, all you need should be in the driver. I was surprised to hear that Fedora might have driver issues. I’m a Ubuntu guy myself, and there it has worked very well for a long time.

      Your summary is spot on – if you got those 3 you’re good. It seems to boil down to Fedora support for NVIDIA proprietary drivers – those you cannot do without. They are binary blobs (i.e. an “abomination” in any true open source enthusiast’s book, but I’m a little more relaxed myself), so it might be licensing/philosophy that stops Fedora, but now I’m just guessing.

      • Well, do you have any idea why my system is not doing GPU rendering then? If the NVIDIA drivers are enough (without CUDA) why isn’t the GPU option showing up in Blender?

        • The only thing I can suggest is that if you are _not_ using the proprietary digital blob drivers directly from NVIDIA in Fedora, you’re out of luck. The free and open drivers do not work, and probably won’t in a long while. Did I understand you correctly in that Fedora, which you use for rendering, does not support the proprietary drivers? If so, that’s the reason.

          • 01:00.0 VGA compatible controller: NVIDIA Corporation GK104 [GeForce GTX 760] (rev a1)
            Subsystem: Micro-Star International Co., Ltd. Device 282b
            Kernel driver in use: nvidia

          • Hmmm, everything seems to be ok. I’m sorry to say that I’m at the end of my suggestions here. You have the right drivers, you’ve looked in the Settings->System menu, which means I can see no reason why it doesn’t work.

            I’d try to look for CUDA test program and try to see if this is a Blender problem or if you have a problem with your local installation. If you can run a CUDA demo program, it’s Blender. If not, well, then something is wrong with your setup.

            Take a look at this: http://stackoverflow.com/questions/5133901/how-to-check-if-cuda-in-installed-correctly-on-ubuntu-10-04

  26. So does anyone know how well the 700 series cards are fairing vs the 500 series. We all know the 600 series performed worse than the 500. Did the 700 series offer any advantage over the old 500′s? Ive been looking at a 4gb gtx760 card and it supposedly is faster than the 580 for games, but i havent herad anything about it as far as rendering is concerned. I was thinking of getting two of these in SLI and water cooling them for better stability. Ive heard these gtx cards aren’t built for 24 hour use like the tesla cards are. Which i can attest too. My gtx570′s heatsink just failed on me after 2.5 years of owning it and using it for rendering. The only solution that has been thrown around is water cooling.

    • Hi Green,

      The honest answer is I haven’t looked at the benchmarks in detail yet, though it seems that the 700 series actually come out on top in performance only. As for value for money the GTX-780 might not warrant the extra cost. Tests with Octane seems to indicate about 30% extra performance for the GTX-780 over the GTX-580, but costing nearly twice as much. Also, if I remember correctly you get same VRAM options. That leaves you with energy efficiency (temperatures + power consumption) as only real arguments I guess.

      Personally I have a 2xGTX-680 + 1xGTX-690, water cooled, and I see little incentive to upgrade. My two cents worth anyway :)

      PS: SLI is terribly bad for rendering performance. Take a look at the FAQ for more detail on that…
      PPS: SLI is awesome for gaming though ;)

  27. Thanks for posting all this information, it has been very helpful to me.

    I posted my BMW Cycles Benchmark results here: http://blenderartists.org/forum/showthread.php?239480-2-6x-Cycles-render-benchmark&p=2543145&viewfull=1#post2543145

    With the GTX 580 Classified I have, I’ve managed to get a 51% increase in the Cycles benchmark linked above by simply buying a second video card to run my displays — and this is not even using both GPUs for rendering. I originally tested this with a GTX 650 to run my three monitors, leaving the GTX 580 to render in Blender only and it worked out great.

    Though I’ve upgrade the 650 to a 770 soon after (for gaming), I still get the same results for the 580 alone, but the 770 + 580 = 22 seconds in the BWM bench. I did notice that when I threw in a second video card, my display performance is no longer laggy when rendering in the background, as the 580 is doing all that work instead of the 650/770. And of course, with the 580 no longer running my displays, it was fully dedicated to rendering hence the significant increase. I haven’t really seen anything about this, and this experiment of mine was an accident too.

    Now the reason why I ended up doing this was to solve another issue on another topic, an issue I am still having. The 580 will stop rendering due to CUDA errors (some windows related timeout), and Blender’s Wiki said one of the ways to solve this was using a different card for display (this didn’t fix anything, but it did speed things up for other renders). It’s an annoying issue, and I did submit this to Blender’s bug tracker: https://developer.blender.org/T37849

    • Hi and thanks for the input!

      I was quite amazed too, when I started using my crappy internal GPU for desktop, how much it offloaded the rendering on my main GPU – it’s truly a neat little trick! ;) It is buried in the FAQ here actually, as I, like yourself, more or less stumbled across this as well.

      I don’t know what causes your 580 to stumble halfway through, but I’ve heating issues that have made my GPU go bonkers on me after a while. The 580 is a mighty beast, and it’s just a well suited to heat your apartment or house as it is to render stuff ;)

      While I do think that you have stumbled across a real bug here, I would try some additional cooling once just to eliminate that as a source of error. You could, if you haven’t already, install something like MSI Afterburner. It will tell you two things: the GPU temperature (over 105C and you’re in trouble) and maximum VRAM used (more than what you have on your card and Cycles _will_ crash). It will help you eliminate two very common sources of such problems. But again, judging by your output I am guessing it’s not hardware. Still, doesn’t hurt to try…

      • I don’t think its a heating issue, in fact I was hoping my PC heat would up my room a bit, but it’s freezing! With my specific issue, it uses up to 2.1GB (out of 3GB), and the temp reads 65C during render, 39C idling.

        Anyway I also wanted to add that the GTX 780 Ti rocks with Cycles, even puts my GTX 580 Classified to shame. And together, they’re unstoppable. 15 seconds for the BMW bench. :)

        • I also own a 780ti (zotac AMP edition) it has 3gb of faster ram onboard and it is factory overclocked, it is really really fast with cycle, search “new cycles bench” on blenderartists.
          I suggest to update this article since it is a precious reference for many blender users and if you don’t read in details you will end up buying a TITAN, otherwise it seem to me that 780ti is a better choice after all.

          • I think you’re probably right – I haven’t looked into the details of it yet. I will do my best to squeeze it in this weekend and update the article. (And look to see if I should get one myself, um, for “testing” of course ;)

  28. if you need some help to test it just let me know if I can help,
    I’ve a windows 7 machine with a GTX560ti (related to display activity at the moment) and a brand new GTX Zotac 780ti AMP! edition (render activity of course)
    Thank for your work, very usefull for who is interested in how stuffs work.

    • Hi again bullx! I’ve started to develop a seriously bad conscience for not getting this stuff sorted, but the simple truth is that between renovating the family’s summer house (no internet connection yet) and some serious crunch time in the company I work for, there just hasn’t been time to give this my full attention which it deserves.

      I’ll get around to it, but it will still take some time. However, if you are interested, I could give you access to update the articles yourself. Would you be interested in doing so? It’s all directly editable through this blog, so it doesn’t require much knowledge of the how the blog works.

  29. Pingback: Pomoc przy komputerze za 8k - Overclocking Forum - OCForum.pl

  30. I have a problem and I’ve tried several tips but with no success. I have a Quadro and a Tesla K20 but I can’t see the tesla in blender 2.71+cycles. Can someone Please advice on how to get the Tesla to work in Blender?

    Thanks in advance for any help.

    • Hi,

      To be honest, I do not know. Normally, you should be able to select the Tesla under compute device in the settings. If not, your best chance it to try one of the official cycles developers mailing list. I know someone asked this question some time back at Blenderartist as well – perhaps they have found a solution meanwhile. Sorry I can’t be of more help.

  31. I see you share interesting things here, you can earn some additional cash, your blog has huge potential, for the monetizing method, just search in google – K2 advices how to
    monetize a website

    Feel free to visit my webpage – Stephan

Leave a Reply

Your email address will not be published. Required fields are marked *

Connect with Facebook


− two = 6

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>