Skip to content

Commit

Permalink
[onert/train] Introduce Pad operation (Samsung#12524)
Browse files Browse the repository at this point in the history
This commit introduces Pad operation in train.

ONE-DCO-1.0-Signed-off-by: Yongseop Kim <[email protected]>
  • Loading branch information
YongseopKim authored Jan 25, 2024
1 parent c71862c commit c101827
Show file tree
Hide file tree
Showing 4 changed files with 99 additions and 0 deletions.
1 change: 1 addition & 0 deletions runtime/onert/core/include/ir/train/Operations.Include.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include "ir/train/operation/ElementwiseActivation.h"
#include "ir/train/operation/FullyConnected.h"
#include "ir/train/operation/Loss.h"
#include "ir/train/operation/Pad.h"
#include "ir/train/operation/Permute.h"
#include "ir/train/operation/Pool2D.h"
#include "ir/train/operation/Reduce.h"
Expand Down
1 change: 1 addition & 0 deletions runtime/onert/core/include/ir/train/Operations.lst
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ OP(DepthwiseConv2D)
OP(ElementwiseActivation)
OP(FullyConnected)
OP(Loss)
OP(Pad)
OP(Permute)
OP(Pool2D)
OP(Reduce)
Expand Down
51 changes: 51 additions & 0 deletions runtime/onert/core/include/ir/train/operation/Pad.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*
* Copyright (c) 2024 Samsung Electronics Co., Ltd. All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#ifndef __ONERT_IR_TRAIN_OPERATION_PAD_H__
#define __ONERT_IR_TRAIN_OPERATION_PAD_H__

#include "ir/operation/Pad.h"
#include "ir/train/ITrainableOperation.h"

namespace onert
{
namespace ir
{
namespace train
{
namespace operation
{

class Pad : public ir::operation::Pad, public ITrainableOperation
{
private:
using OperationType = ir::operation::Pad;

public:
Pad(const OperationType &operation);

public:
std::unique_ptr<ITrainableOperation> clone() const override;
void accept(OperationVisitor &v) const override;
void accept(TrainableOperationVisitor &v) const override;
};

} // namespace operation
} // namespace train
} // namespace ir
} // namespace onert

#endif // __ONERT_IR_TRAIN_OPERATION_PAD_H__
46 changes: 46 additions & 0 deletions runtime/onert/core/src/ir/train/operation/Pad.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/*
* Copyright (c) 2024 Samsung Electronics Co., Ltd. All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#include "ir/train/operation/Pad.h"

#include "ir/OperationVisitor.h"
#include "ir/train/TrainableOperationVisitor.h"

namespace onert
{
namespace ir
{
namespace train
{
namespace operation
{

std::unique_ptr<ITrainableOperation> Pad::clone() const { return std::make_unique<Pad>(*this); }

void Pad::accept(OperationVisitor &v) const { v.visit(*this); }

void Pad::accept(TrainableOperationVisitor &v) const { v.visit(*this); }

Pad::Pad(const OperationType &operation)
: OperationType{operation.getInputs(), operation.getOutputs()}
{
// DO NOTHING
}

} // namespace operation
} // namespace train
} // namespace ir
} // namespace onert

0 comments on commit c101827

Please sign in to comment.