If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Comment

Probably because OpenCL sucks for complex tasks AND because AMD drivers suck AND because NVIDIA cares more about CUDA than OpenCL in their drivers...

Just ask the blender devs, they have not been able to make OpenCL work for years. I bought a GTX 750 Ti just for Blender Cycles and I've to say that the drivers are rock solid. I just don't care anymore if CUDA is propietary because, as I've said many times, life is too short and I can't wait for proper drivers anymore.

Comment

Also, in a recent test, AMD's OpenCl CPU compiler was unable to successfully compile the LuxRender (LuxCore) 2.0 program. Quite literally they couldn't make a working C compiler for CPU (since OpenCL is basically C with limitations for the nature of devices, IIRC).

Why bother hope for better OpenCL GPU compiler if their CPU one can't even work, and LuxRender has generally been fairly accommodating to AMD Cards anyhow.

Possibly :P That is for the Cycles OpenCL Kernel, not the LuxRender one, and I don't know if that would have fixed the CPU compiler. I've installed those drivers, and it does seem to run Cycles so far (but disproportionately slower in terms of raw compute power than an nVidia card) but there are graphical errors on the latest Cycles version again (2.7.1 vs 2.7)

Comment

Main Cycles developer came from company that wrote another renderer that support Cuda. He wrote the code Cuda style for Blender and then at some point added OpenCL on building kernel step. Than he did the same with Cuda but the code itself is already written in mind with different architecture. He said it himself that he doesn't know how to write OpenCL but it shouldn't be different from Cuda since some function do the same thing.
On LuxRender forum they said that method Cycles developer is using is not really useful with GPUs but Nvidia through driver hacks made it possible to run. Its no surprise they're long in this business.
They forgot about OpenCL code altogether. Sometime ago AMD made driver that could compile it(even though not ideal), immidiately after that next Blender release happened and "fixed" this little problem and AMD stopped working again, and the head of Blender foundation said that they will probably drop support for OpenCL completely.
No, Blender is not opensource software that make justice to everyone it relies on proprieatry vendor lock technology too much.

Comment

No, Blender is not opensource software that make justice to everyone it relies on proprieatry vendor lock technology too much.

You do realize that LuxRender is developed with OpenCL in mind, specifically AMD, and it still fails to run with all features enabled on GPU? The developer had to make Lux compile its OpenCL kernel with only the features used in that specific scene.
The latest 14.6 drivers may fix that, but even so that's an on off, badly working OpenCL drivers from AMD for over 2 years... the LuxMark OpenCL benchmark uses an older, more limited version of SmallLuxGPU, v2.0, while the current version is 4.

Even for Cycles, the base code isn't written in CUDA or OpenCL, but a subset of both, and runs FINE on OpenCL CPU drivers (as well as nVidias OpenCL GPU driver). The OpenCL code that Cycles is written in is fine, and conforms to the OpenCL specification.
Cycles features are written CPU first, and then ported over to GPU when possible.

While an AMD user and fan myself (and a Blender/LuxRender fan, not Cycles) Blender is open source, and it's not the job of Cycles developer(s) to waste time and effort to compensate for AMD's poor OpenCL drivers. If AMD users want to fund $50k+ min for a developer to work on Cycles and OpenCL, than they can do that at their own expense, without costing development time on features for Blender/Cycles that benefit everyone else.

Any recent improvements will be among the first steps of AMD getting better, and current Cycles benchmarks running on my 7970GHz, are IIRC comparable to a 750Ti, which has a lot less raw compute power (and power usage/price).