MCPcopy Create free account
hub / github.com/MegEngine/MegEngine / run_test

Function run_test

src/opr/test/internal.cpp:53–91  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

51MGB_DYN_TYPE_OBJ_FINAL_IMPL(WorkspaceLimitGetterOpr);
52
53void run_test(bool dynamic) {
54 HostTensorGenerator<> gen;
55 auto graph = ComputingGraph::make();
56
57 if (dynamic) {
58 graph->options().force_dynamic_alloc = true;
59 }
60
61 auto x = opr::SharedDeviceTensor::make(*graph, *gen({23}));
62
63 int infer_shape_nr_call = 0;
64 auto infer_shape_callback = [&]() {
65 ++infer_shape_nr_call;
66 if (infer_shape_nr_call < 3) {
67 ASSERT_TRUE(WorkspaceLimitGetter::is_prealloc_run(graph.get()));
68 } else {
69 ASSERT_FALSE(WorkspaceLimitGetter::is_prealloc_run(graph.get()));
70 auto wk = WorkspaceLimitGetter::get_workspace_limit(
71 graph.get(), x.node()->comp_node(), 123);
72 ASSERT_GT(wk, 0u);
73 ASSERT_LE(wk, 123u);
74 return;
75 }
76 };
77
78 auto y = WorkspaceLimitGetterOpr::make(x, infer_shape_callback);
79 ASSERT_EQ(1, infer_shape_nr_call);
80
81 graph->compile({{x, {}}})->execute();
82 ASSERT_EQ(1, infer_shape_nr_call);
83
84 auto func1 = graph->compile({{y, {}}});
85 ASSERT_EQ(1, infer_shape_nr_call);
86 func1->execute();
87 ASSERT_EQ(3, infer_shape_nr_call);
88
89 func1->execute();
90 ASSERT_EQ(3, infer_shape_nr_call);
91}
92
93} // namespace
94

Callers 4

TESTFunction · 0.70
TESTFunction · 0.50
TESTFunction · 0.50
TESTFunction · 0.50

Calls 8

get_workspace_limitFunction · 0.85
makeFunction · 0.70
genFunction · 0.50
getMethod · 0.45
comp_nodeMethod · 0.45
nodeMethod · 0.45
executeMethod · 0.45
compileMethod · 0.45

Tested by

no test coverage detected