[gcn] Add gfx9-generic and generic-associated gfx*

This patch adds gfx9-generic, completing the gfx*-generic support.
It also adds all gfx* devices that are part of any of the gfx*-generic,
i.e. gfx902, gfx904, gfx909, gfx1031, gfx1032, gfx1033, gfx1034,
gfx1035, gfx1101, gfx1102, gfx1150, gfx1151, gfx1152, and gfx1153.

gcc/ChangeLog:

	* config/gcn/gcn-devices.def (GCN_DEVICE): Add gfx9-generic,
	gfx902, gfx904, gfx909, gfx1031, gfx1032, gfx1033, gfx1034,
	gfx1035, gfx1101, gfx1102, gfx1150, gfx1151, gfx1152, and gfx1153.
	Add a currently unused column linking, a specific ISA to a generic
	one (if it exists).
	* config/gcn/gcn-tables.opt: Regenerate
	* doc/invoke.texi (AMD GCN): Add the the new gfc... and the older
	gfx{10-3,11}-generic to -march= as 'experimental'.
This commit is contained in:
Tobias Burnus 2025-02-07 11:55:08 +01:00
parent fa5544625d
commit b5a29a93ee
3 changed files with 289 additions and 11 deletions

View file

@ -71,6 +71,10 @@
generated by the used llvm-mc assembler.
10 "Architecture Family Name" (string, external)
Used to #define '__GFX<...>__'.
11 "GENERIC NAME" (text, external)
The name of the generic ISA this device is compatible with or "NONE",
where the generic name is the NAME (field 2) of the associated
generic device.
Fields marked "external", above, have values defined elsewhere (HSA, ROCM,
LLVM, ELF, etc.) and must have matching definitions here. Fields marked
@ -86,7 +90,30 @@ GCN_DEVICE(gfx900, GFX900, 0x2c, ISA_GCN5,
/* CU mode */ HSACO_ATTR_UNSUPPORTED,
/* Max ISA VGPRs */ 256,
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX9
/* Architecture Family */ GFX9,
/* Generic Name */ GFX9_GENERIC
)
GCN_DEVICE(gfx902, GFX902, 0x2d, ISA_GCN5,
/* XNACK default */ HSACO_ATTR_OFF,
/* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
/* WAVE64 mode */ HSACO_ATTR_UNSUPPORTED,
/* CU mode */ HSACO_ATTR_UNSUPPORTED,
/* Max ISA VGPRs */ 256,
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX9,
/* Generic Name */ GFX9_GENERIC
)
GCN_DEVICE(gfx904, GFX904, 0x2e, ISA_GCN5,
/* XNACK default */ HSACO_ATTR_OFF,
/* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
/* WAVE64 mode */ HSACO_ATTR_UNSUPPORTED,
/* CU mode */ HSACO_ATTR_UNSUPPORTED,
/* Max ISA VGPRs */ 256,
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX9,
/* Generic Name */ GFX9_GENERIC
)
GCN_DEVICE(gfx906, GFX906, 0x2f, ISA_GCN5,
@ -96,7 +123,8 @@ GCN_DEVICE(gfx906, GFX906, 0x2f, ISA_GCN5,
/* CU mode */ HSACO_ATTR_UNSUPPORTED,
/* Max ISA VGPRs */ 256,
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX9
/* Architecture Family */ GFX9,
/* Generic Name */ GFX9_GENERIC
)
GCN_DEVICE(gfx908, GFX908, 0x30, ISA_CDNA1,
@ -106,7 +134,19 @@ GCN_DEVICE(gfx908, GFX908, 0x30, ISA_CDNA1,
/* CU mode */ HSACO_ATTR_UNSUPPORTED,
/* Max ISA VGPRs */ 256,
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX9
/* Architecture Family */ GFX9,
/* Generic Name */ NONE
)
GCN_DEVICE(gfx909, GFX909, 0x31, ISA_GCN5,
/* XNACK default */ HSACO_ATTR_ANY,
/* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
/* WAVE64 mode */ HSACO_ATTR_UNSUPPORTED,
/* CU mode */ HSACO_ATTR_UNSUPPORTED,
/* Max ISA VGPRs */ 256,
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX9,
/* Generic Name */ GFX9_GENERIC
)
GCN_DEVICE(gfx90a, GFX90A, 0x3f, ISA_CDNA2,
@ -116,7 +156,8 @@ GCN_DEVICE(gfx90a, GFX90A, 0x3f, ISA_CDNA2,
/* CU mode */ HSACO_ATTR_UNSUPPORTED,
/* Max ISA VGPRs */ 512,
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX9
/* Architecture Family */ GFX9,
/* Generic Name */ NONE
)
GCN_DEVICE(gfx90c, GFX90C, 0x32, ISA_GCN5,
@ -126,7 +167,19 @@ GCN_DEVICE(gfx90c, GFX90C, 0x32, ISA_GCN5,
/* CU mode */ HSACO_ATTR_UNSUPPORTED,
/* Max ISA VGPRs */ 256,
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX9
/* Architecture Family */ GFX9,
/* Generic Name */ GFX9_GENERIC
)
GCN_DEVICE(gfx9-generic, GFX9_GENERIC, 0x051, ISA_GCN5,
/* XNACK default */ HSACO_ATTR_ANY,
/* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
/* WAVE64 mode */ HSACO_ATTR_UNSUPPORTED,
/* CU mode */ HSACO_ATTR_UNSUPPORTED,
/* Max ISA VGPRs */ 256,
/* Generic code obj version */ 1,
/* Architecture Family */ GFX9,
/* Generic Name */ NONE
)
/* GCN GFX10.3 (RDNA 2) */
@ -138,7 +191,63 @@ GCN_DEVICE(gfx1030, GFX1030, 0x36, ISA_RDNA2,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 512, /* 512 SIMD32 = 256 wavefrontsize64. */
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX10
/* Architecture Family */ GFX10,
/* Generic Name */ GFX10_3_GENERIC
)
GCN_DEVICE(gfx1031, GFX1031, 0x37, ISA_RDNA2,
/* XNACK default */ HSACO_ATTR_UNSUPPORTED,
/* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
/* WAVE64 mode */ HSACO_ATTR_ON,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 512, /* 512 SIMD32 = 256 wavefrontsize64. */
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX10,
/* Generic Name */ GFX10_3_GENERIC
)
GCN_DEVICE(gfx1032, GFX1032, 0x38, ISA_RDNA2,
/* XNACK default */ HSACO_ATTR_UNSUPPORTED,
/* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
/* WAVE64 mode */ HSACO_ATTR_ON,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 512, /* 512 SIMD32 = 256 wavefrontsize64. */
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX10,
/* Generic Name */ GFX10_3_GENERIC
)
GCN_DEVICE(gfx1033, GFX1033, 0x39, ISA_RDNA2,
/* XNACK default */ HSACO_ATTR_UNSUPPORTED,
/* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
/* WAVE64 mode */ HSACO_ATTR_ON,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 512, /* 512 SIMD32 = 256 wavefrontsize64. */
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX10,
/* Generic Name */ GFX10_3_GENERIC
)
GCN_DEVICE(gfx1034, GFX1034, 0x3e, ISA_RDNA2,
/* XNACK default */ HSACO_ATTR_UNSUPPORTED,
/* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
/* WAVE64 mode */ HSACO_ATTR_ON,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 512, /* 512 SIMD32 = 256 wavefrontsize64. */
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX10,
/* Generic Name */ GFX10_3_GENERIC
)
GCN_DEVICE(gfx1035, GFX1035, 0x3d, ISA_RDNA2,
/* XNACK default */ HSACO_ATTR_UNSUPPORTED,
/* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
/* WAVE64 mode */ HSACO_ATTR_ON,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 512, /* 512 SIMD32 = 256 wavefrontsize64. */
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX10,
/* Generic Name */ GFX10_3_GENERIC
)
GCN_DEVICE(gfx1036, GFX1036, 0x45, ISA_RDNA2,
@ -148,7 +257,8 @@ GCN_DEVICE(gfx1036, GFX1036, 0x45, ISA_RDNA2,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 512, /* 512 SIMD32 = 256 wavefrontsize64. */
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX10
/* Architecture Family */ GFX10,
/* Generic Name */ GFX10_3_GENERIC
)
GCN_DEVICE(gfx10-3-generic, GFX10_3_GENERIC, 0x053, ISA_RDNA2,
@ -158,7 +268,8 @@ GCN_DEVICE(gfx10-3-generic, GFX10_3_GENERIC, 0x053, ISA_RDNA2,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 512, /* 512 SIMD32 = 256 wavefrontsize64. */
/* Generic code obj version */ 1,
/* Architecture Family */ GFX10
/* Architecture Family */ GFX10,
/* Generic Name */ NONE
)
/* GCN GFX11 (RDNA 3) */
@ -170,7 +281,30 @@ GCN_DEVICE(gfx1100, GFX1100, 0x41, ISA_RDNA3,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 1536, /* 1536 SIMD32 = 768 wavefrontsize64. */
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX11
/* Architecture Family */ GFX11,
/* Generic Name */ GFX11_GENERIC
)
GCN_DEVICE(gfx1101, GFX1101, 0x46, ISA_RDNA3,
/* XNACK default */ HSACO_ATTR_UNSUPPORTED,
/* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
/* WAVE64 mode */ HSACO_ATTR_ON,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 1536,
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX11,
/* Generic Name */ GFX11_GENERIC
)
GCN_DEVICE(gfx1102, GFX1102, 0x47, ISA_RDNA3,
/* XNACK default */ HSACO_ATTR_UNSUPPORTED,
/* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
/* WAVE64 mode */ HSACO_ATTR_ON,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 1536,
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX11,
/* Generic Name */ GFX11_GENERIC
)
GCN_DEVICE(gfx1103, GFX1103, 0x44, ISA_RDNA3,
@ -180,7 +314,52 @@ GCN_DEVICE(gfx1103, GFX1103, 0x44, ISA_RDNA3,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 1536,
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX11
/* Architecture Family */ GFX11,
/* Generic Name */ GFX11_GENERIC
)
GCN_DEVICE(gfx1150, GFX1150, 0x43, ISA_RDNA3,
/* XNACK default */ HSACO_ATTR_UNSUPPORTED,
/* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
/* WAVE64 mode */ HSACO_ATTR_ON,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 1536,
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX11,
/* Generic Name */ GFX11_GENERIC
)
GCN_DEVICE(gfx1151, GFX1151, 0x4a, ISA_RDNA3,
/* XNACK default */ HSACO_ATTR_UNSUPPORTED,
/* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
/* WAVE64 mode */ HSACO_ATTR_ON,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 1536,
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX11,
/* Generic Name */ GFX11_GENERIC
)
GCN_DEVICE(gfx1152, GFX1152, 0x55, ISA_RDNA3,
/* XNACK default */ HSACO_ATTR_UNSUPPORTED,
/* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
/* WAVE64 mode */ HSACO_ATTR_ON,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 1536,
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX11,
/* Generic Name */ GFX11_GENERIC
)
GCN_DEVICE(gfx1153, GFX1153, 0x58, ISA_RDNA3,
/* XNACK default */ HSACO_ATTR_UNSUPPORTED,
/* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
/* WAVE64 mode */ HSACO_ATTR_ON,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 1536,
/* Generic code obj version */ 0, /* non-generic */
/* Architecture Family */ GFX11,
/* Generic Name */ GFX11_GENERIC
)
GCN_DEVICE(gfx11-generic, GFX11_GENERIC, 0x054, ISA_RDNA3,
@ -190,7 +369,8 @@ GCN_DEVICE(gfx11-generic, GFX11_GENERIC, 0x054, ISA_RDNA3,
/* CU mode */ HSACO_ATTR_ON,
/* Max ISA VGPRs */ 1536,
/* Generic code obj version */ 1,
/* Architecture Family */ GFX11
/* Architecture Family */ GFX11,
/* Generic Name */ NONE
)
#undef GCN_DEVICE

View file

@ -27,21 +27,48 @@ GCN GPU type to use:
EnumValue
Enum(gpu_type) String(gfx900) Value(PROCESSOR_GFX900)
EnumValue
Enum(gpu_type) String(gfx902) Value(PROCESSOR_GFX902)
EnumValue
Enum(gpu_type) String(gfx904) Value(PROCESSOR_GFX904)
EnumValue
Enum(gpu_type) String(gfx906) Value(PROCESSOR_GFX906)
EnumValue
Enum(gpu_type) String(gfx908) Value(PROCESSOR_GFX908)
EnumValue
Enum(gpu_type) String(gfx909) Value(PROCESSOR_GFX909)
EnumValue
Enum(gpu_type) String(gfx90a) Value(PROCESSOR_GFX90A)
EnumValue
Enum(gpu_type) String(gfx90c) Value(PROCESSOR_GFX90C)
EnumValue
Enum(gpu_type) String(gfx9-generic) Value(PROCESSOR_GFX9_GENERIC)
EnumValue
Enum(gpu_type) String(gfx1030) Value(PROCESSOR_GFX1030)
EnumValue
Enum(gpu_type) String(gfx1031) Value(PROCESSOR_GFX1031)
EnumValue
Enum(gpu_type) String(gfx1032) Value(PROCESSOR_GFX1032)
EnumValue
Enum(gpu_type) String(gfx1033) Value(PROCESSOR_GFX1033)
EnumValue
Enum(gpu_type) String(gfx1034) Value(PROCESSOR_GFX1034)
EnumValue
Enum(gpu_type) String(gfx1035) Value(PROCESSOR_GFX1035)
EnumValue
Enum(gpu_type) String(gfx1036) Value(PROCESSOR_GFX1036)
@ -51,8 +78,26 @@ Enum(gpu_type) String(gfx10-3-generic) Value(PROCESSOR_GFX10_3_GENERIC)
EnumValue
Enum(gpu_type) String(gfx1100) Value(PROCESSOR_GFX1100)
EnumValue
Enum(gpu_type) String(gfx1101) Value(PROCESSOR_GFX1101)
EnumValue
Enum(gpu_type) String(gfx1102) Value(PROCESSOR_GFX1102)
EnumValue
Enum(gpu_type) String(gfx1103) Value(PROCESSOR_GFX1103)
EnumValue
Enum(gpu_type) String(gfx1150) Value(PROCESSOR_GFX1150)
EnumValue
Enum(gpu_type) String(gfx1151) Value(PROCESSOR_GFX1151)
EnumValue
Enum(gpu_type) String(gfx1152) Value(PROCESSOR_GFX1152)
EnumValue
Enum(gpu_type) String(gfx1153) Value(PROCESSOR_GFX1153)
EnumValue
Enum(gpu_type) String(gfx11-generic) Value(PROCESSOR_GFX11_GENERIC)

View file

@ -22289,30 +22289,83 @@ are
@item gfx900
Compile for GCN5 Vega 10 devices (gfx900).
@item gfx902
Compile for GCN5 Vega gfx902 devices. (Experimental)
@item gfx904
Compile for GCN5 Vega gfx904 devices. (Experimental)
@item gfx906
Compile for GCN5 Vega 20 devices (gfx906).
@item gfx908
Compile for CDNA1 Instinct MI100 series devices (gfx908).
@item gfx909
Compile for GCN5 Vega gfx909 devices. (Experimental)
@item gfx90a
Compile for CDNA2 Instinct MI200 series devices (gfx90a).
@item gfx90c
Compile for GCN5 Vega 7 devices (gfx90c).
@item gfx9-generic
Compile generic code for Vega devices, executable on the following subset of
GFX9 devices: gfx900, gfx902, gfx904, gfx906, gfx909 and gfx90c. (Experimental)
@item gfx1030
Compile for RDNA2 gfx1030 devices (GFX10 series).
@item gfx1031
Compile for RDNA2 gfx1031 devices (GFX10 series). (Experimental)
@item gfx1032
Compile for RDNA2 gfx1032 devices (GFX10 series). (Experimental)
@item gfx1033
Compile for RDNA2 gfx1033 devices (GFX10 series). (Experimental)
@item gfx1034
Compile for RDNA2 gfx1034 devices (GFX10 series). (Experimental)
@item gfx1035
Compile for RDNA2 gfx1035 devices (GFX10 series). (Experimental)
@item gfx1036
Compile for RDNA2 gfx1036 devices (GFX10 series).
@item gfx10-3-generic
Compile generic code for GFX10-3 devices, executable on gfx1030,
gfx1031, gfx1032, gfx1033, gfx1034, gfx1035, and gfx1036. (Experimental)
@item gfx1100
Compile for RDNA3 gfx1100 devices (GFX11 series).
@item gfx1101
Compile for RDNA3 gfx1101 devices (GFX11 series). (Experimental)
@item gfx1102
Compile for RDNA3 gfx1102 devices (GFX11 series). (Experimental)
@item gfx1103
Compile for RDNA3 gfx1103 devices (GFX11 series).
@item gfx1150
Compile for RDNA3 gfx1150 devices (GFX11 series). (Experimental)
@item gfx1151
Compile for RDNA3 gfx1151 devices (GFX11 series). (Experimental)
@item gfx1152
Compile for RDNA3 gfx1152 devices (GFX11 series). (Experimental)
@item gfx1153
Compile for RDNA3 gfx1153 devices (GFX11 series). (Experimental)
@item gfx11-generic
Compile generic code for GFX11 devices, executable on gfx1100, gfx1101,
gfx1102, gfx1103, gfx1150, gfx1151, gfx1152, and gfx1153. (Experimental)
@end table
@opindex msram-ecc