PDA

View Full Version : OpenCL vs CUDA - building a new workstation


Wolvenmoon
01-13-2013, 01:06 AM
Hello all,

I'm about to build a new computer. I'm going to go ahead and build it on a Core i7-3770K with 32 gigs of RAM, I'll be pushing the system up to 4.2GHZ, which, on this benchmark chart, http://www.cpubenchmark.net/high_end_cpus.html , will put it at about 11500 or on par with a Xeon E5-2650.

I'm having trouble figuring out what I want to do with the graphics cards. I have all of the Autodesk student software, but I'm primarily a Blender 3D user. Blender 3D's new internal renderer doesn't support OpenCL rendering on AMD cards, but AMD gaming cards are far superior to the latest generation of Nvidia gaming cards for GPGPU work.

Looking at video cards, I have the option between doing something like grabbing two GTX 580s off of ebay, each with 1536MB of RAM, or one Radeon 7970 now and another one down the road. Each 7970 has 3 gigs of RAM on it, which means it can handle more complex scenes while rendering. However, I'd not get acceleration with Blender 3D's internal renderer.

This isn't too bothersome to me - I'm more worried that programs outside of Blender 3D will not support acceleration with the AMD cards.

How widespread is OpenCL adoption in other programs? Would I be getting more than I lost if I went with AMD cards?

Thanks!

tswalk
01-13-2013, 07:43 AM
well... you're kinda comparing apples to oranges growing on a banana tree. The parallel processing framework differences are significant between OpenCL and CUDA, and honestly play little to no part in actual GPU performance.

matter of fact, CUDA is not even used except in simulation calculations like for particles, etc... probably likewise for OpenCL.

I think what you should really be looking at is the OpenGL performance versus DirectX on the cards.. and in terms of Maya , just OpenGL.

Saying that, attempting to put together an SLI configuration or Crossfire is a waste of money, I do not know of any 3D programs that utilize it. Vray and iRay perhaps, but I have neither and can't say for sure there.

so, unless you're doing some serious scientific number crunching.. or visualizations, CUDA and OpenCL is a moot point IMO.

pingking
01-13-2013, 03:19 PM
thats not true. a lot of modern render engines use OpenCL or CUDA to render (Arion, iRay, Octane, VRay RT, Cycles in Blender, ...)

also Adobe uses a lot of CUDA stuff in the latest releases of Premiere and AE. also Blender does some of the compositing calculations now as OpenCL.
also in the compositing sector Nuke and Fusion now have some calculations on the GPU as OpenCL or CUDA.

right now CUDA is more supported in apps then OpenCL

tswalk
01-13-2013, 07:48 PM
Perhaps a clarification is needed on what exactly he's doing.. rendering or visualization. There's a huge difference in how the final image is calculated.

If you are doing viz work... then yes, a high performance parallel computing setup is a major benefit, and CUDA is widely adopted while OpenCL is catching up and looking good... but they are still totally different.

... and check this out and tell me that consumer GTX cards can't be used for it:

http://www.youtube.com/watch?v=hSVo4ejZ7rc

still, the GPU is the main workhorse, the CUDA cores are more-or-less an off loaded virtual core that allows significant paralleling of tasks executed by the GPU.

Wolvenmoon
01-13-2013, 09:09 PM
The issue is that in GPGPU tests where we're doing an apples to apples comparison, AMD cards are immensely faster than Nvidia cards. http://www.tomshardware.com/reviews/geforce-gtx-660-ti-benchmark-review,3279-12.html

They also come with more RAM per dollar spent, and AMD gaming cards should have more OpenGL performance than Nvidia gaming cards, dollar for dollar. This means I'd be able to work on more complicated meshes to my knowledge. Nvidia is deliberately crippling OpenGL performance in their consumer lines just like they're crippling GPGPU performance because they want to sell their Quadro and Tesla parts respectively.

AMD does have a reason to not support OpenGL performance on their consumer parts, but because they aren't trying to sell a part that's exclusively made for GPGPU stuff, they haven't eliminated their GPGPU performance in their consumer cards.

