[Openmp-commits] [openmp] [OpenMP][AMDGPU] Adapt dynamic callstack sizes to HIP behavior (PR #74080)

Michael Halkenhäuser via Openmp-commits openmp-commits at lists.llvm.org
Fri Dec 1 08:08:11 PST 2023


================
@@ -1872,6 +1873,38 @@ struct AMDGPUDeviceTy : public GenericDeviceTy, AMDGenericDeviceTy {
     else
       return Plugin::error("Unexpected AMDGPU wavefront %d", WavefrontSize);
 
+    // To determine the correct scratch memory size per thread, we need to check
+    // the device architecure generation. According to AOT_OFFLOADARCHS we may
+    // assume that AMDGPU offload archs are prefixed with "gfx" and suffixed
+    // with a two char arch specialization. In-between is the 1-2 char
+    // generation number we want to extract.
+    std::string CUKind{ComputeUnitKind};
----------------
mhalk wrote:

Thanks for the correction!
Also, e.g. "gfx90a" will fail, so I'd go for a slice:
```C++
    StringRef Arch(ComputeUnitKind);
    unsigned GfxGen = 0u;
    if (!llvm::to_integer(Arch.slice(sizeof("gfx") - 1, Arch.size() - 2),
                          GfxGen))
```
In any way, this is significantly easier to read.

https://github.com/llvm/llvm-project/pull/74080


More information about the Openmp-commits mailing list