Cycles NEEDS to move to OpenCL 2.0 for cards that support it

Hey,

Right, Im now starting to get a good idea of code within Blender and cycles to be dangerous, It’s taken months in spare time but it’s starting to click with me.

Cycles is going through a sponsored update for split kernel which benefits Cuda users and Opencl users. But OpenCL 2.0 is STILL being ignored (even in code comment’s there are statements about this is really the wrong way to go about this but when we move to Opencl 2.0 this will change).

Cuda in Cycles has had the blessing of Blender devs to provide different capability based on cards and supported shader models for ages, Yet Opencl is bottle necked into 1 for all platforms. This needs to change, Old Opencl cards dont even get recognized within the user settings in Blender so why cant NEWER opencl capable cards be given the ability to utilize the benefits of such a compute platform update as Opencl 2.0 Over older OpenCL which is a nightmare to use and compete with recent changes.

OpenCL 2.0 as a basic setup within Cycles should now support Shared Virtual Memory, This will also help with the new split kernel that was aimed at allowing CPU and GPU in opencl cycles to work together in a beneficial manner. If NEW split kernel work is being done, ALL the best Opencl 2.0 best features should be included in that change if need be by assigning features by card (Cypress, Tahiti, Haiwai etc etc etc) Just like cuda cards have been given through cycles in the past.

People Constantly moan about Opencl support in Blender, Well let Opencl Hardware that can do Opencl 2.0 DO opencl 2.0 things. All you have to do is look through what Opencl 2.0 can do and your soon realize it can do everything CUDA can, That was the whole point of opencl 2.0.

As the WHOLE kernel is being updated with Mai’s Split Branch, Do it right for gods sake and use the update as a means to update the Opencl support. 2.0 is far easier to deal with than trying to make Opencl 1.2 Do things it was never designed to do, Hence why Opencl in Blender lags so much right now.

For me more important than Mai’s new split kernel for opencl users is , Shared Virtual Memory Support, and decent CPU GPU Opencl interop. Get it sorted, your Crippling OpenCL users, Not the hardware vendors like people like to try to push the blame to, Your lack of Modern OpenCL inclusion is the issue. This needs sorting.

I may have read that one potential blocker of upgrading OpenCL may be the lack of interest in it from multiple vendors outside of AMD and Intel.

Nvidia would rather promote their CUDA technology and Apple doesn’t really care that much, even AMD is looking to get full support of Nvidia’s technology on their cards (though whether it will be at OpenCL’s expense is disputed).

The future of OpenCL seems to be either bright, cloudy, or even dead depending on which source you go to, the only certainty is that CUDA is not going anywhere.

Hahaha, Course Nvidia are on the kill OpenCL bandwagon, A) they have a closed compute platform called CUDA and b) Their Dick Heads.

Nobody Cares what Apple think or do anymore anyway, If you buy an Apple Computer or Laptop your just a Wanna be Cool Kidd with Shite for brains anyway, Even if you explain These Machines are Shit, Those type of Apple customer will go, " But it’s so Pretty" Hence the Wanna be cool kidds statement, Anyone that pays the price of Apple kitt is just Stupid or a Beatnik wanna be cool Kidd.

Like AMD, AND Intel arnt enough???, Hello thats most of the PC space and Most of the Console space. Then you have all the other devices out there that support opencl, TV boxes, Mini PC’s, Mobiles, DSP’s, etc etc etc. OpenCL has a far wider reach on devices than Nvidia and Cuda could ever get. Id say better chance of Cuda going down the drain than OpenCL.

At the end of the day WHY not update opencl, It’s already in Cycles and OpenCL 2.0 is already supported by 80% of AMD’s and Intels cards.

The console space doesn’t even make use of GPU compute technologies and the portion of PC users who do make use of such technology is quite small.

On the rest, please try to avoid mixing rants and fanboyism into your posts if you intend to have a productive thread.