OpenCL and CUDA are both APIs to access the parallel processing capabilities of a GPU. OpenCL works on all platforms, but CUDA is Nvidia only. A CUDA core is roughly equivalent to an AMD stream processor. I believe www.pcper.com (http://www.pcper.com) has articles in their history that go into the actual GPU architectures themselves.

For GPGPU acceleration of tasks, an increasing number of programs are supporting multiple graphics cards. Since I'm a computer science major and a gamer with an art hobby, 3D work is third on my totem poll of things my system needs to do. However, in the end I want to buy whatever's going to save me the most time. (I.E. if I can't use Cycles, I'll use Luxrender, but if the time I lose in fidgeting with Luxrender on an AMD GPU offsets the time I'd have if I just used an Nvidia GPU and Cycles, then I'd have to take that into consideration.)



I'm actually not ordering my graphics cards for this system build - yet - so I have time to wait and see if OpenCL starts getting more market traction, but assuming I'm going AMD - what am I going to miss out on?

olson
01-14-2013, 03:12 PM
Unfortunately CUDA works only on Nvidia cards and they intentionally cripple most of those cards to force users to buy more expensive products. In other words, they're sheisty as hell. On the other hand OpenCL is an open standard supported by many manufacturers and developers. Seems like an easy decision in my opinion. :shrug:

tswalk
01-14-2013, 08:42 PM
Unfortunately CUDA works only on Nvidia cards and they intentionally cripple most of those cards to force users to buy more expensive products. In other words, they're sheisty as hell. On the other hand OpenCL is an open standard supported by many manufacturers and developers. Seems like an easy decision in my opinion. :shrug:



:thumbsup:

ok, so it took a while, but i found an interesting article that seemed to be objective about comparisons...

http://blog.accelereyes.com/blog/2012/02/17/opencl_vs_cuda_webinar_recap/

since you're going to be a CS major... this may be a good way to evaluate the benefits.

Wolvenmoon
01-14-2013, 09:20 PM
crippled or just crappy OpenCL performance for the mostpart? :thumbsup:

Nvidia deliberately cripples the performance of their consumer parts GPGPU performance. The GTX 4 series had absolutely phenomenal performance, then the 5 series didn't really improve, and the 6 series backslid.

AMD's actually gotten the jump on them - Nvidia cards are no longer the best for GPGPU. Even the Tesla cards are beat down by the consumer Radeon cards, now-a-days. Their only advantage is CUDA. Their latest chipset, GK110 (which isn't available to consumers yet), may be better suited to GPGPU stuff, but they've made it clear they're not going to give consumers good GPGPU parts.

http://streamcomputing.eu/blog/2011-06-22/opencl-vs-cuda-misconceptions/


...OpenCL 1.1 has some speed-up with i.e. strided copies, so comparing CUDA to OpenCL 1.0 (since NVIDIA’s 1.1-drivers a a year old and not been updated since) is totally not fair. What is fair to say is that one piece of hardware is faster than one another, and certain compilers can be more advanced in optimising – but since CUDA and OpenCL as a language are so much alike, it is impossible to put a verdict on which language is (potentially) faster...

...A Tesla c2050 with 3GB of RAM costs (http://www.google.com/products/catalog?client=ubuntu&channel=fs&q=tesla+s2050&oe=utf-8&um=1&ie=UTF-8&tbm=shop&cid=8721727382375528152&sa=X&ei=lQcBTuecNcWfOteR1YAO&ved=0CDIQ8wIwAw) $2400,-, giving 1 TFLOPS single precision (0.5 TFLOPS double precision). The fastest AMD Radeon, the HD6990 with 4GB, costs (http://www.google.com/products/catalog?q=amd+radeon+hd+6990&um=1&ie=UTF-8&tbm=shop&cid=5599249838167722464&sa=X&ei=RQkBTqKzDs2dOteTnZAO&ved=0CFoQ8wIwAA) $715,- and gives 5.1 TFLOPS performance single precision (1.2 TFLOPS double precision) – three of them give more than 15 TFLOPS for $2145,-. Of course these are theoretical numbers and we still have the issue of the limits of PCIe, but for many problems RADEONs are just much faster (https://en.bitcoin.it/wiki/Mining_hardware_comparison)than TESLA/GeForce with GPGPU. TESLAs have higher transfer-rates and can have 6GB of memory, so they are better fit for other problems – FFT and alike computations for instance still rocks on NVIDIA-hardware.

( GK110, which the latest Tesla cards use, http://www.theregister.co.uk/2012/09/18/nvidia_tesla_k20_benchmarks/ should come with 3.5-4.58 teraflops at single precision, 2 teraflops of double precision performance. The latest Radeon flagship card, the 7970, gives ~1 TFLOPS of double precision compute performance, http://www.anandtech.com/show/6025/radeon-hd-7970-ghz-edition-review-catching-up-to-gtx-680 )

There's no question that AMD completely smears Nvidia here. We're talking ice in a blast furnace - all that's left is water vapor. In raw GPGPU compute performance, Nvidia is so far behind in this round (Radeon 7xxx vs Nvidia's everything) that I'd not even consider them if Blender Cycles worked on AMD cards.

However, Nvidia has wider application support for CUDA. Far fewer applications support OpenCL than CUDA - to my knowledge.


So yeah, I think I've answered my own question, sort of. I need to hold out on a GPU upgrade for awhile.

Wolvenmoon
01-22-2013, 09:30 PM
I figured I would make this thread informative since I'm doing all of this research! Sometimes I wish I had money to burn so I could experiment, but the pressure's on me to get things right! :D

Nvidia's releasing a new card codenamed 'Titan', it's going to be a GK110 card released at around $900. http://www.tomshardware.com/news/Titan-Nvidia-GK110-gpu-tesla,20614.html

It's going to use the same GPU as the K20X Tesla card, that Tesla card's floating point precision is theoretically 3.95 TFLOPS single precision, 1.31 TFLOPS double precision, http://nvidianews.nvidia.com/Releases/NVIDIA-Unveils-World-s-Fastest-Most-Efficient-Accelerators-Powers-World-s-No-1-Supercomputer-8b6.aspx .

The pro is that it'll have 8 gigs of RAM on the GPU. The con is that card for card it's not that much faster than a 7970 in theoretical compute performance (4.3 TFLOPS single precision, 1.01 TFLOPS double precision ) http://www.amd.com/us/products/desktop/graphics/7000/7970ghz/Pages/radeon-7970GHz.aspx#3 and actually loses in single precision performance, so it might actually be slower in certain applications. However, it'll be able to handle more complex scenes than other cards.

AMD hasn't officially declared their real successor to their 7xxx series of cards. There's rebranding going on - where they're taking 7xxx cards and calling them 8xxx cards, but nothing really new - yet. My verdict: Wait for the new AMD architecture and grab the x970 card unless you need something NOW, in which case go for the 7970. 6GB versions exist.

Edit: I'm finding benchmarks contrary to earlier stuff, Luxrender's real world benchmarks show Nvidia coming out ahead.

http://www.luxrender.net/forum/viewtopic.php?f=13&t=4384
http://www.luxrender.net/luxmark/search/avg/Room

ThE_JacO
01-22-2013, 09:48 PM
You can compare theoretical performance all day, and think of picking up SLI setups for cheaper than a single bigger card and all, also all day, but you would still be failing to consider three things:

1) What apps do you use (other than blender), and what do they use? OCL support is still rare and far apart, CUDA on the other hand is a mature and well adopted framework with some actual inroads in our field

