From db334d8242218a9f1c5a658bf163669f0e4ad3df Mon Sep 17 00:00:00 2001 From: haolan_he Date: Sat, 20 May 2023 23:35:56 +0800 Subject: [PATCH] add element wise sampling pytorch script --- benchmark/torchscripts/EWS.pt | Bin 0 -> 2550 bytes benchmark/torchscripts/ElementWiseSampling.py | 63 ++++++++++++++++++ test/SystemTest/EWSTest.cpp | 56 ++++++++++++++++ test/scripts/config_EWS.csv | 6 ++ test/torchscripts/EWS.pt | Bin 0 -> 2550 bytes test/torchscripts/ElementWiseSampling.py | 63 ++++++++++++++++++ 6 files changed, 188 insertions(+) create mode 100644 benchmark/torchscripts/EWS.pt create mode 100644 benchmark/torchscripts/ElementWiseSampling.py create mode 100644 test/SystemTest/EWSTest.cpp create mode 100644 test/scripts/config_EWS.csv create mode 100644 test/torchscripts/EWS.pt create mode 100644 test/torchscripts/ElementWiseSampling.py diff --git a/benchmark/torchscripts/EWS.pt b/benchmark/torchscripts/EWS.pt new file mode 100644 index 0000000000000000000000000000000000000000..384ba8edb3d3ce0e9108b69649deaa9cf1da6529 GIT binary patch literal 2550 zcmWIWW@cev;NW1u06Yw046fn9`YDMeiFyUuIc`ou3{e=MfhjpYz9hdWIU_!vD+oo4g>E>jQ#Yq@$#3!(J(rLfP1|n_WZCa0>nr0Nr z#53K)I7oZr?2A2IyEQi5dB(EFs%(R-gN?2FMrn_gEK?(%lu&rP?)N%{6a zKiBv+e*Ick@h27Ob3T(I_AsZL#WStbWI2l~C@ zn)lMiaq0|f%ZRrnA*-J#KaDiHD7VewudvwZ^L%n2inFF~pZoj^o9X!vR;l@CF3Z07 zF?s9z1jd|`45@eWF8jg-NdZQ7KbXa<8wiF#Pn$^wExks}A12A@EJ$(anPsp9^X0StqmQ z+h0wKZe8V)%PyULZI}DgSA}}oU*|6Wb+-6xY|fs@_-#z*e;RDpymy%=ZNtpe)%2qStoRLQD3y;%4_0BLw_Dk zs`w%>+b#7A)6EUcLLxa$^Lb{^>GIZUSIPX4Xr>{3O8bavxTjGZck&0pWv8#R$*+xF zyyEHaZQ>{9tyWn&t1SMO@sEgHQ~#GrJDp;h`?b$&Wqye}bdS?)b=u0RskPbnH7ySs zo>RX3UY^xr(n0mBJ2oA3-|F==@?E1Q`;lJXjWa%-5GZ9dm?A20Un|^uoByOI%<38f z_W4r_79V+V`Aw4Uyr<%`{}ib%&zQZnILV@9t-%kT*^}A~kWzZM7W)?Ol|99XicAh^AK-dncbuRj|n z=SMzh@|s|$?Z_o8Fjb*;mO^P+ldGBX?^otwk%?121)e;!W`c>8?ncu$9(#J_@A-?Y z@j6*l%xYbD_glB)(persUPfDA&pvVDhJ?w+xJ@5Fv0C@#+t-S(m;21k7;mOHDgVyz zn5!qny|-!ysA6hrShIclyP0JZ+BjTT>i2z{P`_VPg;DCo1-7>r80TJKy(_@V zT(v;_mx7Y(-vyj?6a6wv9EBqeH#;4Eq@QZY&}_hR*nnxVLEHYvKkOMNXV|h{HelWy zarU6iHExFuaUs{dFKF)Il&jHm5dW|t;n2o4w^{yle|6uKC;ma=^?3)57Xl`WOgUC% z^0Ho4T@iipbX2m(F3~iHCjAG|jp>)Su*7>`P<^r1;Ir?I2YEAo#x+?N_&aQ0VDJ4w z_Kv84=$E<~KV6&dKlEp8Tfl!PPd)LOB9qmki{3kK$T|LBe^|9;Z_~GzzHfH4OgG)t zxWWIz^sf`LBa6&UceTgtUm)MUQ~q^~;7&%z`l%nLH8nT=yL)C{%T(pu6S>-X9v8w@ z_bk3x&C$+UyIS{3)#jPWLh~}d7#70`Wx9L9nuhPAN63`2@1 zbnVE2#Eqi;3RF8ZS^~V;*mR%@ + +#define CATCH_CONFIG_MAIN +#include "catch.hpp" +#include +using namespace std; +using namespace INTELLI; +using namespace torch; +void runSingleThreadTest(std::string configName) { + ConfigMapPtr cfg = newConfigMap(); + cfg->fromFile(configName); + AMMBench::MatrixLoaderTable mLoaderTable; + uint64_t sketchDimension; + sketchDimension = cfg->tryU64("sketchDimension", 50, true); + uint64_t coreBind = cfg->tryU64("coreBind", 0, true); + UtilityFunctions::bind2Core((int) coreBind); + torch::set_num_threads(1); + std::string ptFile = cfg->tryString("ptFile", "torchscripts/FDAMM.pt", true); + + //uint64_t customResultName = cfg->tryU64("customResultName", 0, true); + INTELLI_INFO("Place me at core" + to_string(coreBind)); + INTELLI_INFO( + "with sketch" + to_string(sketchDimension)); + torch::jit::script::Module module; + INTELLI_INFO("Try pt file " + ptFile); + module = torch::jit::load(ptFile); + std::string matrixLoaderTag = cfg->tryString("matrixLoaderTag", "random", true); + auto matLoaderPtr = mLoaderTable.findMatrixLoader(matrixLoaderTag); + assert(matLoaderPtr); + matLoaderPtr->setConfig(cfg); + auto A = matLoaderPtr->getA(); + auto B = matLoaderPtr->getB(); + /*torch::manual_seed(114514); +//555 +auto A = torch::rand({(long) aRow, (long) aCol}); +auto B = torch::rand({(long) aCol, (long) bCol});*/ + INTELLI_INFO("Generation done, conducting..."); + ThreadPerf pef((int) coreBind); + pef.setPerfList(); + pef.start(); + auto C =module.forward({A, B, (long) sketchDimension}).toTensor(); + pef.end(); + std::string ruName = "default"; + + auto resultCsv = pef.resultToConfigMap(); + resultCsv->toFile(ruName + ".csv"); + INTELLI_INFO("Done. here is result"); + std::cout << resultCsv->toString() << endl; +} +TEST_CASE("Test the COLUMN ROW SAMPLINGS", "[short]") +{ + int a = 0; + runSingleThreadTest("scripts/config_EWS.csv"); + // place your test here + REQUIRE(a == 0); +} \ No newline at end of file diff --git a/test/scripts/config_EWS.csv b/test/scripts/config_EWS.csv new file mode 100644 index 00000000..c8e45cfa --- /dev/null +++ b/test/scripts/config_EWS.csv @@ -0,0 +1,6 @@ +key,value,type +aRow,100,U64 +aCol,1000,U64 +bCol,500,U64 +sketchDimension,25,U64 +ptFile,torchscripts/EWS.pt,String diff --git a/test/torchscripts/EWS.pt b/test/torchscripts/EWS.pt new file mode 100644 index 0000000000000000000000000000000000000000..384ba8edb3d3ce0e9108b69649deaa9cf1da6529 GIT binary patch literal 2550 zcmWIWW@cev;NW1u06Yw046fn9`YDMeiFyUuIc`ou3{e=MfhjpYz9hdWIU_!vD+oo4g>E>jQ#Yq@$#3!(J(rLfP1|n_WZCa0>nr0Nr z#53K)I7oZr?2A2IyEQi5dB(EFs%(R-gN?2FMrn_gEK?(%lu&rP?)N%{6a zKiBv+e*Ick@h27Ob3T(I_AsZL#WStbWI2l~C@ zn)lMiaq0|f%ZRrnA*-J#KaDiHD7VewudvwZ^L%n2inFF~pZoj^o9X!vR;l@CF3Z07 zF?s9z1jd|`45@eWF8jg-NdZQ7KbXa<8wiF#Pn$^wExks}A12A@EJ$(anPsp9^X0StqmQ z+h0wKZe8V)%PyULZI}DgSA}}oU*|6Wb+-6xY|fs@_-#z*e;RDpymy%=ZNtpe)%2qStoRLQD3y;%4_0BLw_Dk zs`w%>+b#7A)6EUcLLxa$^Lb{^>GIZUSIPX4Xr>{3O8bavxTjGZck&0pWv8#R$*+xF zyyEHaZQ>{9tyWn&t1SMO@sEgHQ~#GrJDp;h`?b$&Wqye}bdS?)b=u0RskPbnH7ySs zo>RX3UY^xr(n0mBJ2oA3-|F==@?E1Q`;lJXjWa%-5GZ9dm?A20Un|^uoByOI%<38f z_W4r_79V+V`Aw4Uyr<%`{}ib%&zQZnILV@9t-%kT*^}A~kWzZM7W)?Ol|99XicAh^AK-dncbuRj|n z=SMzh@|s|$?Z_o8Fjb*;mO^P+ldGBX?^otwk%?121)e;!W`c>8?ncu$9(#J_@A-?Y z@j6*l%xYbD_glB)(persUPfDA&pvVDhJ?w+xJ@5Fv0C@#+t-S(m;21k7;mOHDgVyz zn5!qny|-!ysA6hrShIclyP0JZ+BjTT>i2z{P`_VPg;DCo1-7>r80TJKy(_@V zT(v;_mx7Y(-vyj?6a6wv9EBqeH#;4Eq@QZY&}_hR*nnxVLEHYvKkOMNXV|h{HelWy zarU6iHExFuaUs{dFKF)Il&jHm5dW|t;n2o4w^{yle|6uKC;ma=^?3)57Xl`WOgUC% z^0Ho4T@iipbX2m(F3~iHCjAG|jp>)Su*7>`P<^r1;Ir?I2YEAo#x+?N_&aQ0VDJ4w z_Kv84=$E<~KV6&dKlEp8Tfl!PPd)LOB9qmki{3kK$T|LBe^|9;Z_~GzzHfH4OgG)t zxWWIz^sf`LBa6&UceTgtUm)MUQ~q^~;7&%z`l%nLH8nT=yL)C{%T(pu6S>-X9v8w@ z_bk3x&C$+UyIS{3)#jPWLh~}d7#70`Wx9L9nuhPAN63`2@1 zbnVE2#Eqi;3RF8ZS^~V;*mR%@