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

Function test_serializer_log_exp

src/serialization/test/serializer_oss.cpp:792–826  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

790}
791
792void test_serializer_log_exp(GraphDumpFormat format) {
793 auto fname = GET_OUTPUT_FILE(format);
794 TensorShape shape{2, 3};
795 using Mode = opr::Elemwise::Mode;
796 bool inplace_opt = true;
797 auto dump = [&]() {
798 auto cn = CompNode::load("xpu0");
799 auto host_x = std::make_shared<HostTensorND>(cn, shape);
800 for (size_t i = 0, it = shape.total_nr_elems(); i < it; ++i)
801 host_x->ptr<float>()[i] = 0.0; // To avoid NAN
802 auto graph = ComputingGraph::make();
803 if (!inplace_opt)
804 graph->options().graph_opt_level = 0;
805 auto x = opr::Host2DeviceCopy::make(*graph, host_x, {"x"});
806 auto y = opr::Elemwise::make({x}, Mode::EXP);
807 auto z = opr::Elemwise::make({y}, Mode::LOG);
808
809 auto dumper = GraphDumper::make(OutputFile::make_fs(fname.c_str()), format);
810 auto rst = dumper->dump({z.rename("z"), z});
811 size_t expected_nr_opr = inplace_opt ? 1 : 3;
812 ASSERT_EQ(expected_nr_opr, rst.nr_opr);
813 };
814
815 auto load = [&]() {
816 auto loader = GraphLoader::make(InputFile::make_fs(fname.c_str()), format);
817 auto rst = loader->load();
818 };
819
820 dump();
821 load();
822
823 inplace_opt = !inplace_opt;
824 dump();
825 load();
826}
827
828void test_serializer_memshare(GraphDumpFormat format) {
829 std::vector<uint8_t> buf;

Callers 1

TESTFunction · 0.85

Calls 6

renameMethod · 0.80
loadFunction · 0.50
makeFunction · 0.50
total_nr_elemsMethod · 0.45
dumpMethod · 0.45
loadMethod · 0.45

Tested by

no test coverage detected