4 ms·
CPUs are much more general! Unscientifically, on my 2950X/1070Ti workstation, Cycles takes approximately the same amount of time to raytrace a scene on the CPU
by dTal 6y ago
CPUs are much more general! Unscientifically, on my 2950X/1070Ti workstation, Cycles takes approximately the same amount of time to raytrace a scene on the CPU vs the GPU. I think this is a great example of a highly parallel workload that is challenging for GPUs due to lack of coherence - extreme props to the Cycles team for making it work on GPU at all.
Also, year-on-year performance increases for nVidia GPUs are relatively boring, while Threadrippers routinely double in performance. I have just built a 3970X/RX5700XT workstation, and while I have not benchmarked it yet I expect the CPU to smash the GPU for Cycles raytracing.
Also worth noting that CUDA is a proprietary architecture from a single company - targeting it locks you in, and you need to run proprietary blobs to make it work.
All in all, CUDA works well now but I think it's ultimately a dead-end architecture - hugely parallel CPU architectures will eclipse it.
- jacquesm 6y agoThe people that use CUDA don't care about the underlying architecture, they need results. Which ever manufacturer will deliver those results will get the $. Raytracing is not an ideal match workload wise for a GPU, too much divergence, but there are plenty of workloads where GPUs will have an edge for along time to come.
- qayxc 6y agoIt's more than that - NVIDIA invested massively in their software ecosystem and mindshare (e.g. by a huge sponsoring program that saw universities flooded with their hardware). AMD cards offer comparable compute performance and are sometimes even better. What AMD lacks, though, are ready-to-use software packages like CUDA, cuDNN, cuBLAS, and the like. NVIDIA basically bought their way into the research community and solidified their strong foothold by keeping CUDA proprietary. It's fascinating how other companies (Microsoft) get bashed on a regular basis for using the exact same tactics (see Direct3D vs OpenGL on Windows), while people are perfectly fine with NVIDIA doing it...
- jacquesm 6y agoBecause NVIDIA did not do anything illegal - so far. MS is a convicted monopolist that actively went after competitors rather than just to let the market decide. What NVIDIA has done so far is perfectly fine in my book, paying companies not to use competitor hardware, funding third party lawsuits and stealing IP, the browser wars and so on are things that Microsoft has done.
- dpwm 6y ago> a huge sponsoring program that saw universities flooded with their hardware This is really important, and I don't think people quite realise the scale. I was doing a Physics MSc in 2012 and it seemed that almost everybody in computational physics was doing some variant of reimplementing Y with CUDA. That's not to say it was the wrong tool for many of the jobs – though for some it apparently was, judging by the levels of stress – but I did find it a bit weird how this was an approach to research that pretty much completely ignored vendor lock-in.
- rhn_mk1 6y ago> people are perfectly fine with NVIDIA doing it I assure you, the affected scientists who have to fight tooth and nail for funding are less than impressed that they are dependent on the mercy of a single vendor.
- BadInformatics 6y agoAMD does have ROCm/HIP, hipDNN and hipBLAS (which mirror their counterparts), but these and the rest of their modern GPGPU stack suffer from a lack of polish, ineffective evangelism and subpar documentation. It's difficult to justify using them unless you work at somewhere like ORNL where folks are building new infrastructure using exclusively AMD GPUs.
- esperent 6y agoNot only that but there are features in Blender that cannot be rendered using Cycle GPU mode but work fine using Cycles CPU mode. On the other hand, wasn't GPU mode added much later than CPU mode? Maybe there has been less development time put into it.
- thdrdt 6y agoI'm not sure your CPU will be faster. I'm using Blender on a Ryzen 9 3900x with a RTX 2070S. The CPU is never faster than the GPU. CPU + CUDA is way faster, but when I use OptiX (RTX) it is unbelievable how fast it is. The GPU Raytracer just shines here. The Blender benchmarks: https://opendata.blender.org/ https://opendata.blender.org/
- govg 6y agoThe Nvidia 2xxx series are optimized for ray tracing though, so not sure if comparing with their 1xxx cards make sense.
- thdrdt 6y agoWell the comparison is between CPU and GPU. Will there come a point that an affordable CPU is faster than a GPU? Maybe that time will come but I am not sure if that will happen soon.
- Yizahi 6y agoThey are not "optimized" strictly speaking. Thousands of CUDA cores on them don't do ray tracing, it is done on a separate hardware which just happens to sit on the same chip. Add RTX cores to Threadripper crystal and you will get the same result.
- dTal 6y agoI don't know, the 3970X has nearly 3 times as many cores as your 3900X. You may be right if pitted against an OptiX GPU, but that's a bit unfair since that entire generation's raison d'etre is raytracing-specific hardware - my point concerned GPGPU, with raytracing as an incidental example. nVidia can't redesign their GPUs for every workload that GPUs struggle with.
- thdrdt 6y agoIf you look at the Blender benchmarks you see that the 64 core Threadripper is faster than any GPU. But the price is steep for that CPU (almost $4000). So while CPU's can be faster the question is if it is relevant. Because you still need a GPU next to that Threadripper for some graphics (if you need graphics).