|
|
|
|
|
by dogma1138
1114 days ago
|
|
It’s a must, published source code or not it doesn’t help. First there is no forward compatibility guarantee for compiling and based on current history it always breaks. Secondly even if the code is available a design that breaks software on other users machine is stupid and anti user. Plenty of projects could import libraries and then themselves be upstream dependencies for other projects, many of which may not be supported. CUDA is king because people can and still do run 15 year old compiles CUDA code on a daily basis and they know that what they produced today is guaranteed to work on all current and future hardware. With ROCm you have no guarantee that it would work on even the hardware from the same generation and you pretty much have a guarantee that the next update will break your stuff. This was a problem with all AMD compilers for GPGPU and ROCm should’ve tried to solve it from day 1 but it still adopted a poor design and that has nothing to do with how many people are working on it. |
|
Most things work like this. You can't natively run ARM programs on x86 or POWER or vice versa, but in most languages you can recompile the code. If you have libraries then you recompile the libraries. All it takes is distributing the code instead of just a binary. Not distributing the code is stupid and anti-user.
> This was a problem with all AMD compilers for GPGPU and ROCm should’ve tried to solve it from day 1 but it still adopted a poor design and that has nothing to do with how many people are working on it.
It isn't even a design decision. Compilers will commonly emit machine code that checks for hardware features like AVX and branch to different instructions based on whether the machine it's running on supports that. That feature can be added to a compiler at any time.
The compiler is open source, isn't it? You could add it yourself, absent any resource constraints.