Hello,
I've prepared a patch set [1][2] with the goal of enabling
support for gfx902, gfx909, gfx90c, gfx1012, gfx1031, gfx1032,
gfx1033, gfx1034 and gfx1035. It will require extensive testing,
but I think it may enable Debian libraries like rocrand and
rocsparse to run on nearly all Vega, CDNA 1, CDNA 2, RDNA 1 and
RDNA 2 GPUs.
In the upstream project, the ROCm/HIP runtime requires an exact match between the GFX ISA of the code object and the GFX ISA of the GPU. If an exact match cannot be found, the HIP runtime will abort with hipErrorNoBinaryForGpu. The patches I've provided modify the ROCm/HIP runtime to fall back to loading kernels for any compatible GFX ISAs when an exact match cannot be found.
My patches will probably never be upstreamed as the preference upstream is to push the complexity of determining compatibility into the compiler rather than handling it in the runtime. Additionally, we may find that there are some undocumented incompatibilities between ISAs that limit the effectiveness of this approach. For those reasons, I would consider this patch set very experimental. Nevertheless, I think it's worth considering.
Sincerely,
Cory Bloor
[1]:
https://salsa.debian.org/rocm-team/rocm-hipamd/-/merge_requests/5
[2]:
https://salsa.debian.org/rocm-team/rocr-runtime/-/merge_requests/5