-
Notifications
You must be signed in to change notification settings - Fork 110
Expand file tree
/
Copy pathgraph.cc
More file actions
67 lines (49 loc) · 1.29 KB
/
graph.cc
File metadata and controls
67 lines (49 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "graph_manager.hpp"
#include "../utils.hpp"
namespace infinicore::graph {
/* =========================
* GraphTensor
* ========================= */
GraphTensor::GraphTensor(const Tensor &tensor) : Tensor(tensor->to_blob()) {
}
/* =========================
* GraphOperator
* ========================= */
void DispatchableGraphOperator::run() const {
runner_(planned_meta_);
}
DispatchableGraphOperator::~DispatchableGraphOperator() {
if (deleter_) {
deleter_(&planned_meta_);
}
}
/* =========================
* Graph
* ========================= */
void Graph::run() const {
for (auto &op : op_list_) {
op->run();
}
}
void Graph::add_operator(std::shared_ptr<GraphOperator> op) {
op_list_.push_back(op);
}
/* =========================
* GraphManager
* ========================= */
bool GraphManager::is_recording() const {
return recording_;
}
void GraphManager::start_recording() {
recording_ = true;
graph_ = std::make_shared<Graph>();
}
void GraphManager::add_operator(std::shared_ptr<GraphOperator> op) {
INFINICORE_ASSERT(recording_);
graph_->add_operator(op);
}
std::shared_ptr<Graph> GraphManager::stop_recording() {
recording_ = false;
return std::exchange(graph_, nullptr);
}
} // namespace infinicore::graph