ONE - On-device Neural Engine
Loading...
Searching...
No Matches
onert::backend::cpu::ops::BroadcastToLayer Class Reference

#include <BroadcastToLayer.h>

Collaboration diagram for onert::backend::cpu::ops::BroadcastToLayer:

Public Member Functions

 BroadcastToLayer ()
 
void configure (const IPortableTensor *input, const IPortableTensor *shape, IPortableTensor *output)
 
void run () override
 
- Public Member Functions inherited from onert::exec::IFunction
virtual ~IFunction ()=default
 
virtual void prepare ()
 

Detailed Description

Definition at line 28 of file BroadcastToLayer.h.

Constructor & Destructor Documentation

◆ BroadcastToLayer()

onert::backend::cpu::ops::BroadcastToLayer::BroadcastToLayer ( )

Definition at line 51 of file BroadcastToLayer.cc.

51 : _input(nullptr), _shape(nullptr), _output(nullptr)
52{
53 // DO NOTHING
54}

Member Function Documentation

◆ configure()

void onert::backend::cpu::ops::BroadcastToLayer::configure ( const IPortableTensor input,
const IPortableTensor shape,
IPortableTensor output 
)

Definition at line 56 of file BroadcastToLayer.cc.

58{
59 _input = input;
60 _shape = shape;
61 _output = output;
62}

◆ run()

void onert::backend::cpu::ops::BroadcastToLayer::run ( )
overridevirtual

Implements onert::exec::IFunction.

Definition at line 64 of file BroadcastToLayer.cc.

65{
66 // NOTE : It was implemented follows tf.broadcast_to operation works and
67 // Api Document(https://www.tensorflow.org/api_docs/python/tf/broadcast_to)
68
69 switch (_output->data_type())
70 {
71 // ToDo : It need to support INT8 and UINT8 also when will be applied quantization.
72 case OperandType::FLOAT32:
73 nnfw::cker::BroadcastTo<float>(getShape(_input), reinterpret_cast<float *>(_input->buffer()),
74 getShape(_output), getBuffer<float>(_output));
75 break;
76 case OperandType::INT32:
77 nnfw::cker::BroadcastTo<int32_t>(getShape(_input),
78 reinterpret_cast<int32_t *>(_input->buffer()),
79 getShape(_output), getBuffer<int32_t>(_output));
80 break;
81 case OperandType::UINT32:
82 nnfw::cker::BroadcastTo<uint32_t>(getShape(_input),
83 reinterpret_cast<uint32_t *>(_input->buffer()),
84 getShape(_output), getBuffer<uint32_t>(_output));
85 break;
86 default:
87 throw std::runtime_error{"BroadcastToLayer: unsupported data type"};
88 }
89}
ir::DataType data_type() const override final
virtual uint8_t * buffer() const =0
nnfw::cker::Shape getShape(const IPortableTensor *tensor)

References onert::backend::ITensor::buffer(), onert::backend::IPortableTensor::data_type(), and onert::backend::cpu::ops::getShape().


The documentation for this class was generated from the following files: