5 ms·
The One-API and OpenCL implementations, Intel Graphics Compiler, and Linux driver are all open source. Ponte Vechio support just hasn't been publicly released
by elihu 6y ago
The One-API and OpenCL implementations, Intel Graphics Compiler, and Linux driver are all open source. Ponte Vechio support just hasn't been publicly released yet.
https://github.com/intel/compute-runtime https://github.com/intel/compute-runtime
https://github.com/intel/intel-graphics-compiler https://github.com/intel/intel-graphics-compiler
https://github.com/torvalds/linux/tree/master/drivers/gpu/drm/i915 https://github.com/torvalds/linux/tree/master/drivers/gpu/dr...
- pjmlp 6y agoOne-API focus too much on C++ (SYSCL + Intel own stuff), while OpenCL is all about C. CUDA is polyglot, with very nice graphical debuggers that can even single step shaders. Something that the anti-CUDA keep forgeting.
- dogma1138 6y agoCUDA’s biggest advantage over OpenCL other than not being a camel was its C++ support which is still the main language in use for CUDA in production, I doubt FORTRAN was the reason why CUDA got to where it is, C++ on the other hand had quite a lot to do with it during its initial days when OpenCL was still stuck in OpenGL C-Land. NVIDIA understood also early on the importance of first party libraries and commercial partnerships something Intel also understands which is why OneAPI has wider adoption already than ROCm.
- pjmlp 6y agoCUDA supports much more languages than just C++ and Fortan. .NET, Java, Julia, Python (RAPIDS/cuDF), Haskell don't have a place on OneAPI so far. And yes, going back to C++, the hardware is based on C++11 memory model (which was based on Java/.NET models). So plenty of stuff to catch up, besides "we can do C++".
- dragandj 6y agoHow does CUDA support any of these (.Net, Java, etc?). It's the first time I hear this claim. There are 3rd party wrappers in Java, .Net, etc. that call CUDA's C++ API, and that's all. Equivalet APIs exist for OpenCL too...
- dogma1138 6y agoThere are Java and C# compilers for CUDA such as JCUDA and http://www.altimesh.com/hybridizer-essentials/ http://www.altimesh.com/hybridizer-essentials/ but the CUDA runtime, libraries and the first party compiler only supports C/C++ and FORTRAN, for Python you need to use something like Numba. Most non C++ frameworks and implementations tho would simply use wrappers and bindings. I also am not aware of any high performance lib for CUDA that wasn’t written in C++.
- pjmlp 6y ago"Hybridizer: High-Performance C# on GPUs" https://developer.nvidia.com/blog/hybridizer-csharp/ https://developer.nvidia.com/blog/hybridizer-csharp/ "Simplifying GPU Access: A Polyglot Binding for GPUs with GraalVM" https://developer.nvidia.com/gtc/2020/video/s21269-vid https://developer.nvidia.com/gtc/2020/video/s21269-vid And then you can browse for products on https://www.nvidia.com/content/dam/en-zz/Solutions/Data-Center/tesla-product-literature/gpu-applications-catalog.pdf https://www.nvidia.com/content/dam/en-zz/Solutions/Data-Cent...
- dogma1138 6y agoHybridizer simply creates CUDA C++ code from C# which is then compiled to PTX it also does it for AVX which you can the compile with Intel’s compiler or gcc, it’s not particularly good and you often need to debug the generated CUDA source code yourself, it’s also doesn’t always play well with the CUDA programming model especially its more advanced features. And again it’s a commercial product developed by a 3rd party, whilst someone uses it I wouldn’t even put it as a rounding error when accounting for why CUDA has the market share it has.
- pjmlp 6y ago
- The_rationalist 6y agoin addition, grCuda is a breakthrough that enable interop with much more languages such as Ruby, R, Js, (soon python), etc https://github.com/NVIDIA/grcuda https://github.com/NVIDIA/grcuda
- UncleOxidant 6y agooneAPI support in Julia: https://github.com/JuliaGPU/oneAPI.jl https://github.com/JuliaGPU/oneAPI.jl
- pjmlp 6y agoNice to know, thanks.
- zepmck 6y agoOne-API is not completely open source. Support for Ponte Vecchio will be not released open source for many reasons.