24 #ifndef ARM_COMPUTE_CLTUNER_H 25 #define ARM_COMPUTE_CLTUNER_H 33 #include <unordered_map> 94 void add_lws_to_table(
const std::string &kernel_id, cl::NDRange optimal_lws);
125 const std::unordered_map<std::string, cl::NDRange> &
lws_table();
180 std::unordered_map<std::string, CLTuningParams> _tuning_params_table;
181 std::unordered_map<std::string, cl::NDRange> _lws_table;
182 cl::Event _kernel_event;
183 bool _tune_new_kernels;
Basic implementation of the OpenCL tuner interface.
void set_tuner_mode(CLTunerMode mode)
Set OpenCL tuner mode.
void set_tuning_parameters(CLTuningInfo tuning_info)
Setter for tune parameters option.
void set_cl_kernel_event(cl_event kernel_event)
Set the OpenCL kernel event.
const std::unordered_map< std::string, CLTuningParams > & tuning_params_table() const
Give read access to the tuning params table.
void import_tuning_params(const std::unordered_map< std::string, CLTuningParams > &tuning_params_table)
Import tuning parameters table.
void tune_kernel_static(ICLKernel &kernel) override
Tune OpenCL kernel statically.
void tune_kernel_dynamic(ICLKernel &kernel) override
Tune OpenCL kernel dynamically.
void load_from_file(const std::string &filename)
Load the tuning parameters table from file.
const std::unordered_map< std::string, cl::NDRange > & lws_table()
Give read access to the LWS table.
< OpenCL tuner parameters
~CLTuner()=default
Destructor.
Common interface for all the OpenCL kernels.
Copyright (c) 2017-2021 Arm Limited.
CLTuner(bool tune_new_kernels=true, CLTuningInfo tuning_info=CLTuningInfo())
Constructor.
std::function< decltype(clEnqueueNDRangeKernel)> real_clEnqueueNDRangeKernel
clEnqueueNDRangeKernel symbol
bool kernel_event_is_set() const
Is the kernel_event set ?
bool save_to_file(const std::string &filename) const
Save the content of the tuning parameters table to file.
Interface used to tune the local work-group size of OpenCL kernels.
void add_tuning_params(const std::string &kernel_id, CLTuningParams optimal_tuning_params)
Manually add tuning parameters for a kernel.
void set_tune_new_kernels(bool tune_new_kernels)
Setter for tune_new_kernels option.
void import_lws_table(const std::unordered_map< std::string, cl::NDRange > &lws_table)
Import LWS table.
CLTunerMode
< OpenCL tuner modes
Wrapper to configure the Khronos OpenCL C++ header.
Basic interface for tuning the OpenCL kernels.
#define ARM_COMPUTE_DEPRECATED_REL_REPLACE(rel, replace)
bool tune_new_kernels() const
Tune kernels that are not in the tuning parameters table.
void add_lws_to_table(const std::string &kernel_id, cl::NDRange optimal_lws)
Manually add a LWS for a kernel.
CLTunerMode get_tuner_mode() const
Get the current OpenCL tuner mode.