// // TransposeSpeed.cpp // MNNTests // // Created by MNN on 2020/09/27. // Copyright © 2018, Alibaba Group Holding Limited // #include #include #include #include #define MNN_OPEN_TIME_TRACE #include #include "MNNTestSuite.h" using namespace MNN::Express; #define WIDTH 501 #define HEIGHT 243 #define TIME 100 class TransposeSpeed : public MNNTestCase { public: void SpeedTest() { auto x = _Input({1, 1, HEIGHT, WIDTH}, NCHW, halide_type_of()); auto output = _Transpose(x, {0, 3, 2, 1}); { AUTOTIME; for (int i = 0; i < TIME; ++i) { x->writeMap(); output->readMap(); } } } bool CorrectTest() { auto x = _Input({1, 1, HEIGHT, WIDTH}, NCHW, halide_type_of()); std::vector input(WIDTH * HEIGHT); for (int u=0; uwriteMap(); ::memcpy(xPtr, input.data(), HEIGHT * WIDTH * sizeof(int)); auto output = _Transpose(x, {0, 3, 2, 1}); auto yPtr = output->readMap(); auto outputInfo = output->getInfo(); MNN_PRINT("Output: %d, %d, %d, %d\n", outputInfo->dim[0], outputInfo->dim[1], outputInfo->dim[2], outputInfo->dim[3]); for (int u=0; u