[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

ROCm Experimental ISA Compatibility



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


Reply to: