registers used by
each work-item for
GFX6-GFX9
- "MaxFlatWorkgroupSize" integer Maximum flat
+ "MaxFlatWorkGroupSize" integer Maximum flat
work-group size
supported by the
kernel in work-items.
then additional space must
be added to this value for
the call stack.
- 95:64 4 bytes MaxFlatWorkgroupSize Maximum flat work-group
+ 95:64 4 bytes MaxFlatWorkGroupSize Maximum flat work-group
size supported by the
kernel in work-items.
96 1 bit IsDynamicCallStack Indicates if the generated
struct KernelDescriptor final {
uint32_t GroupSegmentFixedSize;
uint32_t PrivateSegmentFixedSize;
- uint32_t MaxFlatWorkgroupSize;
+ uint32_t MaxFlatWorkGroupSize;
uint64_t IsDynamicCallStack : 1;
uint64_t IsXNACKEnabled : 1;
uint64_t Reserved0 : 30;
constexpr char NumSGPRs[] = "NumSGPRs";
/// \brief Key for Kernel::CodeProps::Metadata::mNumVGPRs.
constexpr char NumVGPRs[] = "NumVGPRs";
-/// \brief Key for Kernel::CodeProps::Metadata::mMaxFlatWorkgroupSize.
-constexpr char MaxFlatWorkgroupSize[] = "MaxFlatWorkgroupSize";
+/// \brief Key for Kernel::CodeProps::Metadata::mMaxFlatWorkGroupSize.
+constexpr char MaxFlatWorkGroupSize[] = "MaxFlatWorkGroupSize";
/// \brief Key for Kernel::CodeProps::Metadata::mIsDynamicCallStack.
constexpr char IsDynamicCallStack[] = "IsDynamicCallStack";
/// \brief Key for Kernel::CodeProps::Metadata::mIsXNACKEnabled.
/// \brief Total number of VGPRs used by a workitem. Optional.
uint16_t mNumVGPRs = 0;
/// \brief Maximum flat work-group size supported by the kernel. Optional.
- uint32_t mMaxFlatWorkgroupSize = 0;
+ uint32_t mMaxFlatWorkGroupSize = 0;
/// \brief True if the generated machine code is using a dynamically sized
/// call stack. Optional.
bool mIsDynamicCallStack = false;
MD.mNumSGPRs, uint16_t(0));
YIO.mapOptional(Kernel::CodeProps::Key::NumVGPRs,
MD.mNumVGPRs, uint16_t(0));
- YIO.mapOptional(Kernel::CodeProps::Key::MaxFlatWorkgroupSize,
- MD.mMaxFlatWorkgroupSize, uint32_t(0));
+ YIO.mapOptional(Kernel::CodeProps::Key::MaxFlatWorkGroupSize,
+ MD.mMaxFlatWorkGroupSize, uint32_t(0));
YIO.mapOptional(Kernel::CodeProps::Key::IsDynamicCallStack,
MD.mIsDynamicCallStack, false);
YIO.mapOptional(Kernel::CodeProps::Key::IsXNACKEnabled,
HSACodeProps.mWavefrontSize = STM.getWavefrontSize();
HSACodeProps.mNumSGPRs = CurrentProgramInfo.NumSGPR;
HSACodeProps.mNumVGPRs = CurrentProgramInfo.NumVGPR;
- HSACodeProps.mMaxFlatWorkgroupSize = MFI.getMaxFlatWorkGroupSize();
+ HSACodeProps.mMaxFlatWorkGroupSize = MFI.getMaxFlatWorkGroupSize();
HSACodeProps.mIsDynamicCallStack = ProgramInfo.DynamicCallStack;
HSACodeProps.mIsXNACKEnabled = STM.isXNACKEnabled();
; HSAMD: Version: [ 1, 0 ]
; HSAMD: Kernels:
; HSAMD: - Name: min_64_max_64
-; HSAMD: MaxFlatWorkgroupSize: 64
+; HSAMD: MaxFlatWorkGroupSize: 64
; HSAMD: - Name: min_64_max_128
-; HSAMD: MaxFlatWorkgroupSize: 128
+; HSAMD: MaxFlatWorkGroupSize: 128
; HSAMD: - Name: min_128_max_128
-; HSAMD: MaxFlatWorkgroupSize: 128
+; HSAMD: MaxFlatWorkGroupSize: 128
; HSAMD: - Name: min_1024_max_2048
-; HSAMD: MaxFlatWorkgroupSize: 2048
+; HSAMD: MaxFlatWorkGroupSize: 2048
; GFX700: NumVGPRs: 4
; GFX800: NumVGPRs: 6
; GFX900: NumVGPRs: 6
-; CHECK: MaxFlatWorkgroupSize: 256
+; CHECK: MaxFlatWorkGroupSize: 256
define amdgpu_kernel void @test(
half addrspace(1)* %r,
half addrspace(1)* %a,
// CHECK: PrivateSegmentFixedSize: 16
// CHECK: KernargSegmentAlign: 16
// CHECK: WavefrontSize: 64
-// CHECK: MaxFlatWorkgroupSize: 256
+// CHECK: MaxFlatWorkGroupSize: 256
.amd_amdgpu_hsa_metadata
Version: [ 1, 0 ]
Printf: [ '1:1:4:%d\n', '2:1:8:%g\n' ]
PrivateSegmentFixedSize: 16
KernargSegmentAlign: 16
WavefrontSize: 64
- MaxFlatWorkgroupSize: 256
+ MaxFlatWorkGroupSize: 256
.end_amd_amdgpu_hsa_metadata