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

Function check_rng_basic

imperative/src/test/rng.cpp:9–33  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7
8template <typename Op, typename... Args>
9void check_rng_basic(Args&&... args) {
10 for (auto&& tshape : {TensorShape{2, 3, 4, 5}, {3, 4, 5, 6}, {2333}})
11 for (auto&& cn : {CompNode::load("xpu0"), CompNode::load("xpu1")}) {
12 Handle h = new_handle(cn, 123);
13 auto op = Op::make(std::forward<Args>(args)..., h);
14 DeviceTensorND tshape_dev;
15 cg::copy_shape_to_tensor_value(tshape_dev, tshape);
16 SmallVector<TensorPtr> inputs = {Tensor::make(tshape_dev)};
17 SmallVector<LogicalTensorDesc> input_descs;
18 input_descs.push_back(
19 {inputs[0]->layout(), inputs[0]->comp_node(),
20 inputs[0]->dev_tensor()});
21 auto [output_descs, validated] =
22 OpDef::infer_output_attrs_fallible(*op, input_descs);
23 auto outputs = OpDef::apply_on_physical_tensor(
24 *op, inputs, output_descs, validated);
25 ASSERT_TRUE(outputs[0]->layout().eq_shape(tshape));
26 ASSERT_TRUE(cn == outputs[0]->comp_node());
27 // sync before delete handle
28 for (auto&& p : outputs) {
29 p->get_value();
30 }
31 delete_handle(h);
32 }
33}
34
35template <typename Op, typename... Args>
36void check_rng_with_input_basic(

Callers

nothing calls this directly

Calls 12

new_handleFunction · 0.85
delete_handleFunction · 0.85
loadFunction · 0.50
makeFunction · 0.50
apply_on_physical_tensorFunction · 0.50
push_backMethod · 0.45
layoutMethod · 0.45
comp_nodeMethod · 0.45
dev_tensorMethod · 0.45
eq_shapeMethod · 0.45
get_valueMethod · 0.45

Tested by

no test coverage detected