2 // Copyright (c) 2019 Intel Corporation
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://www.apache.org/licenses/LICENSE-2.0
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
19 #include "common_kernel_base.h"
21 namespace kernel_selector
23 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
24 // strided_slice_params
25 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
26 struct strided_slice_params : public base_params
28 strided_slice_params() : base_params(KernelType::STRIDED_SLICE) {}
30 std::vector<std::vector<int32_t>> striding_params;
31 std::vector<uint8_t> begin_mask;
32 std::vector<uint8_t> end_mask;
33 std::vector<uint8_t> ellipsis_mask;
34 std::vector<uint8_t> new_axis_mask;
35 std::vector<uint8_t> shrink_axis_mask;
37 virtual ParamsKey GetParamsKey() const
39 return base_params::GetParamsKey();
43 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
44 // strided_slice_optional_params
45 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
46 struct strided_slice_optional_params : optional_params
48 strided_slice_optional_params() : optional_params(KernelType::STRIDED_SLICE) {}
51 class StridedSliceKernelRef : public common_kernel_base
54 StridedSliceKernelRef() : common_kernel_base("strided_slice_ref") {}
55 virtual ~StridedSliceKernelRef() {}
56 virtual JitConstants GetJitConstants(const strided_slice_params& params) const;
57 virtual CommonDispatchData SetDefault(const strided_slice_params& params, const optional_params&) const;
58 virtual KernelsData GetKernelsData(const Params& params, const optional_params& options) const override;
59 virtual ParamsKey GetSupportedKey() const override;