Skip to content

Commit 28d681f

Browse files
committed
rbt
1 parent 3c9dfab commit 28d681f

3 files changed

Lines changed: 18 additions & 13 deletions

File tree

src/plugins/intel_gpu/include/intel_gpu/runtime/memory_pool.hpp

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,44 +26,49 @@ class engine;
2626
using primitive_id = std::string;
2727
using memory_ptr = std::shared_ptr<memory>;
2828

29-
template<typename Key, typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
29+
template<typename Key>
3030
class memory_restricter {
3131
private:
32-
const std::unordered_set<Key, Hash, KeyEqual>* set1; // Const reference to immutable set
33-
std::unordered_set<Key, Hash, KeyEqual> set2; // Internal mutable set
32+
const std::set<Key>* set1; // Const reference to immutable set
33+
std::set<Key> set2; // Internal mutable set
3434

3535
public:
3636
memory_restricter() : set1(nullptr) {};
3737

3838
// Constructor to initialize with a const reference for set1
39-
explicit memory_restricter(const std::unordered_set<Key, Hash, KeyEqual>* externalSet)
39+
explicit memory_restricter(const std::set<Key>* externalSet)
4040
: set1(externalSet) {}
4141

4242
// Insert into set2 (set1 is read-only)
4343
void insert(const Key& key) {
44-
if (set1->find(key) == set1->end())
44+
if (!set1 || set1->find(key) == set1->end())
4545
set2.insert(key);
4646
}
4747

4848
// Check existence in either set
4949
bool contains(const Key& key) const {
50-
return set1->find(key) != set1->end() || set2.find(key) != set2.end();
50+
const bool in_set1 = set1 ? (set1->find(key) != set1->end()) : false;
51+
return in_set1 || set2.find(key) != set2.end();
5152
}
5253

5354
// Total size of both sets
5455
size_t size() const {
55-
return set1->size() + set2.size();
56+
return (set1 ? set1->size() : 0) + set2.size();
5657
}
5758

5859
// Check if both sets are empty
5960
bool empty() const {
60-
return set1->empty() && set2.empty();
61+
return (!set1 || set1->empty()) && set2.empty();
6162
}
6263

6364
// Iterate over both sets
6465
void for_each(void(*func)(const Key&)) const {
65-
for (const auto& key : set1) func(key);
66-
for (const auto& key : set2) func(key);
66+
if (set1) {
67+
for (const auto& key : *set1)
68+
func(key);
69+
}
70+
for (const auto& key : set2)
71+
func(key);
6772
}
6873
}; // end of memory_restricter
6974

src/plugins/intel_gpu/src/graph/include/program_node.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ struct program_node {
210210
size_t get_dependency_index(const program_node& node) const;
211211
size_t get_user_index(const program_node& node) const;
212212

213-
const std::unordered_set<uint32_t>& get_memory_dependencies() const;
213+
const std::set<uint32_t>& get_memory_dependencies() const;
214214

215215
void add_memory_dependency(std::vector<size_t>);
216216
void add_memory_dependency(const program_node& node);
@@ -506,7 +506,7 @@ struct program_node {
506506
std::list<program_node*> users;
507507

508508
// list of primitives that can reuse same memory buffers due to execution order conflicts
509-
std::unordered_set<uint32_t> memory_dependencies;
509+
std::set<uint32_t> memory_dependencies;
510510

511511
impl_types impl_type = impl_types::any;
512512
impl_types forced_impl_type = impl_types::any;

src/plugins/intel_gpu/src/graph/program_node.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ void program_node::remove_dependency(size_t idx) {
195195
dependencies.erase(dependencies.begin() + idx);
196196
}
197197

198-
const std::unordered_set<uint32_t>& program_node::get_memory_dependencies() const { return memory_dependencies; }
198+
const std::set<uint32_t>& program_node::get_memory_dependencies() const { return memory_dependencies; }
199199

200200
void program_node::add_memory_dependency(std::vector<size_t> prim_list) {
201201
for (size_t val : prim_list) {

0 commit comments

Comments
 (0)