diff --git a/tests/test-conv2d.cpp b/tests/test-conv2d.cpp index 41807a6b80..4bb6c692ba 100644 --- a/tests/test-conv2d.cpp +++ b/tests/test-conv2d.cpp @@ -297,34 +297,351 @@ std::vector compute_graph(const test_model & model, ggml_gallocr_t allocr int main(void) { ggml_time_init(); + + double time_iter0 = 0.0, time_iter1 = 0.0; std::vector> configs = { - std::make_tuple(64,64,48,64,3,3), - std::make_tuple(320,320,104,152,3,3), - std::make_tuple(640,640,52,76,3,3), - std::make_tuple(640,640,104,152,3,3), - std::make_tuple(960,320,104,152,3,3), - std::make_tuple(1280,1280,26,38,3,3), - std::make_tuple(4,320,96,128,3,3), - std::make_tuple(320,4,96,128,3,3), - std::make_tuple(4,320,64,96,3,3), - std::make_tuple(320,4,64,96,3,3), - std::make_tuple(640,640,96,128,3,3), - std::make_tuple(1280,1280,26,38,1,1), - std::make_tuple(256,128,768,1024,3,3), - std::make_tuple(128,3,768,1024,3,3), - std::make_tuple(256,128,768,1024,1,1), - std::make_tuple(512,256,384,512,1,1), - std::make_tuple(1280,640,52,76,3,3), - std::make_tuple(1920,1280,26,38,3,3), - std::make_tuple(2560,1280,26,38,3,3), - std::make_tuple(320,1280,26,38,3,3), - std::make_tuple(512,512,104,152,3,3), - std::make_tuple(512,512,208,304,3,3), - std::make_tuple(512,256,416,608,3,3), - std::make_tuple(256,128,832,1216,3,3), - std::make_tuple(256,256,832,1216,3,3), + // std::make_tuple(64,64,48,64,3,3), + // std::make_tuple(320,320,104,152,3,3), + // std::make_tuple(640,640,52,76,3,3), + // std::make_tuple(640,640,104,152,3,3), + // std::make_tuple(960,320,104,152,3,3), + // std::make_tuple(1280,1280,26,38,3,3), + // std::make_tuple(4,320,96,128,3,3), + // std::make_tuple(320,4,96,128,3,3), + // std::make_tuple(4,320,64,96,3,3), + // std::make_tuple(320,4,64,96,3,3), + // std::make_tuple(640,640,96,128,3,3), + // std::make_tuple(1280,1280,26,38,1,1), + // std::make_tuple(256,128,768,1024,3,3), + // std::make_tuple(128,3,768,1024,3,3), + // std::make_tuple(256,128,768,1024,1,1), + // std::make_tuple(512,256,384,512,1,1), + // std::make_tuple(1280,640,52,76,3,3), + // std::make_tuple(1920,1280,26,38,3,3), + // std::make_tuple(2560,1280,26,38,3,3), + // std::make_tuple(320,1280,26,38,3,3), + // std::make_tuple(512,512,104,152,3,3), + // std::make_tuple(512,512,208,304,3,3), + // std::make_tuple(512,256,416,608,3,3), + // std::make_tuple(256,128,832,1216,3,3), + // std::make_tuple(256,256,832,1216,3,3), // std::make_tuple(320,256,1024,1920) // std::make_tuple(32,64,58,58,3,3) + + //512x512 + std::make_tuple(4,320,64,64,3,3), + std::make_tuple(320,320,64,64,3,3), + std::make_tuple(320,320,64,64,3,3), + std::make_tuple(320,320,64,64,3,3), + std::make_tuple(320,320,64,64,3,3), + std::make_tuple(320,320,64,64,3,3), + std::make_tuple(320,640,32,32,3,3), + std::make_tuple(640,640,32,32,3,3), + std::make_tuple(320,640,32,32,3,3), + std::make_tuple(640,640,32,32,3,3), + std::make_tuple(640,640,32,32,3,3), + std::make_tuple(640,640,32,32,3,3), + std::make_tuple(640,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(640,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(2560,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(2560,1280,16,16,3,3), + std::make_tuple(2560,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(2560,1280,16,16,3,3), + std::make_tuple(1920,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(1920,1280,16,16,3,3), + std::make_tuple(1280,1280,32,32,3,3), + std::make_tuple(1920,640,32,32,3,3), + std::make_tuple(640,640,32,32,3,3), + std::make_tuple(1920,640,32,32,3,3), + std::make_tuple(1280,640,32,32,3,3), + std::make_tuple(640,640,32,32,3,3), + std::make_tuple(1280,640,32,32,3,3), + std::make_tuple(960,640,32,32,3,3), + std::make_tuple(640,640,32,32,3,3), + std::make_tuple(960,640,32,32,3,3), + std::make_tuple(640,640,64,64,3,3), + std::make_tuple(960,320,64,64,3,3), + std::make_tuple(320,320,64,64,3,3), + std::make_tuple(960,320,64,64,3,3), + std::make_tuple(640,320,64,64,3,3), + std::make_tuple(320,320,64,64,3,3), + std::make_tuple(640,320,64,64,3,3), + std::make_tuple(640,320,64,64,3,3), + std::make_tuple(320,320,64,64,3,3), + std::make_tuple(640,320,64,64,3,3), + std::make_tuple(320,4,64,64,3,3), + std::make_tuple(4,320,64,64,3,3), + std::make_tuple(320,320,64,64,3,3), + std::make_tuple(320,320,64,64,3,3), + std::make_tuple(320,320,64,64,3,3), + std::make_tuple(320,320,64,64,3,3), + std::make_tuple(320,320,64,64,3,3), + std::make_tuple(320,640,32,32,3,3), + std::make_tuple(640,640,32,32,3,3), + std::make_tuple(320,640,32,32,3,3), + std::make_tuple(640,640,32,32,3,3), + std::make_tuple(640,640,32,32,3,3), + std::make_tuple(640,640,32,32,3,3), + std::make_tuple(640,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(640,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(2560,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(2560,1280,16,16,3,3), + std::make_tuple(2560,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(2560,1280,16,16,3,3), + std::make_tuple(1920,1280,16,16,3,3), + std::make_tuple(1280,1280,16,16,3,3), + std::make_tuple(1920,1280,16,16,3,3), + std::make_tuple(1280,1280,32,32,3,3), + std::make_tuple(1920,640,32,32,3,3), + std::make_tuple(640,640,32,32,3,3), + std::make_tuple(1920,640,32,32,3,3), + std::make_tuple(1280,640,32,32,3,3), + std::make_tuple(640,640,32,32,3,3), + std::make_tuple(1280,640,32,32,3,3), + std::make_tuple(960,640,32,32,3,3), + std::make_tuple(640,640,32,32,3,3), + std::make_tuple(960,640,32,32,3,3), + std::make_tuple(640,640,64,64,3,3), + std::make_tuple(960,320,64,64,3,3), + std::make_tuple(320,320,64,64,3,3), + std::make_tuple(960,320,64,64,3,3), + std::make_tuple(640,320,64,64,3,3), + std::make_tuple(320,320,64,64,3,3), + std::make_tuple(640,320,64,64,3,3), + std::make_tuple(640,320,64,64,3,3), + std::make_tuple(320,320,64,64,3,3), + std::make_tuple(640,320,64,64,3,3), + std::make_tuple(320,4,64,64,3,3), + + //768x768 + // std::make_tuple(4,320,96,96,3,3), + // std::make_tuple(320,320,96,96,3,3), + // std::make_tuple(320,320,96,96,3,3), + // std::make_tuple(320,320,96,96,3,3), + // std::make_tuple(320,320,96,96,3,3), + // std::make_tuple(320,320,96,96,3,3), + // std::make_tuple(320,640,48,48,3,3), + // std::make_tuple(640,640,48,48,3,3), + // std::make_tuple(320,640,48,48,3,3), + // std::make_tuple(640,640,48,48,3,3), + // std::make_tuple(640,640,48,48,3,3), + // std::make_tuple(640,640,48,48,3,3), + // std::make_tuple(640,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(640,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(2560,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(2560,1280,24,24,3,3), + // std::make_tuple(2560,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(2560,1280,24,24,3,3), + // std::make_tuple(1920,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(1920,1280,24,24,3,3), + // std::make_tuple(1280,1280,48,48,3,3), + // std::make_tuple(1920,640,48,48,3,3), + // std::make_tuple(640,640,48,48,3,3), + // std::make_tuple(1920,640,48,48,3,3), + // std::make_tuple(1280,640,48,48,3,3), + // std::make_tuple(640,640,48,48,3,3), + // std::make_tuple(1280,640,48,48,3,3), + // std::make_tuple(960,640,48,48,3,3), + // std::make_tuple(640,640,48,48,3,3), + // std::make_tuple(960,640,48,48,3,3), + // std::make_tuple(640,640,96,96,3,3), + // std::make_tuple(960,320,96,96,3,3), + // std::make_tuple(320,320,96,96,3,3), + // std::make_tuple(960,320,96,96,3,3), + // std::make_tuple(640,320,96,96,3,3), + // std::make_tuple(320,320,96,96,3,3), + // std::make_tuple(640,320,96,96,3,3), + // std::make_tuple(640,320,96,96,3,3), + // std::make_tuple(320,320,96,96,3,3), + // std::make_tuple(640,320,96,96,3,3), + // std::make_tuple(320,4,96,96,3,3), + // std::make_tuple(4,320,96,96,3,3), + // std::make_tuple(320,320,96,96,3,3), + // std::make_tuple(320,320,96,96,3,3), + // std::make_tuple(320,320,96,96,3,3), + // std::make_tuple(320,320,96,96,3,3), + // std::make_tuple(320,320,96,96,3,3), + // std::make_tuple(320,640,48,48,3,3), + // std::make_tuple(640,640,48,48,3,3), + // std::make_tuple(320,640,48,48,3,3), + // std::make_tuple(640,640,48,48,3,3), + // std::make_tuple(640,640,48,48,3,3), + // std::make_tuple(640,640,48,48,3,3), + // std::make_tuple(640,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(640,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(2560,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(2560,1280,24,24,3,3), + // std::make_tuple(2560,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(2560,1280,24,24,3,3), + // std::make_tuple(1920,1280,24,24,3,3), + // std::make_tuple(1280,1280,24,24,3,3), + // std::make_tuple(1920,1280,24,24,3,3), + // std::make_tuple(1280,1280,48,48,3,3), + // std::make_tuple(1920,640,48,48,3,3), + // std::make_tuple(640,640,48,48,3,3), + // std::make_tuple(1920,640,48,48,3,3), + // std::make_tuple(1280,640,48,48,3,3), + // std::make_tuple(640,640,48,48,3,3), + // std::make_tuple(1280,640,48,48,3,3), + // std::make_tuple(960,640,48,48,3,3), + // std::make_tuple(640,640,48,48,3,3), + // std::make_tuple(960,640,48,48,3,3), + // std::make_tuple(640,640,96,96,3,3), + // std::make_tuple(960,320,96,96,3,3), + // std::make_tuple(320,320,96,96,3,3), + // std::make_tuple(960,320,96,96,3,3), + // std::make_tuple(640,320,96,96,3,3), + // std::make_tuple(320,320,96,96,3,3), + // std::make_tuple(640,320,96,96,3,3), + // std::make_tuple(640,320,96,96,3,3), + // std::make_tuple(320,320,96,96,3,3), + // std::make_tuple(640,320,96,96,3,3), + // std::make_tuple(320,4,96,96,3,3), + + + //1024x1024 + // std::make_tuple(4,320,128,128,3,3), + // std::make_tuple(320,320,128,128,3,3), + // std::make_tuple(320,320,128,128,3,3), + // std::make_tuple(320,320,128,128,3,3), + // std::make_tuple(320,320,128,128,3,3), + // std::make_tuple(320,320,128,128,3,3), + // std::make_tuple(320,640,64,64,3,3), + // std::make_tuple(640,640,64,64,3,3), + // std::make_tuple(320,640,64,64,3,3), + // std::make_tuple(640,640,64,64,3,3), + // std::make_tuple(640,640,64,64,3,3), + // std::make_tuple(640,640,64,64,3,3), + // std::make_tuple(640,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(640,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(2560,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(2560,1280,32,32,3,3), + // std::make_tuple(2560,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(2560,1280,32,32,3,3), + // std::make_tuple(1920,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(1920,1280,32,32,3,3), + // std::make_tuple(1280,1280,64,64,3,3), + // std::make_tuple(1920,640,64,64,3,3), + // std::make_tuple(640,640,64,64,3,3), + // std::make_tuple(1920,640,64,64,3,3), + // std::make_tuple(1280,640,64,64,3,3), + // std::make_tuple(640,640,64,64,3,3), + // std::make_tuple(1280,640,64,64,3,3), + // std::make_tuple(960,640,64,64,3,3), + // std::make_tuple(640,640,64,64,3,3), + // std::make_tuple(960,640,64,64,3,3), + // std::make_tuple(640,640,128,128,3,3), + // std::make_tuple(960,320,128,128,3,3), + // std::make_tuple(320,320,128,128,3,3), + // std::make_tuple(960,320,128,128,3,3), + // std::make_tuple(640,320,128,128,3,3), + // std::make_tuple(320,320,128,128,3,3), + // std::make_tuple(640,320,128,128,3,3), + // std::make_tuple(640,320,128,128,3,3), + // std::make_tuple(320,320,128,128,3,3), + // std::make_tuple(640,320,128,128,3,3), + // std::make_tuple(320,4,128,128,3,3), + // std::make_tuple(4,320,128,128,3,3), + // std::make_tuple(320,320,128,128,3,3), + // std::make_tuple(320,320,128,128,3,3), + // std::make_tuple(320,320,128,128,3,3), + // std::make_tuple(320,320,128,128,3,3), + // std::make_tuple(320,320,128,128,3,3), + // std::make_tuple(320,640,64,64,3,3), + // std::make_tuple(640,640,64,64,3,3), + // std::make_tuple(320,640,64,64,3,3), + // std::make_tuple(640,640,64,64,3,3), + // std::make_tuple(640,640,64,64,3,3), + // std::make_tuple(640,640,64,64,3,3), + // std::make_tuple(640,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(640,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(2560,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(2560,1280,32,32,3,3), + // std::make_tuple(2560,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(2560,1280,32,32,3,3), + // std::make_tuple(1920,1280,32,32,3,3), + // std::make_tuple(1280,1280,32,32,3,3), + // std::make_tuple(1920,1280,32,32,3,3), + // std::make_tuple(1280,1280,64,64,3,3), + // std::make_tuple(1920,640,64,64,3,3), + // std::make_tuple(640,640,64,64,3,3), + // std::make_tuple(1920,640,64,64,3,3), + // std::make_tuple(1280,640,64,64,3,3), + // std::make_tuple(640,640,64,64,3,3), + // std::make_tuple(1280,640,64,64,3,3), + // std::make_tuple(960,640,64,64,3,3), + // std::make_tuple(640,640,64,64,3,3), + // std::make_tuple(960,640,64,64,3,3), + // std::make_tuple(640,640,128,128,3,3), + // std::make_tuple(960,320,128,128,3,3), + // std::make_tuple(320,320,128,128,3,3), + // std::make_tuple(960,320,128,128,3,3), + // std::make_tuple(640,320,128,128,3,3), + // std::make_tuple(320,320,128,128,3,3), + // std::make_tuple(640,320,128,128,3,3), + // std::make_tuple(640,320,128,128,3,3), + // std::make_tuple(320,320,128,128,3,3), + // std::make_tuple(640,320,128,128,3,3), + // std::make_tuple(320,4,128,128,3,3), + + }; int k = 0; @@ -377,6 +694,10 @@ int main(void) fprintf(stderr, "| --- | --- | --- | --- | --- \n"); } + time_iter0 += run_time0; + time_iter1 += run_time1; + + fprintf(stderr, " | (%d, %d, %d, %d, %d, %d) | %.2f ms | %.2f MB | %.2f ms | %.2f MB\n", std::get<0>(c), std::get<1>(c), std::get<2>(c), std::get<3>(c), std::get<4>(c), std::get<5>(c), run_time0, mem_size0/1024.0f/1024.0f, @@ -401,6 +722,7 @@ int main(void) ggml_gallocr_free(allocr); } + printf("| 1 unet iter takes| %.2f ms | | %.2f ms | \n", time_iter0, time_iter1); // printf("\nPerforming test:\n"); return 0;