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

Function TEST

src/core/test/comp_node.cpp:17–69  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15using namespace mgb;
16
17TEST(TestCompNode, Parse) {
18 using L = CompNode::Locator;
19 using D = CompNode::DeviceType;
20 auto make_lc = [](D t, int dev, int s) -> L { return {t, dev, {s}}; };
21
22 ASSERT_EQ(L::parse("xpux"), make_lc(D::UNSPEC, -1, 0));
23 ASSERT_EQ(L::parse("xpux:23"), make_lc(D::UNSPEC, -1, 23));
24 ASSERT_EQ(L::parse("xpu2:23"), make_lc(D::UNSPEC, 2, 23));
25 ASSERT_EQ(L::parse("xpu21:23"), make_lc(D::UNSPEC, 21, 23));
26
27 ASSERT_EQ(L::parse("cpux"), make_lc(D::CPU, -1, 0));
28 ASSERT_EQ(L::parse("cpux:23"), make_lc(D::CPU, -1, 23));
29 ASSERT_EQ(L::parse("cpu2:23"), make_lc(D::CPU, 2, 23));
30 ASSERT_EQ(L::parse("cpu21:23"), make_lc(D::CPU, 21, 23));
31
32 ASSERT_EQ(L::parse("rocmx"), make_lc(D::ROCM, -1, 0));
33 ASSERT_EQ(L::parse("rocm2"), make_lc(D::ROCM, 2, 0));
34 ASSERT_EQ(L::parse("rocm2:3"), make_lc(D::ROCM, 2, 3));
35 ASSERT_EQ(L::parse("cambriconx"), make_lc(D::CAMBRICON, -1, 0));
36 ASSERT_EQ(L::parse("cambricon2"), make_lc(D::CAMBRICON, 2, 0));
37 ASSERT_EQ(L::parse("cambricon2:3"), make_lc(D::CAMBRICON, 2, 3));
38
39 ASSERT_EQ(L::parse("atlasx"), make_lc(D::ATLAS, -1, 0));
40 ASSERT_EQ(L::parse("atlas2"), make_lc(D::ATLAS, 2, 0));
41 ASSERT_EQ(L::parse("atlas2:3"), make_lc(D::ATLAS, 2, 3));
42 ASSERT_EQ(L::parse("xpu"), make_lc(D::UNSPEC, -1, 0));
43 ASSERT_EQ(L::parse("xpux"), make_lc(D::UNSPEC, -1, 0));
44 ASSERT_EQ(L::parse("xpu23"), make_lc(D::UNSPEC, 23, 0));
45 ASSERT_EQ(L::parse("xpu23:1"), make_lc(D::UNSPEC, 23, 1));
46
47 ASSERT_EQ(L::parse("cpu:default"), make_lc(D::CPU, L::DEVICE_CPU_DEFAULT, 0));
48 ASSERT_EQ(L::parse("multithread2:0"), make_lc(D::MULTITHREAD, 0, 2));
49 ASSERT_EQ(L::parse("multithread1:3"), make_lc(D::MULTITHREAD, 3, 1));
50 ASSERT_EQ(
51 L::parse("multithread:default:2"),
52 make_lc(D::MULTITHREAD, L::DEVICE_MULTITHREAD_DEFAULT, 2));
53
54 ASSERT_THROW(L::parse("apu"), MegBrainError);
55 ASSERT_THROW(L::parse("fpgbx"), MegBrainError);
56 ASSERT_THROW(L::parse("cab0"), MegBrainError);
57 ASSERT_THROW(L::parse("cpu"), MegBrainError);
58 ASSERT_THROW(L::parse("cpu-1"), MegBrainError);
59 ASSERT_THROW(L::parse("cpu0:"), MegBrainError);
60 ASSERT_THROW(L::parse("cpu0:x"), MegBrainError);
61 ASSERT_THROW(L::parse("cpu2:23x"), MegBrainError);
62 ASSERT_THROW(L::parse("rcom0"), MegBrainError);
63 ASSERT_THROW(L::parse("cmabricon0"), MegBrainError);
64 ASSERT_THROW(L::parse("atlast0"), MegBrainError);
65 ASSERT_THROW(L::parse("multithread"), MegBrainError);
66 ASSERT_THROW(L::parse("multithread1:"), MegBrainError);
67 ASSERT_THROW(L::parse("multithread1:default"), MegBrainError);
68 ASSERT_THROW(L::parse("multithread1:default:0"), MegBrainError);
69}
70
71TEST(TestCompNode, SetDefaultDev) {
72 REQUIRE_GPU(3);

Callers

nothing calls this directly

Calls 15

parseFunction · 0.85
to_stringFunction · 0.85
check_gpu_availableFunction · 0.85
get_device_countFunction · 0.85
set_prealloc_configFunction · 0.85
dispatchFunction · 0.85
to_physicalMethod · 0.80
emplace_backMethod · 0.80
joinMethod · 0.80
device_wait_eventMethod · 0.80
finishedMethod · 0.80

Tested by

no test coverage detected