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

Method cmp_flt

dnn/test/cuda/chanwise_convolution3d.cpp:174–200  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

172 }
173
174 void cmp_flt() {
175 Tensor<> flt0_cpu(handle_cpu, lflt0), flt1_cpu(handle_cpu, lflt1);
176 float* p0 = flt0_cpu.ptr();
177 float* p1 = flt1_cpu.ptr();
178 megdnn_memcpy_D2H(handle, p0, flt0->ptr(), lflt0.span().dist_byte());
179 megdnn_memcpy_D2H(handle, p1, flt1->ptr(), lflt1.span().dist_byte());
180
181 size_t IC = lflt1[0], CHL_MUL = lflt1[1],
182 FSIZE = lflt1[3] * lflt1[4] * lflt1[5];
183
184 double tot_err = 0, tot_err_num = 0;
185 for (size_t i = 0; i < IC; ++i) {
186 for (size_t j = 0; j < CHL_MUL; ++j) {
187 auto t0 = p0 + ((i * CHL_MUL + j) * IC + i) * FSIZE,
188 t1 = p1 + (i * CHL_MUL + j) * FSIZE;
189 for (size_t k = 0; k < FSIZE; ++k) {
190 auto err = std::abs(diff(t0[k], t1[k]));
191 tot_err += err;
192 tot_err_num += 1;
193 ASSERT_LT(err, 1e-2) << "failed at " << i << " " << j << " " << k
194 << " vals=" << t0[k] << "," << t1[k];
195 }
196 }
197 }
198 auto avg_err = tot_err / tot_err_num;
199 ASSERT_LT(avg_err, 1e-4);
200 }
201};
202
203} // anonymous namespace

Callers 1

TEST_FFunction · 0.45

Calls 5

diffFunction · 0.85
dist_byteMethod · 0.80
spanMethod · 0.80
absFunction · 0.50
ptrMethod · 0.45

Tested by

no test coverage detected