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

Class to fuse certain pattern of subgraph into CircleRoPE with auxiliary nodes. More...

#include <FuseRoPEPass.h>

Collaboration diagram for luci::FuseRoPEPass:

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 CircleRoPE with auxiliary nodes.

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

Definition at line 31 of file FuseRoPEPass.h.

Member Function Documentation

◆ name()

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

Reimplemented from logo::Pass.

Definition at line 33 of file FuseRoPEPass.h.

33{ return "luci::FuseRoPEPass"; }

◆ run()

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

Run the pass.

Returns
false if there was nothing changed

Implements logo::Pass.

Definition at line 255 of file FuseRoPEPass.cpp.

256{
257 bool changed = false;
258
259 for (auto node : loco::active_nodes(loco::output_nodes(g)))
260 {
261 auto add = dynamic_cast<luci::CircleAdd *>(node);
262 if (not add)
263 continue;
264
265 if (fuse_rope(add))
266 changed = true;
267 }
268
269 return changed;
270}
ADD in Circle.
Definition CircleAdd.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

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: