================
@@ -520,6 +520,102 @@ Every processor supports every OS ABI (see 
:ref:`amdgpu-os`) with the following
 
      =========== =============== ============ ===== ================= 
=============== =============== ======================
 
+Generic processors allow execution of a single code objects on any of the 
processors that
+it supports. Such code objects may not perform as well as those for the 
non-generic processors.
+
+Generic processors are only available on code object V6 and above (see 
:ref:`amdgpu-elf-code-object`).
+
+Generic processor code objects are versioned (see 
:ref:`amdgpu-elf-header-e_flags-table-v6-onwards`).
+The version number is used by runtimes to determine if a code object can be 
run on a specific agent.
----------------
t-tye wrote:

This does not really explain how version is used. What about something like:

The version of non-generic code objects is always set to 0.

For a generic code object, adding a new generic member may require the code 
generated for the generic target to be changed so it can continue to execute on 
the previous members as well as on the new member. When this happens the 
generic code object version number is incremented. Each member of the generic 
target has a version when it was introduced. A generic code object can execute 
on a specific member if the version of the code object being loaded is >= the 
version at which the member was introduced.

https://github.com/llvm/llvm-project/pull/76955
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to