Oi, Bullet has the ability to use Opencl for physics, and physics are far better suited to gpu than cpu. Right now cpu threads are being used unnecessarily to do physics in realtime. Ive spoken to many people that see bullet and opencl as the only real alternative to nvidia’s physics platform but again of course would run on all platforms.

Opencl is a Open compute platform and is used more than you would think it is, Many PC users will use opencl and never even realise it.

And Oi,Oi,Oi. Im no Fan boy Dick head, So you need to take that back. YOUR the fan boy with your constant dev worship yet you seem to have never even learnt to code. Thats the definition of Fan boy. And dont be condescending to me like that, Your not a Dev or Mod on here even if you pretend to your self you are.

On that last part, what do you call this then?

Nobody Cares what Apple think or do anymore anyway, If you buy an Apple Computer or Laptop your just a Wanna be Cool Kidd with beep for brains anyway, Even if you explain These Machines are beep, Those type of Apple customer will go, " But it’s so Pretty" Hence the Wanna be cool kidds statement, Anyone that pays the price of Apple kitt is just Stupid or a Beatnik wanna be cool Kidd.

Before calling others out on such claims, it would be wise to clean your own house first.

Also, did you know Ton uses a Mac, I guess it’s time to abandon Blender and join Tiles and co. on their Bforartists fork (How can you trust the BF if it is run by a beatnik with crap for brains?).

Anyway, this thread should be locked (any chance for productivity has gone out the window).

Its not as simple as just flipping a switch to opencl 2.0… the only difference between OCL1.3 and OCL2 is that OCL2 has more inbuilt functions to help coding. its not going ot magically make it faster / better.

Second, yes, you are a fanboy 3DLuver, with your rant it definitely makes you sound like a fanboy, Ace Dragon is getting better (though still clickbait titles come up here and there), but saying stuff like “And Oi,Oi,Oi. Im no Fan boy Dick head” isnt really good back and forth with discussions. fan boy is not a offensive term, a dickhead is.

“Your not a Dev or Mod on here even if you pretend to your self you are.” – 3DLuver, are you are Dev?

OK Ill take Bishops Bait,

I know switching to Opencl 2.0 isnt straight forward. Thats why i tried to make clear the most important thing to get started with is support for Shared Virtual Memory, A key part of 2.0 that alloows CPU and GPU to address the same space at the same time. This for me ties into playing with something else ive been working on with using PCIe Solid state drives as Virtual memory address space and page files for rendering. I bought a 600P 128GB M.2-2280 PCI-e 3.0 x 4 NVMe 3D NAND Solid State Drive to do some code testing.

As Blenders Virtual memory system is totally shite (on windows anyway, Dont know about Linux as dont use it) and how to setup basically custom swap file drives or scratch disk’s rather than the current OS swap file system, Idea being even now with USB 3.0 you can buy thumb drives of 64gb for £20 or near that allow faster read write and IO than most old drives it certainly mixed with the ability of Shared Virtual Memory with Opencl 2.0 should be a big benefit. Idea ultimately is to be able to set within blender to use a custom swap file and virtual memory system that can be allocated to any drive or virtual drive the user wants (VHD setup within Blender files could also be very handy). So ive been playing with that.

I Build my own Blender branch’s, Im not part of your dev team as to be honest i think the Blender current dev process is broken, Code updates and patchs sit on dev page for months, by the time anything gets looked at the code has to be completely rewritten as master has changes so much. Bit of a joke really, If Blender foundation want to give paid work to the next dev they take on i say it should be for someone that evaluates code updates to decide if suitable for master or not so to speed up updates and features.

Reason i bought the 600P 128GB M.2-2280 PCI-e 3.0 x 4 NVMe 3D NAND Solid State Drive was also to do with my Fire Pro W9100 16GB GDDR5 card with how i can build a windows driver to allow SDI/Direct GMA between my card and the 600P 128GB M.2-2280 PCI-e 3.0 x 4 NVMe 3D NAND Solid State Drive.

