On 2/10/25 08:50, Tobias Burnus wrote:
Update the GCN install documentation for added ISAs, especially
as no longer all supported ISA are enabled by default. And for
the (ROCm wise: upcoming) generic support.
OK for mainline?
I have no comments on the technical content, but....
@@ -3991,14 +3991,35 @@ This is a synonym for @samp{x86_64-*-solaris2*}.
@heading amdgcn-*-amdhsa
AMD GCN GPU target.
-Instead of GNU Binutils, you will need to install LLVM 15, or later, and copy
+Instead of GNU Binutils, you will need to install LLVM and copy
s/you will need/you need/
@file{bin/llvm-mc} to @file{amdgcn-amdhsa/bin/as},
@file{bin/lld} to @file{amdgcn-amdhsa/bin/ld},
@file{bin/llvm-nm} to @file{amdgcn-amdhsa/bin/nm}, and
@file{bin/llvm-ar} to both @file{bin/amdgcn-amdhsa-ar} and
-@file{bin/amdgcn-amdhsa-ranlib}. Note that LLVM 13.0.1 or LLVM 14 can be used
-by specifying a @code{--with-multilib-list=} that does not list @code{gfx1100}
-and @code{gfx1103}.
+@file{bin/amdgcn-amdhsa-ranlib}.
+
+The required version of LLVM depends on the devices that should be supported.
s/should be supported/you want to support/
+As the list of ISA is long, GCC by default only builds a subset of the
supported
s/ISA/ISAs/
+ISA as multilib; use @code{--with-multilib-list=} to tailor the built
multilibs.
s/ISA as multilib/ISAs as multilibs/
+Note that mixing ISAs in the same binary is not supported and will give a
linker
+error.
s/will give/gives/
+
+By default, multilib support is build for @code{gfx900}, @code{gfx906},
s/is build/is built/
+@code{gfx908}, @code{gfx90a}, @code{gfx90c}, @code{gfx1030}, @code{gfx1036},
+@code{gfx1100} and @code{gfx1103}. The default multilib configuration
+requires LLVM 15 or newer. LLVM 13.0.1 or LLVM 14 can be used by specifying
+a @code{--with-multilib-list=} that does not list any GFX 11 device nor
+@code{gfx1036}. At least LLVM 16 is required for @code{gfx1150} and
+@code{gfx1151}, LLVM 19 for the generic @code{gfx9-generic},
+@code{gfx10-3-generic}, and @code{gfx11-generic} targets and for
+@code{gfx1152}, while LLVM 20 is required for @code{gfx1153}.
+
+The supported ISA architectures are listed in the GCC manual. The generic
+ISA targets @code{gfx9-generic}, @code{gfx10-3-generic}, and
+@code{gfx11-generic} will reduce the number of required multilibs but note
s/will reduce/reduces/
+that @code{gfx9-generic} does not include @code{gfx908} or @code{gfx90a},
+that linking specific ISA code is currently not supported, and that only a
Do you mean "linking specific ISA code with generic code"? (It doesn't
make much sense to me otherwise.)
+future ROCm release (newer than 6.3.2) will be able to execute generic code.
Use Newlib (4.3.0 or newer; 4.4.0 contains some improvements and 4.5.0 fixes
the device console output for GFX10 and GFX11 devices).
-Sandra