Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
39 changes: 39 additions & 0 deletions src/base/abs.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#ifndef INFINI_OPS_BASE_ABS_H_
#define INFINI_OPS_BASE_ABS_H_

#include "operator.h"

namespace infini::ops {

class Abs : public Operator<Abs> {
public:
Abs(const Tensor input, Tensor out)
: input_shape_{input.shape()},
input_strides_{input.strides()},
input_type_{input.dtype()},
out_shape_{out.shape()},
out_strides_{out.strides()},
out_type_{out.dtype()},
device_index_{out.device().index()} {}

virtual void operator()(const Tensor input, Tensor out) const = 0;

protected:
Tensor::Shape input_shape_;

Tensor::Strides input_strides_;

DataType input_type_;

Tensor::Shape out_shape_;

Tensor::Strides out_strides_;

DataType out_type_;

int device_index_{0};
};

} // namespace infini::ops

#endif
39 changes: 39 additions & 0 deletions src/base/absolute.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#ifndef INFINI_OPS_BASE_ABSOLUTE_H_
#define INFINI_OPS_BASE_ABSOLUTE_H_

#include "operator.h"

namespace infini::ops {

class Absolute : public Operator<Absolute> {
public:
Absolute(const Tensor input, Tensor out)
: input_shape_{input.shape()},
input_strides_{input.strides()},
input_type_{input.dtype()},
out_shape_{out.shape()},
out_strides_{out.strides()},
out_type_{out.dtype()},
device_index_{out.device().index()} {}

virtual void operator()(const Tensor input, Tensor out) const = 0;

protected:
Tensor::Shape input_shape_;

Tensor::Strides input_strides_;

DataType input_type_;

Tensor::Shape out_shape_;

Tensor::Strides out_strides_;

DataType out_type_;

int device_index_{0};
};

} // namespace infini::ops

#endif
39 changes: 39 additions & 0 deletions src/base/acos.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#ifndef INFINI_OPS_BASE_ACOS_H_
#define INFINI_OPS_BASE_ACOS_H_

#include "operator.h"

namespace infini::ops {

class Acos : public Operator<Acos> {
public:
Acos(const Tensor input, Tensor out)
: input_shape_{input.shape()},
input_strides_{input.strides()},
input_type_{input.dtype()},
out_shape_{out.shape()},
out_strides_{out.strides()},
out_type_{out.dtype()},
device_index_{out.device().index()} {}

virtual void operator()(const Tensor input, Tensor out) const = 0;

protected:
Tensor::Shape input_shape_;

Tensor::Strides input_strides_;

DataType input_type_;

Tensor::Shape out_shape_;

Tensor::Strides out_strides_;

DataType out_type_;

int device_index_{0};
};

} // namespace infini::ops

#endif
39 changes: 39 additions & 0 deletions src/base/acosh.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#ifndef INFINI_OPS_BASE_ACOSH_H_
#define INFINI_OPS_BASE_ACOSH_H_

#include "operator.h"

namespace infini::ops {

class Acosh : public Operator<Acosh> {
public:
Acosh(const Tensor input, Tensor out)
: input_shape_{input.shape()},
input_strides_{input.strides()},
input_type_{input.dtype()},
out_shape_{out.shape()},
out_strides_{out.strides()},
out_type_{out.dtype()},
device_index_{out.device().index()} {}

virtual void operator()(const Tensor input, Tensor out) const = 0;

protected:
Tensor::Shape input_shape_;

Tensor::Strides input_strides_;

DataType input_type_;

Tensor::Shape out_shape_;

Tensor::Strides out_strides_;

DataType out_type_;

int device_index_{0};
};

} // namespace infini::ops

#endif
47 changes: 47 additions & 0 deletions src/base/adaptive_avg_pool2d.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#ifndef INFINI_OPS_BASE_ADAPTIVE_AVG_POOL2D_H_
#define INFINI_OPS_BASE_ADAPTIVE_AVG_POOL2D_H_

#include <vector>

#include "operator.h"

namespace infini::ops {

class AdaptiveAvgPool2d : public Operator<AdaptiveAvgPool2d> {
public:
AdaptiveAvgPool2d(const Tensor input, const std::vector<int64_t> output_size,
Tensor out)
: input_shape_{input.shape()},
input_strides_{input.strides()},
input_type_{input.dtype()},
out_shape_{out.shape()},
out_strides_{out.strides()},
out_type_{out.dtype()},
output_size_{output_size},
device_index_{out.device().index()} {}

virtual void operator()(const Tensor input,
const std::vector<int64_t> output_size,
Tensor out) const = 0;

protected:
Tensor::Shape input_shape_;

Tensor::Strides input_strides_;

DataType input_type_;

Tensor::Shape out_shape_;

Tensor::Strides out_strides_;

DataType out_type_;

std::vector<int64_t> output_size_{};

int device_index_{0};
};

} // namespace infini::ops