Trying to get simular advantages from the new Radeon Pro cards that have built in SSD memory, but to allow older cards like mine to still get simular advantages mixed with SSD tech.

So YES i AM a Dev, Im Just not a lackey.

Also sorry forgot, OpenCl being a JIT system unlike Cuda with pre compiled binaries theres a lot of room for looking at OSL running on GPU (probably through LLVM) , Cuda being pre compiled has no hope of being able to run OSL on GPU (or if it does ive not heard about, or have the brains to work out how it possibly could). OpenCL 2.0 supported properly has far better advantages for the future than Cuda, And did i point out it’s an Open Platform. Hahahaha.

Hey look if you want ill apologise to Ace, But you say fan boy isnt an offensive term and dick head is. Im English mate, swearing isnt offensive, it’s required. But fanboy is far more offensive in my book.

pity good spelling and grammar isn’t.

Then go ahead and write your OpenCL 2.0 branch. We’re not stopping you.

In honest curiosity, what features besides Shared Virtual Memory are you hoping to use?

Don’t worry about being a fanboy, if AMD gave me $2500 worth of hardware, I’d be a fanboy too. That’s why they gave you that hardware.

The only vendor who have been late to support OpenCL or lack of interest is Nvidia, there’s no other vendors on GPU space. Even when including ARM based system, they all support OpenCL ( even if ofc i dont say they are compute based ) . so… in reality every vendors use OpenCL capable gpu’s.

