Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

>For those unaware of how opencl works: an API is provided by the standard, to which software can be written by people - even those without signed NDAs

And no one has made it work as well as CUDA - developers that want performance will choose CUDA. If OpenCL worked as well people would choose it, but it simply doesn't.

>I seriously doubt they'd give it much thought at all.

Having talked to people at both companies about exactly this, they have put serious thought into it - it amounts to powering their multi-billion dollar cloud AI infrastructure. The alternatives are simply so bad that they choose CUDA/NVidia stuff, as do their clients. Watching them (and AWS and MS) choose NVidia for their cloud offerings is not because all are stupid of cannot make new APIs if needed - they choose it because it works.

>Surely NVIDIA would never sandbag opencl...

So fix it. There's enough people that can and do reverse engineer such things that one would have likely found such conspiracies. Or publish the proof. Reverse engineering is not that hard that if this mythical problem existed that you could not find it and prove it and write it up, or even fix it. There's enough companies besides NVidia that could fix OpenCL, or make a better API for NVidia and sell that, yet neither of those have happened. If you really believe it is possible, you are sitting on a huge opportunity.

Or, alternatively, NVidia has made really compelling hardware and the best software API so far, and people use that because it works.

Open source fails at many real world tasks. Choose the tool best suited to solve the problem you want solved, regardless of religious beliefs.



Sorry but this part...

> Choose the tool best suited to solve the problem you want solved, *regardless of religious beliefs*.

...is nonsense. Open source isn't about "religion", is about actually being able to do something like...

> So fix it.

...without needing to do stuff like...

> do reverse engineer such things

...which is a pointless waste of time regardless of how "not that hard" it might be (which is certainly not easy and certainly much easier to have the source code around).

This association of open source / free software with religion doesn't have any place here, people didn't come up with open source / free software because of some mystical experience with otherworldly entities, they came up with it because they were faced with actual practical issues.


OP complains people use CUDA instead of a non-existent open source solution.

That's religion.

And a significant amount of open source solutions are the result of reverse engineering. It's a perfectly reasonable and time tested method to replace proprietary solutions.

> they came up with it because they were faced with actual practical issues

People use CUDA for actual practical issues. If someone makes a cross platform open source solution that solves those issues people will try it.

So far it has not been done.


First of all, i replied to the generalization "Open source fails at many real world tasks. Choose the tool best suited to solve the problem you want solved, regardless of religious beliefs" not just about CUDA. Open source might fail at tasks but it isn't pushed or chosen because of religion. It has nothing to do with religion. In fact...

> OP complains people use CUDA instead of a non-existent open source solution. That's religion.

...that isn't religion either. The person you replied to complains because CUDA not only is closed source but also is vendor locked to Nvidia both of which have a ton of issues inherent to being vendor locked and closed source software, largely around control - the complaint comes from these issues. These issues for many can either be showstoppers or just make them look and wish and push for alternatives and they come from practical concerns, not out of religious issues.

> And a significant amount of open source solutions are the result of reverse engineering. It's a perfectly reasonable and time tested method to replace proprietary solutions.

It is not reasonable at all, it is the last-ditch effort when nothing else seems to do, can be a tremendous waste of time and telling people "So fix it" when doing that would require reverse engineering is practically the same as telling them to shut up and IMO can't even be taken seriously as anything else than that.

The proper way to fix something is to have access to the source code.

And again to be clear:

> People use CUDA for actual practical issues. If someone makes a cross platform open source solution that solves those issues people will try it.

The "actual practical issues" i mentioned have nothing to do with CUDA or any issues they might use with CUDA or any other closed source (or not) technology. The "actual practical issues" i mentioned are about the issues inherent to closed source technologies in general - like fixing any potential issues one might have and being under the control of the vendor of those technologies.

These are all widely known and talked about issues, it might be a good idea to not dismiss them.


> they choose it because it works

MS DirectCompute also works. Yet last time I checked, MS Azure didn’t support DirectCompute with their fast GPUs. These virtual machines come with TCC (Tesla Compute Cluster) driver which only supports CUDA, DirectCompute requires a WDM (Windows Driver Model) driver. https://social.msdn.microsoft.com/forums/en-US/2c1784a3-5e09...


You can flip the model from TCC to WDDM via nvidia-smi.

But AFAIK, C++ AMP is deprecated and going away.

https://docs.microsoft.com/en-us/cpp/parallel/amp/cpp-amp-ov...

> C++ AMP headers are deprecated, starting with Visual Studio 2022 version 17.0. Including any AMP headers will generate build errors. Define _SILENCE_AMP_DEPRECATION_WARNINGS before including any AMP headers to silence the warnings.

So please don't rely on DirectCompute. It's firmly in legacy territory. Microsoft didn't invest the effort necessary to make it thrive.


> flip the model from TCC to WDDM via nvidia-smi

I’m not sure that’s legal. I think NV wants extra money, details there https://www.nvidia.com/content/dam/en-zz/Solutions/design-vi...

> C++ AMP is deprecated and going away.

Indeed, but I never used that thing.

> don't rely on DirectCompute

DirectCompute is a low-level tech, a subset of D3D11 and 12. It’s not deprecated, used by lots of software, most notably videogames. For instance, in UE5 they’re even rasterizing triangles with compute shaders, that’s DirectCompute technology.

Some things are worse than CUDA. Different programming language HLSL, manually managed GPU buffers, compatibility issues related to FP64 math support.

Some things are better than CUDA. No need to install huge third-party libraries, integrated with other GPU-related things (D2D, DirectWrite, desktop duplication, media foundation). And vendor agnostic, works on AMD and Intel too.


> I’m not sure that’s legal. I think NV wants extra money, details there https://www.nvidia.com/content/dam/en-zz/Solutions/design-vi...

Use: nvidia-smi -g {GPU_ID} -dm 0

Cloud providers do pay for an extensive vGPU license, don't worry about that part.

> DirectCompute is a low-level tech, a subset of D3D11 and 12.

D3D11. The compute subset of D3D12 is named D3D12 and directly got rolled into that. Also, you have CLon12 today which does support SPIR-V.


> Use: nvidia-smi -g {GPU_ID} -dm 0

I think I tried that a year ago, and it didn’t work. Documentation agrees, it says “GRID drivers redistributed by Azure do not work on non-NV series VMs like NCv2, NCv3” https://docs.microsoft.com/en-us/azure/virtual-machines/wind... Microsoft support told me the same. I wanted NCv3 because on paper, V100 GPU is good at FP64 arithmetic which we use a lot in our compute shaders.

> The compute subset of D3D12 is named D3D12

Interesting, didn’t know about the rebranding.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: