P4 to Git Change 1136853 by yaxunl@yaxunl_stg_win50 on 2015/04/01 19:36:09
ECR #304775 - Implement profile driven wave limiter Part 2/2: OCL changes. Profile driven wave limiter measures kernel execution time in real time and adaptively limits the number of waves per SH. This is to mitigate cache thrashing issues. Affected files ... ... //depot/stg/opencl/drivers/opencl/compiler/llvm32/include/llvm/Transforms/IPO/AMDKernelPerfHint.h#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm32/lib/Target/AMDIL/AMDILKernelManager.cpp#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm32/lib/Transforms/IPO/AMDKernelPerfHint.cpp#2 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#244 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#281 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.hpp#108 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuwavelimiter.cpp#1 add ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuwavelimiter.hpp#1 add ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/include/cal/cal.h#35 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLContext.cpp#71 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLContext.h#44 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#114 edit ... //depot/stg/opencl/drivers/opencl/runtime/platform/command.cpp#68 edit ... //depot/stg/opencl/drivers/opencl/runtime/platform/command.hpp#74 edit ... //depot/stg/opencl/drivers/opencl/runtime/utils/flags.hpp#228 edit
This commit is contained in:
@@ -177,7 +177,27 @@ debug(bool, GPU_FORCE_SINGLE_FP_DENORM, false, \
|
||||
debug(bool, OCL_FORCE_CPU_SVM, false, \
|
||||
"force svm support for CPU") \
|
||||
debug(bool, GPU_ENABLE_HW_DEBUG, false, \
|
||||
"Enable HW DEBUG for GPU")
|
||||
"Enable HW DEBUG for GPU") \
|
||||
release(uint, GPU_WAVES_PER_SIMD, 0, \
|
||||
"Force the number of waves per SIMD (1-10)") \
|
||||
release(bool, GPU_WAVE_LIMIT_ENABLE, false, \
|
||||
"1 = Enable adaptive wave limiter") \
|
||||
release_on_stg(uint, GPU_WAVE_LIMIT_CU_PER_SH, 0, \
|
||||
"Assume the number of CU per SH for wave limiter") \
|
||||
release_on_stg(uint, GPU_WAVE_LIMIT_MAX_WAVE, 10, \
|
||||
"Set maximum waves per SIMD to try for wave limiter") \
|
||||
release_on_stg(uint, GPU_WAVE_LIMIT_WARMUP, 100, \
|
||||
"Set warming up kernel execution count for wave limiter") \
|
||||
release_on_stg(uint, GPU_WAVE_LIMIT_ADAPT, 1, \
|
||||
"Set adapting factor for wave limiter") \
|
||||
release_on_stg(uint, GPU_WAVE_LIMIT_RUN, 40, \
|
||||
"Set running factor for wave limiter") \
|
||||
release_on_stg(uint, GPU_WAVE_LIMIT_ABANDON, 105, \
|
||||
"Set abandon threshold for wave limiter") \
|
||||
release_on_stg(cstring, GPU_WAVE_LIMIT_DUMP, "", \
|
||||
"File path prefix for dumping wave limiter output") \
|
||||
release_on_stg(cstring, GPU_WAVE_LIMIT_TRACE, "", \
|
||||
"File path prefix for tracing wave limiter")
|
||||
|
||||
|
||||
|
||||
@@ -243,6 +263,12 @@ public:
|
||||
#define flagIsDefault(name) \
|
||||
(amd::Flag::cannotSet##name || amd::Flag::isDefault(amd::Flag::k##name))
|
||||
|
||||
#define setIfNotDefault(var, opt, other) \
|
||||
if (!flagIsDefault(opt)) \
|
||||
var = (opt);\
|
||||
else \
|
||||
var = (other);
|
||||
|
||||
// @}
|
||||
|
||||
} // namespace amd
|
||||
|
||||
Reference in New Issue
Block a user