yaxunl marked an inline comment as done.
yaxunl added inline comments.

================
Comment at: clang/lib/Driver/ToolChains/HIP.cpp:116
+  if (getOrCheckAMDGPUCodeObjectVersion(C.getDriver(), Args) >= 4)
+    OffloadKind = OffloadKind + "v4";
   for (const auto &II : Inputs) {
----------------
tra wrote:
> We do not do it for v2/v3. Could you elaborate on what makes v4 special that 
> it needs its own offload kind? 
> 
> Will you need to target different object versions simultaneously?
> If yes, how? AFAICT, the version specified is currently global and applies to 
> all sub-compilations.
> If not, then do we really need to encode the version in the offload target 
> name?
Introducing hipv4 is to differentiate with code object version 2 and 3 which 
are used by HIP applications compiled by older version of clang. ROCm platform 
is required to keep binary backward compatibility, i.e., old HIP applications 
built by ROCm 4.0 should run on ROCm 4.1. The bundle ID has different 
interpretation depending on whether it is version 2/3 or version 4, e.g. 
'gfx906' implies xnack and sramecc off with code object v2/3 but implies xnack 
and sramecc ANY with v4. Since code object version 2/3 uses 'hip', code object 
version 4 needs to be different, therefore it uses 'hipv4'.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D99235/new/

https://reviews.llvm.org/D99235

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to