After reading into CUDA cores I am under the assumption that the CUDA cores are just the normal cores of the GPU. They can be used to perform physics calculation to unload the CPU using PhysX or they can be used to perform other computation intesive work such as encoding/rendering which is often slower on a CPU. This also assumes that rendering graphics is nothing more than lots of computing which is correct to my knowledge.
The context for asking is that I would like to know if it is feasible to play games and render/convert stuff at the same time, increasing productivity while my machine is on.
Are CUDA cores the working cores of the GPU or are they seperate cores which can be used exclusively for computation?
Best Answer
Modern graphics engines are based on shaders. Shaders are programs that run on graphics hardware to produce geometry (the scene), images (the rendered scene), and then pixel based post-effects.
From the Wikipedia article on shaders:
Modern graphics cards have between hundreds and thousands of computational cores that are capable of executing these shaders. They used to be split between geometry, vertex and pixel shaders but the architecture is now unified, a core is capable of executing any type of shader. This allows a much better use of resources as a game engine and/or graphics card driver can adjust how many shaders get apropriated to which task. More cores allocated to geometry shaders can give you more detail in the landscape, more cores allocated to pixel shading can give better after effects such as motion blur or lighting effects.
Essentially for every pixel you see on the screen a number of shaders are run at various levels on the computational cores that are available.
CUDA is simply Nvidias API that gives developers access to the cores on the GPU. While I have heard the term "CUDA core", in graphics a CUDA core is analogous to a stream processor which is the type of processing core that the graphics cards use. CUDA runs programs on the graphics cores, the programs can be shaders or they can be compute tasks to do highly parallel tasks such as video encoding.
If you turn down the level of detail in a game you can feasibly reduce the computational load on the graphics card to a point where you can use it to do other things, but unless you can tell those other tasks to slow down as well then they are likely to try and hog the graphics processor cores and make your game unplayable.