#endif
47 changes: 47 additions & 0 deletions src/base/adaptive_avg_pool3d.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#ifndef INFINI_OPS_BASE_ADAPTIVE_AVG_POOL3D_H_
#define INFINI_OPS_BASE_ADAPTIVE_AVG_POOL3D_H_

#include <vector>

#include "operator.h"

namespace infini::ops {

class AdaptiveAvgPool3d : public Operator<AdaptiveAvgPool3d> {
public:
AdaptiveAvgPool3d(const Tensor input, const std::vector<int64_t> output_size,
Tensor out)
: input_shape_{input.shape()},
input_strides_{input.strides()},
input_type_{input.dtype()},
out_shape_{out.shape()},
out_strides_{out.strides()},
out_type_{out.dtype()},
output_size_{output_size},
device_index_{out.device().index()} {}

virtual void operator()(const Tensor input,
const std::vector<int64_t> output_size,
Tensor out) const = 0;

protected:
Tensor::Shape input_shape_;

Tensor::Strides input_strides_;

DataType input_type_;

Tensor::Shape out_shape_;

Tensor::Strides out_strides_;

DataType out_type_;

std::vector<int64_t> output_size_{};

int device_index_{0};
};

} // namespace infini::ops

#endif
50 changes: 50 additions & 0 deletions src/base/adaptive_avg_pool3d_backward.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#ifndef INFINI_OPS_BASE_ADAPTIVE_AVG_POOL3D_BACKWARD_H_
#define INFINI_OPS_BASE_ADAPTIVE_AVG_POOL3D_BACKWARD_H_

#include "operator.h"

namespace infini::ops {

class AdaptiveAvgPool3dBackward : public Operator<AdaptiveAvgPool3dBackward> {
public:
AdaptiveAvgPool3dBackward(const Tensor grad_output, const Tensor input,
Tensor grad_input)
: grad_output_shape_{grad_output.shape()},
grad_output_strides_{grad_output.strides()},
grad_output_type_{grad_output.dtype()},
input_shape_{input.shape()},
input_strides_{input.strides()},
input_type_{input.dtype()},
grad_input_shape_{grad_input.shape()},
grad_input_strides_{grad_input.strides()},
grad_input_type_{grad_input.dtype()},
device_index_{grad_input.device().index()} {}

virtual void operator()(const Tensor grad_output, const Tensor input,
Tensor grad_input) const = 0;

protected:
Tensor::Shape grad_output_shape_;

Tensor::Strides grad_output_strides_;

DataType grad_output_type_;

Tensor::Shape input_shape_;

Tensor::Strides input_strides_;

DataType input_type_;

Tensor::Shape grad_input_shape_;

Tensor::Strides grad_input_strides_;

DataType grad_input_type_;

int device_index_{0};
};

} // namespace infini::ops

#endif
56 changes: 56 additions & 0 deletions src/base/adaptive_max_pool2d.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#ifndef INFINI_OPS_BASE_ADAPTIVE_MAX_POOL2D_H_
#define INFINI_OPS_BASE_ADAPTIVE_MAX_POOL2D_H_

#include <vector>

#include "operator.h"

namespace infini::ops {

class AdaptiveMaxPool2d : public Operator<AdaptiveMaxPool2d> {
public:
AdaptiveMaxPool2d(const Tensor input, const std::vector<int64_t> output_size,
Tensor out, Tensor indices)
: input_shape_{input.shape()},
input_strides_{input.strides()},
input_type_{input.dtype()},
out_shape_{out.shape()},
out_strides_{out.strides()},
out_type_{out.dtype()},
indices_shape_{indices.shape()},
indices_strides_{indices.strides()},
indices_type_{indices.dtype()},
output_size_{output_size},
device_index_{out.device().index()} {}

virtual void operator()(const Tensor input,
const std::vector<int64_t> output_size, Tensor out,
Tensor indices) const = 0;

protected:
Tensor::Shape input_shape_;

Tensor::Strides input_strides_;

DataType input_type_;

Tensor::Shape out_shape_;

Tensor::Strides out_strides_;

DataType out_type_;

Tensor::Shape indices_shape_;

Tensor::Strides indices_strides_;

DataType indices_type_;

std::vector<int64_t> output_size_{};

int device_index_{0};
};

} // namespace infini::ops

#endif
Loading
Loading