4 ms·
> Correction: Nobody will be able to use the AMD hardware (outside of computer graphics) because everybody has been locked-in with CUDA on Nvidia. NVIDA open-s
by fluffything 6y ago
> Correction: Nobody will be able to use the AMD hardware (outside of computer graphics) because everybody has been locked-in with CUDA on Nvidia.
NVIDA open-sourced their CUDA implementation to the LLVM project 5 years ago, which is why clang can compile CUDA today, and why Intel and PGI have clang forks compiling CUDA to multi-threaded and vectorized x86-64 using OpenMP.
That you can't compile CUDA to AMD GPUs isn't NVIDIA's fault, it's AMD, for deciding to pursue OpenCL first, then HSA, and now HIP.
- adev_ 6y ago> Do you work for AMD I do not. And I use NVidia hardware regularly for GPGPU. But I hate fanboyism. > NVIDA open-source their CUDA implementation to the LLVM project 5 years ago Correction: Google developped an internal CUDA implementation for their own need based on LLVM that Nvidia barely supported it for their own need afterwards. Nothing is "stable" nor "branded" in this work.... Consequently, 99% of public Open Source CUDA-using software still compile ONLY with the CUDA proprietary toolchain ONLY on NVidia hardware. And this is not going to change anything soon. > one from PGI, that compile CUDA to multi-threaded x86-64 code using OpenMP. The PGI compiler is proprietary and now property of NVidia. It was previously properitary and independant but mainly used for its GPGPU capability through OpenACC. OpenACC backend targets directly the nvidiaptx (proprietary) format. Nothing related with CUDA. > Intel being the main vendor pushing for a parallel STL in the C++ standard That's wrong again. Most of the work done for the parallel STL and by the C++ committee originate from work from HPX and the STELLAR Group (http://stellar-group.org/libraries/hpx/ http://stellar-group.org/libraries/hpx/). They are pretty smart people and deserve at least respect and parent-ship for what they have done. More information from Hermut Kaiser (Very Nice Guy btw) here (https://www.youtube.com/watch?v=6Z3_qaFYF84 https://www.youtube.com/watch?v=6Z3_qaFYF84). They have been the precursor of the idea of parallel "algorithms" in the STL and the concept of "Execution policy" you have in C++17 comes from them. To the defense of Intel (and up to my knowledge) they have provided the first OSS implementation for compilers for it.
- adev_ 6y ago> That you can't compile CUDA to AMD GPUs isn't NVIDIA's fault, it's AMD, for deciding to pursue OpenCL first, then HSA, and now HIP. Using a branded & under patent concurrent proprietary technology and copying its API for your own implementation is Maddness that will lead you for sure in front of a court. It seems that even Google understood that the hard way (https://en.wikipedia.org/wiki/Google_v._Oracle_America https://en.wikipedia.org/wiki/Google_v._Oracle_America)
- monocasa 6y agoGoogle v Oracle is still unsettled. Most other legal precedent was that it was fine to clone an API.
- adev_ 6y ago> Most other legal precedent was that it was fine to clone an API. CUDA is more than an API. It is a technology under copyright and very likely patented too. Even the API itself contains multiple reference to "CUDA" in function calls and variable name.
- monocasa 6y agoNone of that protects it from being cloned under previous 9th circuit precedent except maybe patents, but I'm not aware of any patents that'd protect another against CUDA implementation.
- fluffything 6y agoHow come? There is a CUDA C++ and CUDA C toolchains available under a MIT license, large part s of which are contributed by NVIDIA. How can they sue you for using something that they give you with a license that says "we allow you to do whatever you want with it" ?
- Teknoman117 6y agothe MIT license doesn't have an express patent grant. If Nvidia has a patent on some technology used by the open source code, they could sue you for patent infringement if you use it in a way that displeases them. What they can't do is sue you for copyright infringement.
- mambru 6y ago>Intel and PGI have clang forks compiling CUDA to multi-threaded and vectorized x86-64 using OpenMP. Where are these forks?
- pjmlp 6y agoFor Intel, https://software.intel.com/content/www/us/en/develop/tools/oneapi.html https://software.intel.com/content/www/us/en/develop/tools/o...
- fluffything 6y agoFor PGI, all pgi compilers can do this, just pick x86-64 as the target. There are also other forks online (just search for LLVM, CUDA, x86 as keywords), some university groups have their forks on github, where they compile CUDA to x.