| 112 | } |
| 113 | |
| 114 | void ClCol2ImKernel::configure(const CLCompileContext &compile_context, |
| 115 | ITensorInfo *src, |
| 116 | ITensorInfo *dst, |
| 117 | const Size2D &convolved_dims, |
| 118 | unsigned int num_groups) |
| 119 | { |
| 120 | ARM_COMPUTE_ERROR_ON_NULLPTR(src, dst); |
| 121 | |
| 122 | // Perform validation step |
| 123 | ARM_COMPUTE_ERROR_THROW_ON(validate_arguments(src, dst, convolved_dims, num_groups)); |
| 124 | |
| 125 | _convolved_dims = convolved_dims; |
| 126 | |
| 127 | const DataType data_type = src->data_type(); |
| 128 | |
| 129 | // Create kernel |
| 130 | CLBuildOptions build_opts; |
| 131 | build_opts.add_option("-DDATA_TYPE=" + get_cl_type_from_data_type(data_type)); |
| 132 | build_opts.add_option("-DELEMENT_SIZE=" + support::cpp11::to_string(src->element_size())); |
| 133 | build_opts.add_option("-DWIDTH_INPUT=" + support::cpp11::to_string(src->dimension(0))); |
| 134 | build_opts.add_option("-DWIDTH_OUTPUT=" + support::cpp11::to_string(_convolved_dims.width)); |
| 135 | build_opts.add_option("-DNUM_GROUPS=" + support::cpp11::to_string(num_groups)); |
| 136 | |
| 137 | _kernel = create_kernel(compile_context, "col2im", build_opts.options()); |
| 138 | |
| 139 | // Configure kernel window |
| 140 | auto win_config = validate_and_configure_window(src, dst, _convolved_dims, num_groups); |
| 141 | ARM_COMPUTE_ERROR_THROW_ON(win_config.first); |
| 142 | IClKernel::configure_internal(win_config.second); |
| 143 | |
| 144 | // Set config_id for enabling LWS tuning |
| 145 | _config_id = "col2im_"; |
| 146 | _config_id += lower_string(string_from_data_type(src->data_type())); |
| 147 | _config_id += "_"; |
| 148 | _config_id += support::cpp11::to_string(num_groups); |
| 149 | _config_id += "_"; |
| 150 | _config_id += support::cpp11::to_string(src->dimension(0)); |
| 151 | _config_id += "_"; |
| 152 | _config_id += support::cpp11::to_string(src->dimension(1)); |
| 153 | _config_id += "_"; |
| 154 | _config_id += support::cpp11::to_string(dst->dimension(0)); |
| 155 | _config_id += "_"; |
| 156 | _config_id += support::cpp11::to_string(dst->dimension(1)); |
| 157 | } |
| 158 | |
| 159 | Status ClCol2ImKernel::validate(const ITensorInfo *src, |
| 160 | const ITensorInfo *dst, |
nothing calls this directly
no test coverage detected