ONE - On-device Neural Engine
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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 24 of file BroadcastToLayer.cc.

24 : _input(nullptr), _shape(nullptr), _output(nullptr)
25{
26 // DO NOTHING
27}

Member Function Documentation

◆ configure()

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

Definition at line 29 of file BroadcastToLayer.cc.

31{
32 _input = input;
33 _shape = shape;
34 _output = output;
35}

◆ run()

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

Implements onert::exec::IFunction.

Definition at line 37 of file BroadcastToLayer.cc.

38{
39 // NOTE : It was implemented follows tf.broadcast_to operation works and
40 // Api Document(https://www.tensorflow.org/api_docs/python/tf/broadcast_to)
41
42 switch (_output->data_type())
43 {
44 // ToDo : It need to support INT8 and UINT8 also when will be applied quantization.
45 case OperandType::FLOAT32:
46 nnfw::cker::BroadcastTo<float>(getShape(_input), reinterpret_cast<float *>(_input->buffer()),
47 getShape(_output), getBuffer<float>(_output));
48 break;
49 case OperandType::INT32:
50 nnfw::cker::BroadcastTo<int32_t>(getShape(_input),
51 reinterpret_cast<int32_t *>(_input->buffer()),
52 getShape(_output), getBuffer<int32_t>(_output));
53 break;
54 case OperandType::UINT32:
55 nnfw::cker::BroadcastTo<uint32_t>(getShape(_input),
56 reinterpret_cast<uint32_t *>(_input->buffer()),
57 getShape(_output), getBuffer<uint32_t>(_output));
58 break;
59 default:
60 throw std::runtime_error{"BroadcastToLayer: unsupported data type"};
61 }
62}
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: