ONE - On-device Neural Engine
Loading...
Searching...
No Matches
luci::FuseGeluPass Struct Referencefinal

Class to fuse certain pattern of subgraph into CircleGelu. More...

#include <FuseGeluPass.h>

Collaboration diagram for luci::FuseGeluPass:

Public Member Functions

const char * name (void) const final
 
bool run (loco::Graph *g) final
 Run the pass.
 
- Public Member Functions inherited from logo::Pass
virtual ~Pass ()=default
 

Detailed Description

Class to fuse certain pattern of subgraph into CircleGelu.

For detailed subgraph pattern to be fused, please check its implementation.

Definition at line 30 of file FuseGeluPass.h.

Member Function Documentation

◆ name()

const char * luci::FuseGeluPass::name ( void  ) const
inlinefinalvirtual

Reimplemented from logo::Pass.

Definition at line 32 of file FuseGeluPass.h.

32{ return "luci::FuseGeluPass"; }

◆ run()

bool luci::FuseGeluPass::run ( loco::Graph graph)
finalvirtual

Run the pass.

Returns
false if there was nothing changed

Implements logo::Pass.

Definition at line 330 of file FuseGeluPass.cpp.

331{
332 bool changed = false;
333
334 for (auto node : loco::active_nodes(loco::output_nodes(g)))
335 {
336 auto mul = dynamic_cast<luci::CircleMul *>(node);
337 if (not mul)
338 continue;
339
340 if (fuse_gelu(mul))
341 changed = true;
342 }
343
344 return changed;
345}
MUL in Circle.
Definition CircleMul.h:34
std::set< loco::Node * > active_nodes(const std::vector< loco::Node * > &roots)
Enumerate all the nodes required to compute "roots".
std::vector< Node * > output_nodes(Graph *)
Definition Graph.cpp:101
void mul(const luci_interpreter::RuntimeShape &shape, const ArithmeticParams *params, const int16_t *input1_data, const int16_t *input2_data, int8_t *output_data)

References loco::active_nodes(), and loco::output_nodes().

Referenced by package.infer.session::inference().


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