From 3262fbf5f19f1b8a1aef848ce3b53805a6313f20 Mon Sep 17 00:00:00 2001 From: Alessandro Fanfarillo Date: Tue, 19 Dec 2023 17:08:30 +0000 Subject: [PATCH] New single kernel selection. To be improved. --- .../src/contraction/contraction_selection.cpp | 1120 +---------------- 1 file changed, 18 insertions(+), 1102 deletions(-) diff --git a/library/src/contraction/contraction_selection.cpp b/library/src/contraction/contraction_selection.cpp index 9b0cdf9f..98318c09 100644 --- a/library/src/contraction/contraction_selection.cpp +++ b/library/src/contraction/contraction_selection.cpp @@ -196,8 +196,7 @@ namespace hiptensor size_t unique_id = 0; - // TODO select unique_id - unique_id = 7255639152084218514ull; + unique_id = 6120540990338189451ull; if(auto candidate = candidates.find(unique_id); candidate != candidates.end()) { @@ -245,8 +244,7 @@ namespace hiptensor size_t unique_id = 0; - // TODO select unique_id - unique_id = 7255639152084218514ull; + unique_id = 6120540990338189451ull; if(auto candidate = candidates.find(unique_id); candidate != candidates.end()) { @@ -294,8 +292,7 @@ namespace hiptensor size_t unique_id = 0; - // TODO select unique_id - unique_id = 8689089455041651212ull; + unique_id = 10280293185028845655ull; if(auto candidate = candidates.find(unique_id); candidate != candidates.end()) { @@ -343,8 +340,7 @@ namespace hiptensor size_t unique_id = 0; - // TODO select unique_id - unique_id = 8689089455041651212ull; + unique_id = 10280293185028845655ull; if(auto candidate = candidates.find(unique_id); candidate != candidates.end()) { @@ -387,8 +383,7 @@ namespace hiptensor size_t unique_id = 0; - // TODO select unique_id - unique_id = 1078559130597702989ull; + unique_id = 351759774201305018ull; if(auto candidate = candidates.find(unique_id); candidate != candidates.end()) { @@ -430,8 +425,8 @@ namespace hiptensor int d6 = a_ms_ks_lengths[3]; size_t unique_id = 0; - // TODO select unique_id - unique_id = 6506383527825239632ull; + + unique_id = 351759774201305018ull; if(auto candidate = candidates.find(unique_id); candidate != candidates.end()) { @@ -473,8 +468,8 @@ namespace hiptensor int d6 = a_ms_ks_lengths[3]; size_t unique_id = 0; - // TODO select unique_id - unique_id = 14486135440731032454ull; + + unique_id = 5289804413527300000ull; if(auto candidate = candidates.find(unique_id); candidate != candidates.end()) { @@ -521,8 +516,8 @@ namespace hiptensor int d6 = a_ms_ks_lengths[3]; size_t unique_id = 0; - // TODO select unique_id - unique_id = 11931735240548010466ull; + + unique_id = 5289804413527300000ull; if(auto candidate = candidates.find(unique_id); candidate != candidates.end()) { @@ -565,329 +560,7 @@ namespace hiptensor size_t unique_id = 0; - if(d6 <= 43) - { - if(d5 <= 61) - { - if(d3 <= 236) - { - if(d4 <= 519) - { - if(d1 <= 744) - { - if(d6 <= 8) - { - unique_id = 4671301146928673150ull; - } - else - { - unique_id = 17304057348073251997ull; - } - } - else - { - unique_id = 4671301146928673150ull; - } - } - else - { - if(d3 <= 32) - { - unique_id = 17304057348073251997ull; - } - else - { - unique_id = 4671301146928673150ull; - } - } - } - else - { - if(d6 <= 2) - { - if(d5 <= 15) - { - unique_id = 17618515137355245877ull; - } - else - { - if(d6 <= 1) - { - unique_id = 10830479759059230274ull; - } - else - { - if(d5 <= 32) - { - unique_id = 10830479759059230274ull; - } - else - { - unique_id = 4671301146928673150ull; - } - } - } - } - else - { - if(d5 <= 2) - { - if(d6 <= 8) - { - unique_id = 17618515137355245877ull; - } - else - { - unique_id = 10830479759059230274ull; - } - } - else - { - if(d1 <= 54) - { - unique_id = 17304057348073251997ull; - } - else - { - if(d4 <= 218) - { - if(d5 <= 36) - { - unique_id = 4671301146928673150ull; - } - else - { - if(d6 <= 31) - { - unique_id = 4671301146928673150ull; - } - else - { - unique_id = 16481146763982821264ull; - } - } - } - else - { - if(d2 <= 50) - { - unique_id = 4671301146928673150ull; - } - else - { - if(d6 <= 31) - { - unique_id = 4671301146928673150ull; - } - else - { - if(d6 <= 32) - { - unique_id = 10830479759059230274ull; - } - else - { - unique_id = 4671301146928673150ull; - } - } - } - } - } - } - } - } - } - else - { - if(d6 <= 18) - { - unique_id = 4671301146928673150ull; - } - else - { - if(d4 <= 557) - { - if(d2 <= 165) - { - unique_id = 4671301146928673150ull; - } - else - { - unique_id = 16481146763982821264ull; - } - } - else - { - if(d5 <= 68) - { - unique_id = 4671301146928673150ull; - } - else - { - unique_id = 16481146763982821264ull; - } - } - } - } - } - else - { - if(d5 <= 24) - { - if(d3 <= 435) - { - if(d5 <= 7) - { - if(d5 <= 1) - { - unique_id = 3454820663416883703ull; - } - else - { - unique_id = 4671301146928673150ull; - } - } - else - { - if(d1 <= 744) - { - unique_id = 17304057348073251997ull; - } - else - { - if(d6 <= 60) - { - unique_id = 4671301146928673150ull; - } - else - { - unique_id = 17304057348073251997ull; - } - } - } - } - else - { - if(d5 <= 1) - { - unique_id = 3454820663416883703ull; - } - else - { - if(d5 <= 13) - { - if(d5 <= 7) - { - unique_id = 4671301146928673150ull; - } - else - { - unique_id = 4671301146928673150ull; - } - } - else - { - if(d6 <= 58) - { - unique_id = 4671301146928673150ull; - } - else - { - if(d1 <= 642) - { - unique_id = 17304057348073251997ull; - } - else - { - unique_id = 16481146763982821264ull; - } - } - } - } - } - } - else - { - if(d6 <= 54) - { - if(d5 <= 37) - { - if(d4 <= 556) - { - unique_id = 16481146763982821264ull; - } - else - { - unique_id = 4671301146928673150ull; - } - } - else - { - if(d1 <= 222) - { - if(d4 <= 556) - { - unique_id = 16481146763982821264ull; - } - else - { - unique_id = 4671301146928673150ull; - } - } - else - { - unique_id = 16481146763982821264ull; - } - } - } - else - { - if(d4 <= 44) - { - if(d3 <= 436) - { - unique_id = 17304057348073251997ull; - } - else - { - unique_id = 16481146763982821264ull; - } - } - else - { - if(d1 <= 220) - { - if(d2 <= 107) - { - unique_id = 17304057348073251997ull; - } - else - { - unique_id = 16481146763982821264ull; - } - } - else - { - if(d3 <= 72) - { - unique_id = 16481146763982821264ull; - } - else - { - if(d2 <= 18) - { - unique_id = 4671301146928673150ull; - } - else - { - unique_id = 16481146763982821264ull; - } - } - } - } - } - } - } + unique_id = 10644269696217152241ull; if(auto candidate = candidates.find(unique_id); candidate != candidates.end()) { @@ -930,322 +603,7 @@ namespace hiptensor size_t unique_id = 0; - if(d6 <= 9) - { - if(d6 <= 4) - { - unique_id = 9622108777680582053ull; - } - else - { - if(d5 <= 16) - { - unique_id = 9622108777680582053ull; - } - else - { - if(d2 <= 196) - { - unique_id = 9622108777680582053ull; - } - else - { - if(d1 <= 113) - { - unique_id = 9622108777680582053ull; - } - else - { - if(d3 <= 219) - { - unique_id = 9622108777680582053ull; - } - else - { - unique_id = 13257779901106960809ull; - } - } - } - } - } - } - else - { - if(d5 <= 8) - { - if(d6 <= 28) - { - unique_id = 9622108777680582053ull; - } - else - { - if(d5 <= 2) - { - if(d6 <= 58) - { - unique_id = 9622108777680582053ull; - } - else - { - if(d5 <= 1) - { - unique_id = 9622108777680582053ull; - } - else - { - unique_id = 13257779901106960809ull; - } - } - } - else - { - if(d2 <= 163) - { - unique_id = 9622108777680582053ull; - } - else - { - if(d1 <= 465) - { - unique_id = 9622108777680582053ull; - } - else - { - unique_id = 13257779901106960809ull; - } - } - } - } - } - else - { - if(d3 <= 121) - { - if(d4 <= 483) - { - if(d6 <= 29) - { - if(d5 <= 32) - { - unique_id = 9622108777680582053ull; - } - else - { - unique_id = 222393107113976106ull; - } - } - else - { - if(d5 <= 39) - { - unique_id = 222393107113976106ull; - } - else - { - if(d2 <= 152) - { - unique_id = 222393107113976106ull; - } - else - { - unique_id = 13257779901106960809ull; - } - } - } - } - else - { - if(d3 <= 37) - { - unique_id = 222393107113976106ull; - } - else - { - if(d6 <= 29) - { - if(d5 <= 32) - { - unique_id = 9622108777680582053ull; - } - else - { - unique_id = 15066925687960442338ull; - } - } - else - { - unique_id = 15066925687960442338ull; - } - } - } - } - else - { - if(d4 <= 135) - { - if(d3 <= 413) - { - if(d6 <= 30) - { - if(d5 <= 32) - { - unique_id = 9622108777680582053ull; - } - else - { - unique_id = 222393107113976106ull; - } - } - else - { - if(d5 <= 39) - { - unique_id = 222393107113976106ull; - } - else - { - unique_id = 13257779901106960809ull; - } - } - } - else - { - if(d4 <= 36) - { - unique_id = 222393107113976106ull; - } - else - { - if(d2 <= 120) - { - unique_id = 222393107113976106ull; - } - else - { - if(d6 <= 32) - { - if(d5 <= 32) - { - unique_id = 13257779901106960809ull; - } - else - { - unique_id = 15066925687960442338ull; - } - } - else - { - unique_id = 15066925687960442338ull; - } - } - } - } - } - else - { - if(d2 <= 115) - { - if(d6 <= 40) - { - if(d2 <= 51) - { - unique_id = 222393107113976106ull; - } - else - { - if(d5 <= 32) - { - unique_id = 9622108777680582053ull; - } - else - { - if(d4 <= 486) - { - unique_id = 222393107113976106ull; - } - else - { - unique_id = 15066925687960442338ull; - } - } - } - } - else - { - if(d1 <= 235) - { - unique_id = 222393107113976106ull; - } - else - { - if(d2 <= 22) - { - unique_id = 222393107113976106ull; - } - else - { - unique_id = 15066925687960442338ull; - } - } - } - } - else - { - if(d6 <= 32) - { - if(d5 <= 26) - { - if(d6 <= 23) - { - if(d1 <= 116) - { - unique_id = 9622108777680582053ull; - } - else - { - unique_id = 13257779901106960809ull; - } - } - else - { - if(d5 <= 18) - { - unique_id = 13257779901106960809ull; - } - else - { - unique_id = 15066925687960442338ull; - } - } - } - else - { - if(d5 <= 32) - { - if(d6 <= 16) - { - unique_id = 13257779901106960809ull; - } - else - { - unique_id = 15066925687960442338ull; - } - } - else - { - unique_id = 15066925687960442338ull; - } - } - } - else - { - unique_id = 15066925687960442338ull; - } - } - } - } - } - } + unique_id = 10644269696217152241ull; if(auto candidate = candidates.find(unique_id); candidate != candidates.end()) { @@ -1288,8 +646,8 @@ namespace hiptensor int d6 = a_ms_ks_lengths[3]; size_t unique_id = 0; - // TODO select unique_id - unique_id = 11912251726020349830ull; + + unique_id = 12726461910769859561ull; if(auto candidate = candidates.find(unique_id); candidate != candidates.end()) { @@ -1331,8 +689,7 @@ namespace hiptensor int d6 = a_ms_ks_lengths[3]; size_t unique_id = 0; - unique_id = 15375432626310194825ull; - // TODO select unique_id + unique_id = 12726461910769859561ull; if(auto candidate = candidates.find(unique_id); candidate != candidates.end()) { @@ -1376,238 +733,7 @@ namespace hiptensor size_t unique_id = 0; - if(d5 <= 36) - { - if(d6 <= 35) - { - if(d1 <= 763) - { - if(d6 <= 3) - { - if(d5 <= 8) - { - unique_id = 9769367948782541618ull; - } - else - { - unique_id = 3344638327382374968ull; - } - } - else - { - unique_id = 3344638327382374968ull; - } - } - else - { - if(d6 <= 24) - { - unique_id = 3344638327382374968ull; - } - else - { - if(d5 <= 17) - { - unique_id = 3344638327382374968ull; - } - else - { - unique_id = 2770278462698889442ull; - } - } - } - } - else - { - if(d5 <= 9) - { - unique_id = 3344638327382374968ull; - } - else - { - if(d1 <= 759) - { - if(d6 <= 67) - { - if(d3 <= 535) - { - unique_id = 3344638327382374968ull; - } - else - { - if(d4 <= 615) - { - unique_id = 3344638327382374968ull; - } - else - { - unique_id = 2770278462698889442ull; - } - } - } - else - { - if(d5 <= 25) - { - if(d4 <= 428) - { - unique_id = 3344638327382374968ull; - } - else - { - unique_id = 2770278462698889442ull; - } - } - else - { - unique_id = 16588612317409292216ull; - } - } - } - else - { - if(d6 <= 64) - { - if(d3 <= 65) - { - unique_id = 3344638327382374968ull; - } - else - { - unique_id = 2770278462698889442ull; - } - } - else - { - if(d5 <= 25) - { - unique_id = 2770278462698889442ull; - } - else - { - unique_id = 16588612317409292216ull; - } - } - } - } - } - } - else - { - if(d6 <= 33) - { - if(d6 <= 8) - { - unique_id = 3344638327382374968ull; - } - else - { - if(d2 <= 565) - { - if(d1 <= 646) - { - unique_id = 3344638327382374968ull; - } - else - { - if(d6 <= 27) - { - unique_id = 3344638327382374968ull; - } - else - { - if(d5 <= 53) - { - unique_id = 2770278462698889442ull; - } - else - { - unique_id = 16588612317409292216ull; - } - } - } - } - else - { - if(d6 <= 20) - { - if(d3 <= 168) - { - unique_id = 3344638327382374968ull; - } - else - { - unique_id = 2770278462698889442ull; - } - } - else - { - if(d5 <= 64) - { - if(d1 <= 648) - { - unique_id = 3344638327382374968ull; - } - else - { - unique_id = 2770278462698889442ull; - } - } - else - { - if(d6 <= 25) - { - unique_id = 3344638327382374968ull; - } - else - { - unique_id = 16588612317409292216ull; - } - } - } - } - } - } - else - { - if(d5 <= 45) - { - if(d6 <= 50) - { - if(d3 <= 168) - { - unique_id = 3344638327382374968ull; - } - else - { - unique_id = 2770278462698889442ull; - } - } - else - { - unique_id = 16588612317409292216ull; - } - } - else - { - if(d6 <= 43) - { - if(d5 <= 52) - { - unique_id = 2770278462698889442ull; - } - else - { - unique_id = 16588612317409292216ull; - } - } - else - { - unique_id = 16588612317409292216ull; - } - } - } - } + unique_id = 3344638327382374968ull; if(auto candidate = candidates.find(unique_id); candidate != candidates.end()) { @@ -1650,217 +776,7 @@ namespace hiptensor size_t unique_id = 0; - if(d5 <= 39) - { - if(d3 <= 937) - { - if(d6 <= 1) - { - unique_id = 1830537384143755749ull; - } - else - { - if(d4 <= 754) - { - if(d5 <= 33) - { - if(d5 <= 1) - { - if(d6 <= 25) - { - unique_id = 3423207643344265161ull; - } - else - { - unique_id = 1830537384143755749ull; - } - } - else - { - if(d6 <= 6) - { - if(d5 <= 8) - { - unique_id = 3423207643344265161ull; - } - else - { - unique_id = 1830537384143755749ull; - } - } - else - { - unique_id = 1830537384143755749ull; - } - } - } - else - { - unique_id = 1830537384143755749ull; - } - } - else - { - if(d1 <= 404) - { - unique_id = 1830537384143755749ull; - } - else - { - if(d6 <= 50) - { - unique_id = 1830537384143755749ull; - } - else - { - if(d5 <= 33) - { - unique_id = 1830537384143755749ull; - } - else - { - unique_id = 4992687403741300893ull; - } - } - } - } - } - } - else - { - unique_id = 1830537384143755749ull; - } - } - else - { - if(d6 <= 32) - { - if(d2 <= 832) - { - unique_id = 1830537384143755749ull; - } - else - { - if(d6 <= 8) - { - unique_id = 1830537384143755749ull; - } - else - { - if(d6 <= 24) - { - unique_id = 17689908062647780665ull; - } - else - { - if(d5 <= 64) - { - unique_id = 1830537384143755749ull; - } - else - { - unique_id = 4992687403741300893ull; - } - } - } - } - } - else - { - if(d6 <= 46) - { - if(d5 <= 54) - { - if(d1 <= 460) - { - unique_id = 1830537384143755749ull; - } - else - { - if(d5 <= 49) - { - unique_id = 1830537384143755749ull; - } - else - { - unique_id = 4992687403741300893ull; - } - } - } - else - { - if(d1 <= 182) - { - if(d5 <= 65) - { - unique_id = 1830537384143755749ull; - } - else - { - unique_id = 4992687403741300893ull; - } - } - else - { - if(d2 <= 33) - { - unique_id = 1830537384143755749ull; - } - else - { - unique_id = 4992687403741300893ull; - } - } - } - } - else - { - if(d5 <= 49) - { - if(d6 <= 64) - { - if(d1 <= 411) - { - if(d2 <= 396) - { - unique_id = 1830537384143755749ull; - } - else - { - unique_id = 4992687403741300893ull; - } - } - else - { - unique_id = 4992687403741300893ull; - } - } - else - { - unique_id = 4992687403741300893ull; - } - } - else - { - if(d2 <= 53) - { - if(d1 <= 222) - { - unique_id = 1830537384143755749ull; - } - else - { - unique_id = 4992687403741300893ull; - } - } - else - { - unique_id = 4992687403741300893ull; - } - } - } - } - } + unique_id = 3344638327382374968ull; if(auto candidate = candidates.find(unique_id); candidate != candidates.end()) {