5 ms·
Isn't Vulkan the open-source specification they're ignoring in favor of their own?
by theossuary 7y ago
Isn't Vulkan the open-source specification they're ignoring in favor of their own?
- GeekyBear 7y agoMetal and Mantle were both proprietary frameworks that were in development at the same time. AMD announced the existence of Mantle at their Developer Summit in November 2013. Apple announced Metal at WWDC the following June and shipped it that fall. By the time AMD donated their Mantle code to Khronos to serve as the basis for Vulkan, Apple had already shipped Metal.
- vetinari 7y ago> By the time AMD donated their Mantle code to Khronos to serve as the basis for Vulkan, Apple had already shipped Metal. Metal v1 was so woefully incomplete, AMD was in no position to ship something similarly limited. Vulkan 1.0 is functionally similar to Metal v2, which shipped several months after Vulkan 1.0.
- ogre_codes 7y agoWhen you say "They" do you mean Nvidia, the market, or Apple?
- deleted 7y ago[deleted]
- bilbo0s 7y agoThey'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...
- 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