@@ -38,9 +38,9 @@ struct test_model {
3838
3939
4040
41- void load_model (test_model & model, int ic, int oc, int iw, int ih, bool use_gpu = false ) {
41+ void load_model (test_model & model, int ic, int oc, int iw, int ih, int kw = 3 , int kh = 3 , bool use_gpu = false ) {
4242 // create data
43- int KW = 3 , KH = 3 , IC = ic, OC = oc;
43+ int KW = kw , KH = kh , IC = ic, OC = oc;
4444 int IW = iw, IH = ih, N = 1 ;
4545 srand (time (NULL ));
4646
@@ -347,29 +347,33 @@ std::vector<float> compute_graph(const test_model & model, ggml_gallocr_t allocr
347347int main (void )
348348{
349349 ggml_time_init ();
350- std::vector<std::tuple<int , int , int , int >> configs = {
351- // std::make_tuple(64,64,48,64),
352- // std::make_tuple(320,320,104,152),
353- // std::make_tuple(640,640,52,76),
354- // std::make_tuple(640,640,104,152),
355- // std::make_tuple(960,320,104,152),
356- std::make_tuple (640 ,128 ,26 ,38 ),
357- // std::make_tuple(1280,640,52,76),
358- // std::make_tuple(1920,1280,26,38),
359- // std::make_tuple(2560,1280,26,38),
360- // std::make_tuple(512,512,104,152),
361- // std::make_tuple(512,512,208,304),
362- // std::make_tuple(512,256,416,608),
363- // std::make_tuple(256,128,832,1216),
364- // std::make_tuple(256,256,832,1216),
350+ std::vector<std::tuple<int , int , int , int , int , int >> configs = {
351+ std::make_tuple (64 ,64 ,48 ,64 ,3 ,3 ),
352+ std::make_tuple (320 ,320 ,104 ,152 ,3 ,3 ),
353+ std::make_tuple (640 ,640 ,52 ,76 ,3 ,3 ),
354+ std::make_tuple (640 ,640 ,104 ,152 ,3 ,3 ),
355+ std::make_tuple (960 ,320 ,104 ,152 ,3 ,3 ),
356+ std::make_tuple (1280 ,1280 ,26 ,38 ,3 ,3 ),
357+ std::make_tuple (1280 ,1280 ,26 ,38 ,1 ,1 ),
358+ std::make_tuple (256 ,128 ,768 ,1024 ,3 ,3 ),
359+ std::make_tuple (256 ,128 ,768 ,1024 ,1 ,1 ),
360+ std::make_tuple (1280 ,640 ,52 ,76 ,3 ,3 ),
361+ std::make_tuple (1920 ,1280 ,26 ,38 ,3 ,3 ),
362+ std::make_tuple (2560 ,1280 ,26 ,38 ,3 ,3 ),
363+ std::make_tuple (512 ,512 ,104 ,152 ,3 ,3 ),
364+ std::make_tuple (512 ,512 ,208 ,304 ,3 ,3 ),
365+ std::make_tuple (512 ,256 ,416 ,608 ,3 ,3 ),
366+ std::make_tuple (256 ,128 ,832 ,1216 ,3 ,3 ),
367+ std::make_tuple (256 ,256 ,832 ,1216 ,3 ,3 ),
365368 // std::make_tuple(320,256,1024,1920)
366369 };
367370
368371 int k = 0 ;
369372
370373 for (auto c : configs){
371374 test_model model;
372- load_model (model, std::get<0 >(c), std::get<1 >(c), std::get<2 >(c), std::get<3 >(c), true );
375+ load_model (model, std::get<0 >(c), std::get<1 >(c), std::get<2 >(c),
376+ std::get<3 >(c), std::get<4 >(c), std::get<5 >(c), true );
373377
374378 ggml_gallocr_t allocr = NULL ;
375379 allocr = ggml_gallocr_new (ggml_backend_get_default_buffer_type (model.backend ));
@@ -384,7 +388,7 @@ int main(void)
384388
385389
386390 struct ggml_cgraph * gf_res_0 = NULL ;
387- int iterations = 0 ;
391+ int iterations = 20 ;
388392
389393 double run_time0;
390394 std::vector<float > im2col_data = compute_graph (model, allocr, build_graph_0, iterations, &run_time0);
@@ -438,26 +442,26 @@ int main(void)
438442 fprintf (stderr, " | --- | --- | --- | --- | --- | --- | --- \n " );
439443 }
440444
441- fprintf (stderr, " | (%d, %d, %d, %d) | %.2f ms | %.2f MB | %.2f ms | %.2f MB | %.2f ms | %.2f MB\n " ,
442- std::get<0 >(c), std::get<1 >(c), std::get<2 >(c), std::get<3 >(c),
445+ fprintf (stderr, " | (%d, %d, %d, %d, %d, %d ) | %.2f ms | %.2f MB | %.2f ms | %.2f MB | %.2f ms | %.2f MB\n " ,
446+ std::get<0 >(c), std::get<1 >(c), std::get<2 >(c), std::get<3 >(c), std::get< 4 >(c), std::get< 5 >(c),
443447 run_time0, mem_size0/1024 .0f /1024 .0f ,
444448 run_time1, mem_size1/1024 .0f /1024 .0f ,
445449 run_time2, mem_size2/1024 .0f /1024 .0f );
446450
447451
448452 // for(int i = 0; i < ggml_nelements(wino_res); i++) {
449- for (int i = 0 ; i < 26 *38 ; i++) {
450- // for(int i = 0; i < conv2d_data.size(); i++) {
451- // float diff = fabs(conv2d_data[i] - wino_data[i]);
452- float diff = fabs (im2col_data[i] - wino_data[i]);
453- float diff1 = fabs (im2col_data[i] - conv2d_data[i]);
454- // if(diff > 1.e-4) {
455- printf (" (%7.3f, %7.3f, %7.3f, %.2f, %.2f, %d) \n " ,
456- im2col_data[i], conv2d_data[i],
457- wino_data[i], diff, diff1, i);
458- // break;
459- // }
460- }
453+ // for(int i = 0; i < 26*38; i++) {
454+ // // for(int i = 0; i < conv2d_data.size(); i++) {
455+ // // float diff = fabs(conv2d_data[i] - wino_data[i]);
456+ // float diff = fabs(im2col_data[i] - wino_data[i]);
457+ // float diff1 = fabs(im2col_data[i] - conv2d_data[i]);
458+ // // if(diff > 1.e-4) {
459+ // printf("(%7.3f, %7.3f, %7.3f, %.2f, %.2f, %d) \n",
460+ // im2col_data[i], conv2d_data[i],
461+ // wino_data[i], diff, diff1, i);
462+ // // break;
463+ // // }
464+ // }
461465
462466 ggml_free (model.ctx );
463467 ggml_backend_buffer_free (model.buffer );
0 commit comments