AMD finally opens up its Radeon raytracing analyzer “RRA” source code
phoronix.com
phoronix.com
For the last two months, huge amount of ROCm packages have been landing on Debian. I guess we'll see some improvements.
It's imho really stupid for AMD to do this given their situation in the market. At least it's fairly easy to bypass.
CUDA will run at least run on anything that says “Nvidia” on it from the past five years or longer.
The unified being the key idea here. All NVIDIA GPUs support Cuda since the G80/G84/G86 generation which arrived at the end of 2006, beginning of 2007.
It’s true of course that the older GPUs don’t support newer versions of CUDA, but the idea that CUDA is unified has been central to the project since the beginning. It also has cost a lot of money and effort for NVIDIA to put CUDA support in every GPU, even when it wasn’t extensively used. Took about 10 years of investment before it really started to pay off.
export HSA_OVERRIDE_GFX_VERSION=10.3.0
That will make your gfx1031 card pretend to be gfx1030, which is a supported architecture. Those processors were given different numbers in case an incompatibility was found, but I haven't heard of any thus far.Obviously, that's not as good as official support, but I hope it helps.
https://github.com/RadeonOpenCompute/ROCm/issues/1714#issuec...
I understand your feelings though...
AMD drivers on Linux are good, unless you want to do anything outside gaming.
I get that nvidia has a lot more resources and I'm trying not to support their closed ecosystem but AMD's non-support isn't exactly making it easy. Has anyone here had any experience with intel's new arc line?
The driver and compiler work, but the math libraries were never updated to add gfx1010, aside from rocBLAS and rocSOLVER. The official binaries don't contain machine code for your architecture, aside from those two.
I would suggest building ROCm with Spack if you are using a gfx101x processor. I've been working to make sure that all of ROCm can be built for different targets. e.g.
spack install --verbose --test root rocblas amdgpu_target=gfx1010
That will build rocBLAS and run a subset of the test suite. The RX 5700 hardware is not tested by ROCm QA, so running the test suite is usually a good idea.I have an RX 5700 XT available, which is also gfx1010, so if you encounter any problems and need some guidance, feel free to contact me. My email is in my profile.
That's also why they struggle to support new consumer hardware, why they led people on about ROCm on 5000 series until 6000 series was around the corner (this move killed my interest in taking ROCm seriously for the near future) and why they dropped support for the rx580 when it was the only consumer GPU that was still available with ROCm.
They're going to have to fundamentally redesign ROCm's build process to come anywhere near CUDA's level of support.
Pretty much every other GPU targeted language either does a runtime compilation from source or IR.
This has been a known problem+solution for ages and their approach to ROCm is flummoxing.
With ROCm on 5000 series they promised status updates several times which never came and the eventual unofficial support came after 6000 series was out. Then with the Rx580 support, they claimed that while it was unsupported it should still work and several of their developers claimed to be looking into the matter. I recall other similar incidents regarding their other smaller projects under GPUOpen.
So overall it always seemed like they weren't really communicating properly internally, thus all of their projects seem somewhat disconnected from each other, leading to odd decisions like this one.
So not only does it mean that you have to choose which hardware you want to support at any point in time but you have to maintain your codebase and release new binaries every time AMD releases a new GPU.
And it gets even more complicated because even intra-generation compatibility isn’t granted since differ GPUs from the same generation can have slight variances in them that essentially requires you to target them specifically.
On the other hand CUDA binaries that date back to the days of Tesla and Fermi can still run on current hardware with no issues.
The architecture behind ROCm does not make any sense outside of custom implementations for supercomputers and bespoke hyperscaler size deployments.
Also, AMD should finally support ROCm under Windows. Currently, the only application known by me that uses ROCm under Windows is Blender, and they use a beta version of ROCm from AMD with Windows support for building the respective Blender releases that is not available publicly.
Like this entire directory: https://github.com/GPUOpen-Tools/radeon_raytracing_analyzer/...
Looking at the size of the blobs, though, I'm not entirely sure why you're claiming "so much" of the functionality is in those blobs. Most of them you could probably pretty trivially disassmeble & understand, especially given all the inputs & outputs are not obfuscated. And the actual function code of many of them look to be relatively small.
Also: the license of the repository is MIT license, so you are free to reverse-engineer these shaders and port them to a high-level language of your choice.
Well, this raytracing instrumentation code is not cleanely compilable out from mesa code, it is still requiring some patches.