Skip to content

Commit 9201c57

Browse files
[NPUW] Fix ade:: namespace conflict (#26862)
1 parent bfef7eb commit 9201c57

File tree

6 files changed

+86
-74
lines changed

6 files changed

+86
-74
lines changed

src/plugins/intel_npu/src/plugin/npuw/partitioning/online/graph.cpp

+49-43
Original file line numberDiff line numberDiff line change
@@ -8,57 +8,63 @@
88
#include <algorithm>
99
#include <stack>
1010

11-
ade::Nodes ade::Node::srcNodes() const {
12-
ade::Nodes src_nodes;
11+
own::ade::Nodes own::ade::Node::srcNodes() const {
12+
own::ade::Nodes src_nodes;
1313
src_nodes.reserve(m_src_edges.size());
14-
std::transform(m_src_edges.begin(), m_src_edges.end(), std::back_inserter(src_nodes), [](ade::EdgeHandle edge) {
15-
return edge->srcNode();
16-
});
14+
std::transform(m_src_edges.begin(),
15+
m_src_edges.end(),
16+
std::back_inserter(src_nodes),
17+
[](own::ade::EdgeHandle edge) {
18+
return edge->srcNode();
19+
});
1720
// FIXME: this was introduced to make the graph
1821
// the same every run when created the same way.
1922
// FIXME: cache this information
20-
std::sort(src_nodes.begin(), src_nodes.end(), [&](const ade::NodeHandle& a, const ade::NodeHandle& b) {
23+
std::sort(src_nodes.begin(), src_nodes.end(), [&](const own::ade::NodeHandle& a, const own::ade::NodeHandle& b) {
2124
auto locked_graph = m_graph.lock();
2225
return locked_graph->meta(a).get<detail::CreateIdx>().m_idx <
2326
locked_graph->meta(b).get<detail::CreateIdx>().m_idx;
2427
});
2528
return src_nodes;
2629
}
2730

28-
ade::Nodes ade::Node::dstNodes() const {
29-
ade::Nodes dst_nodes;
31+
own::ade::Nodes own::ade::Node::dstNodes() const {
32+
own::ade::Nodes dst_nodes;
3033
dst_nodes.reserve(m_dst_edges.size());
31-
std::transform(m_dst_edges.begin(), m_dst_edges.end(), std::back_inserter(dst_nodes), [](ade::EdgeHandle edge) {
32-
return edge->dstNode();
33-
});
34+
std::transform(m_dst_edges.begin(),
35+
m_dst_edges.end(),
36+
std::back_inserter(dst_nodes),
37+
[](own::ade::EdgeHandle edge) {
38+
return edge->dstNode();
39+
});
3440
// FIXME: this was introduced to make the graph
3541
// the same every run when created the same way.
3642
// FIXME: cache this information
37-
std::sort(dst_nodes.begin(), dst_nodes.end(), [&](const ade::NodeHandle& a, const ade::NodeHandle& b) {
43+
std::sort(dst_nodes.begin(), dst_nodes.end(), [&](const own::ade::NodeHandle& a, const own::ade::NodeHandle& b) {
3844
auto locked_graph = m_graph.lock();
3945
return locked_graph->meta(a).get<detail::CreateIdx>().m_idx <
4046
locked_graph->meta(b).get<detail::CreateIdx>().m_idx;
4147
});
4248
return dst_nodes;
4349
}
4450

45-
ade::Edges ade::Node::srcEdges() const {
51+
own::ade::Edges own::ade::Node::srcEdges() const {
4652
return {m_src_edges.begin(), m_src_edges.end()};
4753
}
4854

49-
ade::Edges ade::Node::dstEdges() const {
55+
own::ade::Edges own::ade::Node::dstEdges() const {
5056
return {m_dst_edges.begin(), m_dst_edges.end()};
5157
}
5258

53-
ade::NodeHandle ade::Graph::create() {
54-
auto node = std::make_shared<ade::Node>(shared_from_this());
55-
ade::NodeHandle nh(node);
56-
m_nodes.emplace(node.get(), MetaPtr<ade::Node>{node, ade::Meta{}});
59+
own::ade::NodeHandle own::ade::Graph::create() {
60+
auto node = std::make_shared<own::ade::Node>(shared_from_this());
61+
own::ade::NodeHandle nh(node);
62+
m_nodes.emplace(node.get(), MetaPtr<own::ade::Node>{node, own::ade::Meta{}});
5763
this->meta(nh).set(detail::CreateIdx{m_create_idx++});
5864
return nh;
5965
}
6066

61-
void ade::Graph::remove(ade::NodeHandle nh) {
67+
void own::ade::Graph::remove(own::ade::NodeHandle nh) {
6268
auto src_edges = nh->srcEdges();
6369
for (size_t i = 0; i < src_edges.size(); ++i) {
6470
remove(src_edges[i]);
@@ -70,52 +76,52 @@ void ade::Graph::remove(ade::NodeHandle nh) {
7076
m_nodes.erase(nh.get());
7177
}
7278

73-
void ade::Graph::remove(ade::EdgeHandle eh) {
79+
void own::ade::Graph::remove(own::ade::EdgeHandle eh) {
7480
auto src = eh->srcNode();
7581
auto dst = eh->dstNode();
7682
src->m_dst_edges.erase(eh);
7783
dst->m_src_edges.erase(eh);
7884
m_edges.erase(eh.get());
7985
}
8086

81-
ade::EdgeHandle ade::Graph::link(ade::NodeHandle src, ade::NodeHandle dst) {
82-
auto edge = std::make_shared<ade::Edge>(src, dst);
83-
ade::EdgeHandle eh{edge};
84-
m_edges.emplace(edge.get(), MetaPtr<ade::Edge>{edge, ade::Meta{}});
87+
own::ade::EdgeHandle own::ade::Graph::link(own::ade::NodeHandle src, own::ade::NodeHandle dst) {
88+
auto edge = std::make_shared<own::ade::Edge>(src, dst);
89+
own::ade::EdgeHandle eh{edge};
90+
m_edges.emplace(edge.get(), MetaPtr<own::ade::Edge>{edge, own::ade::Meta{}});
8591
src->m_dst_edges.insert(eh);
8692
dst->m_src_edges.insert(eh);
8793
return eh;
8894
}
8995

90-
ade::Meta& ade::Graph::meta(ade::NodeHandle handle) {
96+
own::ade::Meta& own::ade::Graph::meta(own::ade::NodeHandle handle) {
9197
const auto it = m_nodes.find(handle.get());
9298
ASSERT(it != m_nodes.end());
9399
return it->second.meta;
94100
}
95101

96-
const ade::Meta& ade::Graph::meta(ade::NodeHandle handle) const {
102+
const own::ade::Meta& own::ade::Graph::meta(own::ade::NodeHandle handle) const {
97103
const auto it = m_nodes.find(handle.get());
98104
ASSERT(it != m_nodes.end());
99105
return it->second.meta;
100106
}
101107

102-
ade::Meta& ade::Graph::meta(ade::EdgeHandle handle) {
108+
own::ade::Meta& own::ade::Graph::meta(own::ade::EdgeHandle handle) {
103109
const auto it = m_edges.find(handle.get());
104110
ASSERT(it != m_edges.end());
105111
return it->second.meta;
106112
}
107113

108-
const ade::Meta& ade::Graph::meta(ade::EdgeHandle handle) const {
114+
const own::ade::Meta& own::ade::Graph::meta(own::ade::EdgeHandle handle) const {
109115
const auto it = m_edges.find(handle.get());
110116
ASSERT(it != m_edges.end());
111117
return it->second.meta;
112118
}
113119

114-
bool ade::Graph::contains(ade::NodeHandle handle) const {
120+
bool own::ade::Graph::contains(own::ade::NodeHandle handle) const {
115121
return m_nodes.find(handle.get()) != m_nodes.end();
116122
}
117123

118-
bool ade::Graph::linked(ade::NodeHandle src, ade::NodeHandle dst) {
124+
bool own::ade::Graph::linked(own::ade::NodeHandle src, own::ade::NodeHandle dst) {
119125
for (const auto& edge : src->m_dst_edges) {
120126
if (edge->dstNode() == dst) {
121127
return true;
@@ -124,23 +130,23 @@ bool ade::Graph::linked(ade::NodeHandle src, ade::NodeHandle dst) {
124130
return false;
125131
}
126132

127-
std::vector<ade::NodeHandle> ade::Graph::nodes() const {
128-
std::vector<ade::NodeHandle> ret;
133+
std::vector<own::ade::NodeHandle> own::ade::Graph::nodes() const {
134+
std::vector<own::ade::NodeHandle> ret;
129135
std::transform(m_nodes.begin(), m_nodes.end(), std::back_inserter(ret), [](const auto& p) {
130-
return ade::NodeHandle{p.second.ptr};
136+
return own::ade::NodeHandle{p.second.ptr};
131137
});
132138
return ret;
133139
}
134140

135-
void ade::Graph::dfs(ade::NodeHandle& nh,
136-
std::unordered_set<ade::NodeHandle>& visited,
137-
std::stack<ade::NodeHandle>& stack) const {
141+
void own::ade::Graph::dfs(own::ade::NodeHandle& nh,
142+
std::unordered_set<own::ade::NodeHandle>& visited,
143+
std::stack<own::ade::NodeHandle>& stack) const {
138144
visited.insert(nh);
139145
auto dst_nodes = nh->dstNodes();
140146

141147
// FIXME: this was introduced to make the graph
142148
// the same every run when created the same way.
143-
std::sort(dst_nodes.begin(), dst_nodes.end(), [&](const ade::NodeHandle& a, const ade::NodeHandle& b) {
149+
std::sort(dst_nodes.begin(), dst_nodes.end(), [&](const own::ade::NodeHandle& a, const own::ade::NodeHandle& b) {
144150
return this->meta(a).get<detail::CreateIdx>().m_idx < this->meta(b).get<detail::CreateIdx>().m_idx;
145151
});
146152

@@ -153,14 +159,14 @@ void ade::Graph::dfs(ade::NodeHandle& nh,
153159
stack.push(nh);
154160
}
155161

156-
std::vector<ade::NodeHandle> ade::Graph::sorted() const {
157-
std::unordered_set<ade::NodeHandle> visited;
158-
std::stack<ade::NodeHandle> stack;
162+
std::vector<own::ade::NodeHandle> own::ade::Graph::sorted() const {
163+
std::unordered_set<own::ade::NodeHandle> visited;
164+
std::stack<own::ade::NodeHandle> stack;
159165
auto nodes = this->nodes();
160166

161167
// FIXME: this was introduced to make the graph
162168
// the same every run when created the same way.
163-
std::sort(nodes.begin(), nodes.end(), [&](const ade::NodeHandle& a, const ade::NodeHandle& b) {
169+
std::sort(nodes.begin(), nodes.end(), [&](const own::ade::NodeHandle& a, const own::ade::NodeHandle& b) {
164170
return this->meta(a).get<detail::CreateIdx>().m_idx < this->meta(b).get<detail::CreateIdx>().m_idx;
165171
});
166172

@@ -170,15 +176,15 @@ std::vector<ade::NodeHandle> ade::Graph::sorted() const {
170176
dfs(nh, visited, stack);
171177
}
172178
}
173-
std::vector<ade::NodeHandle> sorted;
179+
std::vector<own::ade::NodeHandle> sorted;
174180
while (!stack.empty()) {
175181
sorted.push_back(stack.top());
176182
stack.pop();
177183
}
178184
return sorted;
179185
}
180186

181-
ade::Meta& ade::Meta::operator+=(const ade::Meta& other) {
187+
own::ade::Meta& own::ade::Meta::operator+=(const own::ade::Meta& other) {
182188
for (const auto& p : other.store) {
183189
ASSERT(store.emplace(p.first, p.second).second);
184190
}

src/plugins/intel_npu/src/plugin/npuw/partitioning/online/graph.hpp

+6-2
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ namespace detail {
4646
}
4747
} // anonymous namespace
4848

49+
namespace own {
4950
namespace ade {
5051

5152
namespace detail {
@@ -73,16 +74,18 @@ struct CreateIdx {
7374

7475
} // namespace detail
7576
} // namespace ade
77+
} // namespace own
7678

7779
namespace std {
7880
template <typename T>
79-
struct hash<ade::detail::WeakHandle<T>> {
80-
uint64_t operator()(const ade::detail::WeakHandle<T>& handle) const {
81+
struct hash<own::ade::detail::WeakHandle<T>> {
82+
uint64_t operator()(const own::ade::detail::WeakHandle<T>& handle) const {
8183
return std::hash<T*>()(handle.get());
8284
}
8385
};
8486
} // namespace std
8587

88+
namespace own {
8689
namespace ade {
8790

8891
class Graph;
@@ -217,3 +220,4 @@ class Graph : public std::enable_shared_from_this<Graph> {
217220
};
218221

219222
} // namespace ade
223+
} // namespace own

src/plugins/intel_npu/src/plugin/npuw/partitioning/online/group.cpp

+11-11
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ using ov::npuw::online::detail::isOp;
2222

2323
Group::Group(const std::shared_ptr<ov::Node>& node,
2424
size_t gid,
25-
ade::NodeHandle nh,
26-
const std::shared_ptr<ade::Graph>& g,
25+
own::ade::NodeHandle nh,
26+
const std::shared_ptr<own::ade::Graph>& g,
2727
const std::weak_ptr<Snapshot>& snapshot)
2828
: m_nh(std::move(nh)),
2929
m_id(gid),
@@ -35,8 +35,8 @@ Group::Group(const std::shared_ptr<ov::Node>& node,
3535
}
3636

3737
Group::Group(size_t gid,
38-
ade::NodeHandle nh,
39-
const std::shared_ptr<ade::Graph>& g,
38+
own::ade::NodeHandle nh,
39+
const std::shared_ptr<own::ade::Graph>& g,
4040
const std::weak_ptr<Snapshot>& snapshot)
4141
: m_nh(std::move(nh)),
4242
m_id(gid),
@@ -140,15 +140,15 @@ size_t Group::getId() const {
140140
return m_id;
141141
}
142142

143-
std::vector<ade::NodeHandle> Group::srcNodes() const {
143+
std::vector<own::ade::NodeHandle> Group::srcNodes() const {
144144
return m_nh->srcNodes();
145145
}
146146

147-
std::vector<ade::NodeHandle> Group::dstNodes() const {
147+
std::vector<own::ade::NodeHandle> Group::dstNodes() const {
148148
return m_nh->dstNodes();
149149
}
150150

151-
ade::NodeHandle Group::getHandle() const {
151+
own::ade::NodeHandle Group::getHandle() const {
152152
return m_nh;
153153
}
154154

@@ -234,7 +234,7 @@ void Group::fuse(const Group::GPtr& gptr_prod) {
234234

235235
// This group absorbs the consumer
236236
void Group::fuseWith(const Group::GPtr& gptr_cons) {
237-
// Update ov::node to ade::NodeHandle map
237+
// Update ov::node to own::ade::NodeHandle map
238238
auto locked_snapshot = m_snapshot.lock();
239239
auto node_to_gr = locked_snapshot->getNodeToGroupMap();
240240
for (const auto& layer : gptr_cons->m_content) {
@@ -261,7 +261,7 @@ void Group::fuseInputs(const std::pair<Group::GPtr, Group::GPtr>& gptr_inputs) {
261261
auto locked_snapshot = m_snapshot.lock();
262262
auto node_to_gr = locked_snapshot->getNodeToGroupMap();
263263

264-
// Update ov::node to ade::NodeHandle map and merge all contents together
264+
// Update ov::node to own::ade::NodeHandle map and merge all contents together
265265
for (const auto& layer : absorbed_group->m_content) {
266266
node_to_gr->at(layer) = absorbing_group;
267267
absorbing_group->m_content.insert(layer);
@@ -296,9 +296,9 @@ void Group::takeFlags(const Group::GPtr& gptr_other) {
296296

297297
// Check if there is indirect path from this to gptr_cons
298298
bool Group::hasCycle(const Group::GPtr& gptr_cons) const {
299-
std::unordered_set<ade::NodeHandle> visited;
299+
std::unordered_set<own::ade::NodeHandle> visited;
300300

301-
std::stack<ade::NodeHandle> st;
301+
std::stack<own::ade::NodeHandle> st;
302302

303303
for (const auto& prod : gptr_cons->srcNodes()) {
304304
// skip self during this iter

src/plugins/intel_npu/src/plugin/npuw/partitioning/online/group.hpp

+9-9
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,21 @@ class Group : public std::enable_shared_from_this<Group> {
3232
Group() = delete;
3333
Group(const std::shared_ptr<ov::Node>& node,
3434
size_t gid,
35-
ade::NodeHandle nh,
36-
const std::shared_ptr<ade::Graph>& g,
35+
own::ade::NodeHandle nh,
36+
const std::shared_ptr<own::ade::Graph>& g,
3737
const std::weak_ptr<Snapshot>& snapshot);
3838
Group(size_t gid,
39-
ade::NodeHandle nh,
40-
const std::shared_ptr<ade::Graph>& g,
39+
own::ade::NodeHandle nh,
40+
const std::shared_ptr<own::ade::Graph>& g,
4141
const std::weak_ptr<Snapshot>& snapshot);
4242

4343
// After we formed a final structure of partitioning,
4444
// we append excluded Convert layers to properly link submodels
4545
// Convert this representation to plugin-compatible one
4646
ov::npuw::Group toGroup() const;
47-
std::vector<ade::NodeHandle> srcNodes() const;
48-
std::vector<ade::NodeHandle> dstNodes() const;
49-
ade::NodeHandle getHandle() const;
47+
std::vector<own::ade::NodeHandle> srcNodes() const;
48+
std::vector<own::ade::NodeHandle> dstNodes() const;
49+
own::ade::NodeHandle getHandle() const;
5050
// Note: can only be used during initial group initialization
5151
std::shared_ptr<ov::Node> getInitialNode() const;
5252
void addInput(const std::shared_ptr<ov::Node>& node);
@@ -95,9 +95,9 @@ class Group : public std::enable_shared_from_this<Group> {
9595
detail::OVNodeSet m_content;
9696
detail::OVNodeSet m_output_layers;
9797

98-
ade::NodeHandle m_nh;
98+
own::ade::NodeHandle m_nh;
9999
size_t m_id; // used for utility prints only
100-
std::shared_ptr<ade::Graph> m_graph;
100+
std::shared_ptr<own::ade::Graph> m_graph;
101101
std::weak_ptr<Snapshot> m_snapshot;
102102
bool m_frozen = false;
103103
bool m_nofold = false;

src/plugins/intel_npu/src/plugin/npuw/partitioning/online/snapshot.cpp

+8-6
Original file line numberDiff line numberDiff line change
@@ -213,11 +213,13 @@ void Snapshot::fuseRemnants() {
213213
}
214214
auto consumers = group->dstNodes();
215215
if (!consumers.empty()) {
216-
std::sort(consumers.begin(), consumers.end(), [&](const ade::NodeHandle& nh1, const ade::NodeHandle& nh2) {
217-
Group::GPtr g1 = m_graph->meta(nh1).get<Group::GPtr>();
218-
Group::GPtr g2 = m_graph->meta(nh2).get<Group::GPtr>();
219-
return g1->size() < g2->size();
220-
});
216+
std::sort(consumers.begin(),
217+
consumers.end(),
218+
[&](const own::ade::NodeHandle& nh1, const own::ade::NodeHandle& nh2) {
219+
Group::GPtr g1 = m_graph->meta(nh1).get<Group::GPtr>();
220+
Group::GPtr g2 = m_graph->meta(nh2).get<Group::GPtr>();
221+
return g1->size() < g2->size();
222+
});
221223
for (const auto& cons : consumers) { // FIXME: pick the smallest flops
222224
Group::GPtr cons_group = m_graph->meta(cons).get<Group::GPtr>();
223225
if (!group->hasCycle(cons_group)) {
@@ -1051,7 +1053,7 @@ const ov::npuw::online::detail::OVNodeToGroupMapPtr& Snapshot::getNodeToGroupMap
10511053
return m_node_to_gr;
10521054
}
10531055

1054-
std::shared_ptr<ade::Graph> Snapshot::getGraph() const {
1056+
std::shared_ptr<own::ade::Graph> Snapshot::getGraph() const {
10551057
return m_graph;
10561058
}
10571059

0 commit comments

Comments
 (0)