LLVM: lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp File Reference (original) (raw)
Analyzes if a function potentially memory bound and if a kernel kernel may benefit from limiting number of waves to reduce cache thrashing. More...
Go to the source code of this file.
| Variables |
|
| static cl::opt< unsigned > |
MemBoundThresh ("amdgpu-membound-threshold", cl::init(50), cl::Hidden, cl::desc("Function mem bound threshold in %")) |
| static cl::opt< unsigned > |
LimitWaveThresh ("amdgpu-limit-wave-threshold", cl::init(50), cl::Hidden, cl::desc("Kernel limit wave threshold in %")) |
| static cl::opt< unsigned > |
IAWeight ("amdgpu-indirect-access-weight", cl::init(1000), cl::Hidden, cl::desc("Indirect access memory instruction weight")) |
| static cl::opt< unsigned > |
LSWeight ("amdgpu-large-stride-weight", cl::init(1000), cl::Hidden, cl::desc("Large stride memory access weight")) |
| static cl::opt< unsigned > |
LargeStrideThresh ("amdgpu-large-stride-threshold", cl::init(64), cl::Hidden, cl::desc("Large stride memory access threshold")) |
Analyzes if a function potentially memory bound and if a kernel kernel may benefit from limiting number of waves to reduce cache thrashing.
Definition in file AMDGPUPerfHintAnalysis.cpp.
◆ DEBUG_TYPE
#define DEBUG_TYPE "amdgpu-perf-hint"
◆ INITIALIZE_PASS()
| INITIALIZE_PASS |
( |
AMDGPUPerfHintAnalysisLegacy |
, |
| DEBUG_TYPE |
, |
|
|
| "Analysis if a function is memory bound" |
, |
|
|
| true |
, |
|
|
| true |
) |
|
|
◆ STATISTIC() [1/2]
| STATISTIC |
( |
NumLimitWave |
, |
| "Number of functions marked as needing limit wave" |
) |
|
|
◆ STATISTIC() [2/2]
| STATISTIC |
( |
NumMemBound |
, |
| "Number of functions marked as memory bound" |
) |
|
|
◆ IAWeight
| cl::opt< unsigned > IAWeight("amdgpu-indirect-access-weight", cl::init(1000), cl::Hidden, cl::desc("Indirect access memory instruction weight")) ( "amdgpu-indirect-access-weight" , cl::init(1000) , cl::Hidden , cl::desc("Indirect access memory instruction weight") ) |
static |
◆ LargeStrideThresh
| cl::opt< unsigned > LargeStrideThresh("amdgpu-large-stride-threshold", cl::init(64), cl::Hidden, cl::desc("Large stride memory access threshold")) ( "amdgpu-large-stride-threshold" , cl::init(64) , cl::Hidden , cl::desc("Large stride memory access threshold") ) |
static |
◆ LimitWaveThresh
| cl::opt< unsigned > LimitWaveThresh("amdgpu-limit-wave-threshold", cl::init(50), cl::Hidden, cl::desc("Kernel limit wave threshold in %")) ( "amdgpu-limit-wave-threshold" , cl::init(50) , cl::Hidden , cl::desc("Kernel limit wave threshold in %") ) |
static |
◆ LSWeight
| cl::opt< unsigned > LSWeight("amdgpu-large-stride-weight", cl::init(1000), cl::Hidden, cl::desc("Large stride memory access weight")) ( "amdgpu-large-stride-weight" , cl::init(1000) , cl::Hidden , cl::desc("Large stride memory access weight") ) |
static |
◆ MemBoundThresh
| cl::opt< unsigned > MemBoundThresh("amdgpu-membound-threshold", cl::init(50), cl::Hidden, cl::desc("Function mem bound threshold in %")) ( "amdgpu-membound-threshold" , cl::init(50) , cl::Hidden , cl::desc("Function mem bound threshold in %") ) |
static |