4 ms·
They're fighting on the CUDA-OpenCL-MSL layer. They're not really talking about the higher level Vulkan-OpenGL-Metal stuff. So CUDA and OpenCL are the specs b
by bilbo0s 7y ago
They're fighting on the CUDA-OpenCL-MSL layer.
They're not really talking about the higher level Vulkan-OpenGL-Metal stuff.
So CUDA and OpenCL are the specs being ignored by Apple.
My own opinion, everyone should probably just use OpenCL and contribute to it as necessary, but that's not gonna happen.
- pjmlp 7y agoFirst OpenCL needs to make it to use C++, Fortran, Julia, .NET, Java as easy as CUDA.
- ogre_codes 7y agoAgain, Apple invested huge amounts of money and effort into OpenCL with the previous generation of the Mac Pro and got very little adoption. Suggesting Apple is ignoring OpenCL is simply not true. They made a significant effort to make it work and it just didn't pan out. That Apple hasn't invested in Vulkan is a fair criticism, but Vulkan hasn't exactly been grabbing market share either.
- bilbo0s 7y agoVulkan Shading Language as it stands, is likely a non starter, you're right. That explains the lack of adoption. That said, I wasn't advocating to try and beat that particular dead horse. I was advocating for OpenCL. I understand why the Metal Shading Language is superior, but OpenCL is still very good, and works across platforms to boot. CUDA and MSL are really nice. I just wish both NVidia and Apple would add to OpenCL and let the industry move forward with that standard and the ability to use whatever hardware we wanted. Now all that said, I also understand Apple's hesitancy with OpenCL as well. It's definitely one of those "fool me once, shame on you" kind of things.
- GeekyBear 7y agoApple created OpenCL and donated it to Khronos. The point of the trash can Mac Pro, was to use OpenCL to leverage two mid level GPUs as a cheaper and higher performance alternative to one high end and expensive GPU. Developers never really adopted OpenCL, and the whole idea was dropped.
- pjmlp 7y agoPlus Khronos, as usual, was too C focus while Apple wanted to go into another direction. Note how all proprietary shading languages are actually C++ dialects. Only after loosing to the multiple language CUDA eco-system did Khronos start discussing about supporting C++, and even today it isn't as if OEMs are racing to bring SYCL drivers into the market.
- wlesieutre 7y agoWas their lack of OpenCL adoption on the trashcan Mac Pro really all attributable to OpenCL? Or was it because the best GPU option it ever had was the FirePro D700 from 2014? I guess you could buy a bunch of eGPU enclosures and hook up better GPUs over Thunderbolt (I think those ports are effectively PCIe x4), but regardless of how much effort they may have put in on the software side, they didn't keep up with the hardware. And being a proprietary GPU module in a thermally limited environment, they didn't have 3rd parties keeping up with it for them. Blender (specifically their Cycles rendering engine) was one piece of software that supported OpenCL on the Mac, and AMD put a bunch of work into getting that working as an alternative to CUDA. It's now been disabled on account of Apple deprecating OpenCL. Bummer. https://lists.blender.org/pipermail/bf-committers/2018-December/049695.html https://lists.blender.org/pipermail/bf-committers/2018-Decem...
- ogre_codes 7y ago> Was their lack of OpenCL adoption on the trashcan Mac Pro really all attributable to OpenCL? I'm not sure I follow you here. The trash bin Mac Pro was flawed from day 1 and the fact that it's seen few upgrades (and no significant upgrades) in the 6 years since hasn't helped it a bit. I'm not attributing the failure of the Mac Pro to OpenCL, it flopped all on it's own.
- wlesieutre 7y agoI'm not attributing the failure of the Mac Pro to OpenCL, I'm attributing the failure of OpenCL to the Mac Pro. If they wanted OpenCL to unseat CUDA (or even compete with it) for professional GPU compute users, they needed competitive GPU hardware, and they didn't have it.
- dwaite 7y agoThere was plenty of OpenCL shipping with AMD on other platforms. Apple is not interested in a market competitor to CUDA, only an alternative since they don't ship Nvidia GPUs across their lineup.
- waiseristy 7y agoYou can use Vulkan as a pretty much direct replacement for OpenCL
- bilbo0s 7y agoNo you can't, because Vulkan forbids the kernel execution model. So that's a huge gotcha that a lot of beginners fall into. Only the shader execution model is usable in Vulkan. Both Vulkan Shader Language and OpenCL get you SPIR-V code, but they are not drop in replacements for each other. In practice, you have to use CUDA or OpenCL. CUDA, because everyone uses it. OpenCL because it runs everywhere and you can easily translate all the opensource CUDA into OpenCL without as many gotchas as trying to get to Vulkan Shading Language.
- pjmlp 7y agoOpenCL doesn't run on Android. Google has the poorly documented C99 dialect named Renderscript. Some OEMs do actually ship OpenCL drivers, which can only be safely accessed via a device specific SDK.
- waiseristy 7y agoWhat's so bad with rewriting your kernels for Vulkan compute? This is what I have done up to this point as I refuse to use CUDA