Apple is an high promoter of OpenCL, in fact, if Apple was not there, im not quite sure that Adobe and video editing softwares will support OpenCL. ( this is mainly the reason why most Apple products ( including Iphone ) support OpenCL, have AMD gpu’s instead of Nvidia ones in product who need a discrete gpu’s. ( And if we goes by the rumors, next Macbook/MacPro could well just use an AMD APU based on Zen or a Zen+AMD GPU’s. But for the moment i let that in the possibility due it is just rumor.)

Lets be honest, the day that openCL2.0 is widely used on some softwares who enter in competition with CUDA, im pretty sure they will release OpenCL2.0 support on Nvidia gpu’s.

I have no confidence that OpenCL 2 on AMD is a real thing that actually works. Pretty much nobody uses OpenCL 2, that means little real-world testing goes into it, but it also means it’s not a very important thing to support properly. Those are signs you should not be among the first to invest into it, even if you don’t believe that AMD will be ditching OpenCL for HCC.

Anyway, if you want to have OpenCL2 stuff in Cycles, start hacking. Nobody else seems to care, not even those paid-for-by-AMD devs.

Apple created OpenCL and then left it for their own API (Metal). OpenCL support on Apple devices is terrible. There’s no support for OpenCL on iOS, either.

According to this German website, the new quadros to be released in march will support OpenCL 2.0:

OpenCL 2.0 is actually mentioned in the release notes for the Quadro drivers Nvidia released yesterday:

A piece I missed out on…

Like AMD, AND Intel arnt enough???, Hello thats most of the PC space and Most of the Console space. Then you have all the other devices out there that support opencl, TV boxes, Mini PC’s, Mobiles, DSP’s, etc etc etc.

Driver quality on mobile devices is much worse than on PC, even when it’s OpenGL (i.e. the most important API). I refuse to believe you could seriously use OpenCL on there. Nobody does use it, as far as I’m aware.

OpenCL has a far wider reach on devices than Nvidia and Cuda could ever get. Id say better chance of Cuda going down the drain than OpenCL.

CUDA owns the market. Also, nobody cares about OpenCL running on Phones, Smart TVs and IOT toasters. People buy the hardware for the software, not the other way around.

If there was any real sign that CUDA was going under, you could react to that and migrate to whatever the next thing is. Betting on the off-chance that OpenCL is taking off now, that’s not going to pay off big even if you win.

That’s not to say you shouldn’t do it, if you love programming GPUs for some odd reason, by all means go for it.

That’s interesting to hear. It could be that the reason OpenCL2 was never supported is that they couldn’t make the Shared Virtual Memory feature work on the hardware. The GP100 is the only chip that has support for the CUDA equivalent of this feature, this new Quadro is using it.

It’s also mentioned in the desktop drivers ( http://us.download.nvidia.com/Windows/378.66/378.66-win10-win8-win7-desktop-release-notes.pdf )

Perfect, i have miss it ( well driver is out yesterday)…

Fantastic, you have experience with SVM, have you got any code for cycles that you can contribute back?

As Blenders Virtual memory system is totally shite (on windows anyway, Dont know about Linux as dont use it) and how to setup basically custom swap file drives or scratch disk’s rather than the current OS swap file system, Idea being even now with USB 3.0 you can buy thumb drives of 64gb for £20 or near that allow faster read write and IO than most old drives it certainly mixed with the ability of Shared Virtual Memory with Opencl 2.0 should be a big benefit. Idea ultimately is to be able to set within blender to use a custom swap file and virtual memory system that can be allocated to any drive or virtual drive the user wants (VHD setup within Blender files could also be very handy). So ive been playing with that.

Swap files are managed by the OS iirc? seeing as you can change how much virtual memory you have in the OS? blender doesnt really manage that thing it offloads that to the os.

Running of usb3 though, probably would have a huge performance hit, i can understand pciessds, but usbs?

I Build my own Blender branch’s,

Great, can you link your github / git? i woudl love to check it out

Im not part of your dev team as to be honest i think the Blender current dev process is broken, Code updates and patchs sit on dev page for months, by the time anything gets looked at the code has to be completely rewritten as master has changes so much.

Have you submitted a patch before? every time i have, it usually has code reviews within a few days and patched into cycles within a week or two. the cycles team are really trying to make an effort not to have dead code sit around.

Bit of a joke really, If Blender foundation want to give paid work to the next dev they take on i say it should be for someone that evaluates code updates to decide if suitable for master or not so to speed up updates and features.

All paid developers have a minimum time spent on bug reports / patch reviews.

Reason i bought the 600P 128GB M.2-2280 PCI-e 3.0 x 4 NVMe 3D NAND Solid State Drive was also to do with my Fire Pro W9100 16GB GDDR5 card with how i can build a windows driver to allow SDI/Direct GMA between my card and the 600P 128GB M.2-2280 PCI-e 3.0 x 4 NVMe 3D NAND Solid State Drive.

Thats nice.

Trying to get simular advantages from the new Radeon Pro cards that have built in SSD memory, but to allow older cards like mine to still get simular advantages mixed with SSD tech.

well fantastic, dont expect the developers to account for your needs though, if you can produce a patch i am sure the cycles team woudl be very receptive to reviewing it.

So YES i AM a Dev, Im Just not a lackey.

so writing code and releasing it for free makes me a lackey?

Also sorry forgot, OpenCl being a JIT system unlike Cuda with pre compiled binaries theres a lot of room for looking at OSL running on GPU (probably through LLVM) , Cuda being pre compiled has no hope of being able to run OSL on GPU (or if it does ive not heard about, or have the brains to work out how it possibly could). OpenCL 2.0 supported properly has far better advantages for the future than Cuda, And did i point out it’s an Open Platform. Hahahaha.

this paragraph is jumping all over the place, not sure if you are complaining that CUDA isnt a JIT system (it can be, you can enable dynamic compilation in the debug menu), or whether cuda isnt open. not sure how to respond…

Hey look if you want ill apologise to Ace, But you say fan boy isnt an offensive term and dick head is. Im English mate, swearing isnt offensive, it’s required. But fanboy is far more offensive in my book.

I’m Australian mate, swearing isnt offensive but it sets the tone of the conversation.

Funny how you talk bad about people. Notice something? Maybe think about how you talk about others and how this reflects on you.