2) What will the drivers for your chosen platform(s) be like? I occasionally give AMD/ATI cards a shot, even if I've been on nVIDIA forever now, and at the end of the day, while much better than before, I still find their linux drivers abysmal (while the nVIDIA ones are just plain bad), but that might be changing

3) SLI is still largely pointless in DCC in nine out of ten cases or worse

I'd like to see AMD doing better in our markets, because nVIDIA has been dropping many balls, but sadly it doesn't seem to be quite that time yet, and while you do seem to have a hardware fetish to satisfy (and there's nothing wrong with that), I seek comfort and QoL first, and nVIDIA still wins on that front.

mustique
01-23-2013, 04:10 PM
In a perfect world, everybody would develop for OpenCL when it comes to GPU computing and we would have healthy competition among GPU vendors.

Unfortunately OpenCL requires low level coding. CUDA has visualbasic like high level development tools which make it much easier to develop for. That's why we see Adobe and the likes support CUDA rather than OpenCL. Hopefully openCL will catch up with better dev tools and things change for the better.

On a side note, Tesla and Quadro cards are known to outperform AMD cards for openCL calculations as well since they have more mature drivers. So don't get caught by theoretical TFLOP numbers, but look for reviews on realworld performance tests for your application.

If I'd need GPU acceleration today I'd get a Tesla or quadro. (or a cheap Geforce 580 GTX) A new rumoured GK110 based "Geforce Titan" card (based on Tesla K20 silicon) is on the horizon too. Lets keep fingers crossed that it's not as crippled as other geforce cards.

Wolvenmoon
01-23-2013, 09:47 PM
I use any application that's free at the moment, I'm fine working on either Windows or Linux though I have a preference for the former. If I need to render something huge (and I haven't for awhile, shame on me) I jump over to Linux because Blender 3D's internal renderer had a 33% faster render time on Linux than on Windows. I don't know about Cycles.

I've been digging through benchmarks trying to compare Nvidia and AMD, most of what I do is gaming. Gaming benchmarks are rather straightforward, common, and thorough, unfortunately there doesn't seem to be a great source for unbiased benchmarks of various things used in this industry.

Finding benchmarks on the Tesla and Quadro cards is really difficult. I don't like using theoretical numbers because, as the Luxrender links I posted earlier show, there are ways for companies to significantly skew those numbers, but I'm coming up empty.

freeDNA
02-15-2013, 10:43 PM
Currently Blender Cycles GPU rendering : -

(1) OpenCL support development is on hold.

(2) Therefore it does not work well (or simply not work) with ATI cards.

(3) A mid/low end nVidia card give better performance (https://docs.google.com/spreadsheet/ccc?key=0As2oZAgjSqDCdElkM3l6VTdRQjhTRWhpVS1hZmV3OGc#gid=0) than a high-end CPU.

(4) nVidia 6xx CUDA is crippled to promote Quadro cards, so 5xx series is better for Cycles.

Wolvenmoon
02-16-2013, 01:45 AM
Actually, the Tesla cards available on Ebay look like they might be worthwhile...

CGTalk Moderation
02-16-2013, 01:45 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.