InfiniOps
Operator Library for Accelerators
Loading...
Searching...
No Matches
internal_conv_depthwise2d.h
Go to the documentation of this file.
1#ifndef INFINI_OPS_BASE_INTERNAL_CONV_DEPTHWISE2D_H_
2#define INFINI_OPS_BASE_INTERNAL_CONV_DEPTHWISE2D_H_
3
4#include <optional>
5#include <vector>
6
7#include "operator.h"
8
9namespace infini::ops::internal {
10
11class ConvDepthwise2d : public Operator<ConvDepthwise2d> {
12 public:
13 ConvDepthwise2d(const Tensor input, const Tensor weight,
14 const std::optional<Tensor> bias,
15 const std::vector<int64_t> kernel_size,
16 const std::vector<int64_t> stride,
17 const std::vector<int64_t> padding,
18 const std::vector<int64_t> dilation, Tensor out)
19 : input_shape_{input.shape()},
20 input_strides_{input.strides()},
21 input_type_{input.dtype()},
22 weight_shape_{weight.shape()},
23 weight_strides_{weight.strides()},
24 weight_type_{weight.dtype()},
25 out_shape_{out.shape()},
26 out_strides_{out.strides()},
27 out_type_{out.dtype()},
28 has_bias_{bias.has_value()},
29 bias_shape_{bias ? Tensor::Shape{bias->shape()} : Tensor::Shape{}},
30 bias_strides_{bias ? Tensor::Strides{bias->strides()}
31 : Tensor::Strides{}},
32 bias_type_{bias ? bias->dtype() : DataType::kFloat32},
33 kernel_size_{kernel_size},
34 stride_{stride},
35 padding_{padding},
36 dilation_{dilation},
37 device_index_{out.device().index()} {}
38
39 virtual void operator()(const Tensor input, const Tensor weight,
40 const std::optional<Tensor> bias,
41 const std::vector<int64_t> kernel_size,
42 const std::vector<int64_t> stride,
43 const std::vector<int64_t> padding,
44 const std::vector<int64_t> dilation,
45 Tensor out) const = 0;
46
47 protected:
48 Tensor::Shape input_shape_;
49
50 Tensor::Strides input_strides_;
51
52 DataType input_type_;
53
54 Tensor::Shape weight_shape_;
55
56 Tensor::Strides weight_strides_;
57
58 DataType weight_type_;
59
60 Tensor::Shape out_shape_;
61
62 Tensor::Strides out_strides_;
63
64 DataType out_type_;
65
66 bool has_bias_{false};
67
68 Tensor::Shape bias_shape_;
69
70 Tensor::Strides bias_strides_;
71
72 DataType bias_type_{DataType::kFloat32};
73
74 std::vector<int64_t> kernel_size_{};
75
76 std::vector<int64_t> stride_{};
77
78 std::vector<int64_t> padding_{};
79
80 std::vector<int64_t> dilation_{};
81
83};
84
85} // namespace infini::ops::internal
86
87#endif
Definition generated/include/operator.h:282
Definition internal_conv_depthwise2d.h:11
Tensor::Strides bias_strides_
Definition internal_conv_depthwise2d.h:70
Tensor::Strides out_strides_
Definition internal_conv_depthwise2d.h:62
DataType bias_type_
Definition internal_conv_depthwise2d.h:72
Tensor::Shape out_shape_
Definition internal_conv_depthwise2d.h:60
std::vector< int64_t > dilation_
Definition internal_conv_depthwise2d.h:80
Tensor::Shape bias_shape_
Definition internal_conv_depthwise2d.h:68
std::vector< int64_t > kernel_size_
Definition internal_conv_depthwise2d.h:74
Tensor::Shape weight_shape_
Definition internal_conv_depthwise2d.h:54
Tensor::Strides input_strides_
Definition internal_conv_depthwise2d.h:50
std::vector< int64_t > padding_
Definition internal_conv_depthwise2d.h:78
DataType out_type_
Definition internal_conv_depthwise2d.h:64
Tensor::Shape input_shape_
Definition internal_conv_depthwise2d.h:48
DataType input_type_
Definition internal_conv_depthwise2d.h:52
bool has_bias_
Definition internal_conv_depthwise2d.h:66
ConvDepthwise2d(const Tensor input, const Tensor weight, const std::optional< Tensor > bias, const std::vector< int64_t > kernel_size, const std::vector< int64_t > stride, const std::vector< int64_t > padding, const std::vector< int64_t > dilation, Tensor out)
Definition internal_conv_depthwise2d.h:13
int device_index_
Definition internal_conv_depthwise2d.h:82
std::vector< int64_t > stride_
Definition internal_conv_depthwise2d.h:76
virtual void operator()(const Tensor input, const Tensor weight, const std::optional< Tensor > bias, const std::vector< int64_t > kernel_size, const std::vector< int64_t > stride, const std::vector< int64_t > padding, const std::vector< int64_t > dilation, Tensor out) const =0
Tensor::Strides weight_strides_
Definition internal_conv_depthwise2d.h:56
DataType weight_type_
Definition internal_conv_depthwise2d.h:58
Definition internal_add_relu.h:6
infini::rt::TensorView Tensor
Definition tensor.h:8