ArmNN
 20.02
OptimizeInverseConversionsImpl Class Reference

#include <OptimizeInverseConversions.hpp>

Public Member Functions

void Run (Graph &graph, InputSlot &connection) const
 Run for every connection between two inverse data type conversion layers, i.e. More...
 

Protected Member Functions

 OptimizeInverseConversionsImpl ()=default
 
 ~OptimizeInverseConversionsImpl ()=default
 

Detailed Description

Definition at line 16 of file OptimizeInverseConversions.hpp.

Constructor & Destructor Documentation

◆ OptimizeInverseConversionsImpl()

◆ ~OptimizeInverseConversionsImpl()

Member Function Documentation

◆ Run()

void Run ( Graph graph,
InputSlot connection 
) const
inline

Run for every connection between two inverse data type conversion layers, i.e.

Fp16ToFp32 followed by Fp32ToFp16 or vice-versa.

Definition at line 21 of file OptimizeInverseConversions.hpp.

References armnn::ConvertFp16ToFp32, armnn::ConvertFp32ToFp16, InputSlot::GetConnectedOutputSlot(), Layer::GetInputSlot(), Layer::GetOutputSlot(), InputSlot::GetOwningLayer(), OutputSlot::GetOwningLayer(), Layer::GetType(), armnn::IgnoreUnused(), OutputSlot::MoveAllConnections(), OptimizeInverseConversionsImpl::OptimizeInverseConversionsImpl(), and OptimizeInverseConversionsImpl::~OptimizeInverseConversionsImpl().

22  {
23  IgnoreUnused(graph);
24  Layer& base = connection.GetConnectedOutputSlot()->GetOwningLayer();
25  Layer& child = connection.GetOwningLayer();
26 
27  BOOST_ASSERT((base.GetType() == LayerType::ConvertFp16ToFp32 &&
28  child.GetType() == LayerType::ConvertFp32ToFp16) ||
29  (base.GetType() == LayerType::ConvertFp32ToFp16 &&
30  child.GetType() == LayerType::ConvertFp16ToFp32));
31 
32  // Bypass both conversion layers
33  child.GetOutputSlot().MoveAllConnections(*base.GetInputSlot(0).GetConnectedOutputSlot());
34  }
void IgnoreUnused(Ts &&...)

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