diff options
author | SiCong Li <sicong.li@arm.com> | 2023-02-22 17:24:09 +0000 |
---|---|---|
committer | SiCong Li <sicong.li@arm.com> | 2023-03-06 16:19:11 +0000 |
commit | 47f177e679874dc901888973c5fc237b756b38cb (patch) | |
tree | 130386717101d0c2440111cb288faa21df8ab151 /utils | |
parent | adfcacc8e39888a9a62e33c178041642d0a3047a (diff) | |
download | ComputeLibrary-47f177e679874dc901888973c5fc237b756b38cb.tar.gz |
Fix LWS search space used by CLTuner
* Ensure CLTuner uses the real GWS used by run(), instead of the
static GWS (which is usually changed at run time), by caching GWS in
each kernel
Note this is a somewhat inelegant workaround. The real issue stems
from the fact that execution window and scheduler are very much
coupled with our operator run() / run_op() method.
(Please see COMPMID-5934)
* Restrict LWS values to explore within GWS bound for exhaustive mode
* Refactor gws_from_window() to include all the information required
to calculate GWS
* Log lws search space used for tuning
* Fix ClDirectConv2dKernel config id
Resolves COMPMID-5892
Signed-off-by: SiCong Li <sicong.li@arm.com>
Change-Id: I420490d8b94d13ada2e44eb0a12078f883379334
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9193
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'utils')
-rw-r--r-- | utils/TypePrinter.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/utils/TypePrinter.h b/utils/TypePrinter.h index 448f184432..db27ddccde 100644 --- a/utils/TypePrinter.h +++ b/utils/TypePrinter.h @@ -1437,6 +1437,36 @@ inline std::string to_string(ICLTensor *cl_tensor) { return to_string(static_cast<const ICLTensor *>(cl_tensor)); } + +/** Formatted output of the cl::NDRange type. + * + * @param[out] os Output stream. + * @param[in] nd_range cl::NDRange to output. + * + * @return Modified output stream. + */ +inline ::std::ostream &operator<<(::std::ostream &os, const cl::NDRange &nd_range) +{ + os << "{" + << nd_range[0] << "," + << nd_range[1] << "," + << nd_range[2] + << "}"; + return os; +} + +/** Formatted output of the cl::NDRange type + * + * @param[in] nd_Range Type to output. + * + * @return Formatted string. + */ +inline std::string to_string(const cl::NDRange &nd_range) +{ + std::stringstream str; + str << nd_range; + return str.str(); +} #endif /* ARM_COMPUTE_OPENCL_ENABLED */ /** Formatted output of the Dimensions type. |