| 18 | } // namespace |
| 19 | |
| 20 | TEST_F(CUDA, RELAYOUT_TRANSPOSE) { |
| 21 | Checker<Relayout> checker(handle_cuda()); |
| 22 | auto run = [&](size_t batch, size_t m, size_t n, size_t c, DType dtype) { |
| 23 | checker.set_dtype(0, dtype).set_dtype(1, dtype); |
| 24 | TensorLayout src = {{batch, m, n, c}, dtype}; |
| 25 | src.init_contiguous_stride(); |
| 26 | TensorLayout dst = {{batch, m, n, c}, dtype}; |
| 27 | dst.stride[0] = m * n * c; |
| 28 | dst.stride[1] = c; |
| 29 | dst.stride[2] = m * c; |
| 30 | dst.stride[3] = 1; |
| 31 | checker.execl({src, dst}); |
| 32 | }; |
| 33 | run(16, 30, 40, 4, dtype::Int8()); |
| 34 | run(16, 20, 10, 4, dtype::Int8()); |
| 35 | run(1, 30, 20, 1, dtype::Int32()); |
| 36 | run(1, 20, 30, 1, dtype::Int32()); |
| 37 | run(1, 11, 21, 1, dtype::Float32()); |
| 38 | } |
| 39 | |
| 40 | #if MEGDNN_WITH_BENCHMARK |
| 41 | TEST_F(CUDA, BENCHMARK_RELAYOUT_TRANSPOSE) { |
nothing calls this directly
no test coverage detected