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

Function TEST_F

dnn/test/cuda/group_conv3d.cpp:13–53  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11namespace test {
12
13TEST_F(CUDA, GROUP_CONVOLUTION3D_FORWARD) {
14 bool is_int_available = check_compute_capability(6, 1);
15 static_cast<void>(is_int_available);
16 auto run = [&](size_t N, size_t IC, size_t ID, size_t IH, size_t IW, size_t FD,
17 size_t FH, size_t FW, size_t OC, size_t PD, size_t PH, size_t PW,
18 size_t SD, size_t SH, size_t SW, size_t DD, size_t DH, size_t DW,
19 size_t group) {
20 {
21 // float case
22 Checker<Convolution3D> checker(handle_cuda());
23 Convolution3D::Param param;
24 param.sparse = Convolution3D::Param::Sparse::GROUP;
25 param.pad_d = PD;
26 param.pad_h = PH;
27 param.pad_w = PW;
28 param.stride_d = SD;
29 param.stride_h = SH;
30 param.stride_w = SW;
31 param.dilate_d = DD;
32 param.dilate_h = DH;
33 param.dilate_w = DW;
34 auto ICpg = IC / group;
35 auto OCpg = OC / group;
36 checker.set_param(param).exec(
37 {{N, IC, ID, IH, IW}, {group, OCpg, ICpg, FD, FH, FW}, {}});
38 }
39 };
40 // normal case
41 run(2, 64, 7, 7, 7, 1, 1, 1, 32, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2);
42 run(1, 2, 2, 2, 2, 1, 1, 2, 2, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2);
43 run(2, 64, 7, 7, 7, 3, 3, 3, 32, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2);
44 // padded case
45 run(2, 32, 7, 7, 7, 3, 3, 3, 64, 2, 2, 2, 1, 1, 1, 1, 1, 1, 4);
46 // strided case
47 run(2, 32, 7, 7, 7, 3, 3, 3, 64, 0, 0, 0, 2, 2, 2, 1, 1, 1, 8);
48 // dilated case
49#if CUDNN_MAJOR >= 6
50 run(10, 4, 64, 64, 12, 3, 2, 2, 64, 0, 0, 0, 1, 1, 1, 3, 4, 2, 4);
51#else
52#endif
53}
54
55TEST_F(CUDA, GROUP_CONVOLUTION3D_FORWARD_1x1x1) {
56 auto run = [&](size_t N, size_t IC, size_t ID, size_t IH, size_t IW, size_t FD,

Callers

nothing calls this directly

Calls 3

check_compute_capabilityFunction · 0.85
runFunction · 0.50
execMethod · 0.45

Tested by

no test coverage detected