From edebcad2f16d8478bfe4c3f65d3a9e04709e3adb Mon Sep 17 00:00:00 2001 From: Hashim Sharif <hsharif3@tyler.cs.illinois.edu> Date: Tue, 17 Sep 2019 20:54:35 -0500 Subject: [PATCH] Moving Loop sources to use Int32 Labels --- .../dnn_sources/include/utils.h | 4 +- .../dnn_sources/src/lenet_int32.cc | 2 +- .../alexnet2_cifar10_test/labels32.bin | Bin 0 -> 40000 bytes .../alexnet_cifar10_test/labels32.bin | Bin 0 -> 40000 bytes .../benchmarks/alexnet/src/alexnet_loop.cpp | 9 ++- .../benchmarks/alexnet2/src/alexnet2_loop.cpp | 8 +- .../common/include/tensorUtils.h | 70 +++++++++++++----- 7 files changed, 65 insertions(+), 28 deletions(-) create mode 100644 llvm/projects/hpvm-tensor-rt/model_params/alexnet2_cifar10_test/labels32.bin create mode 100644 llvm/projects/hpvm-tensor-rt/model_params/alexnet_cifar10_test/labels32.bin diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h b/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h index 1eb32c2df8..a627f83e6b 100644 --- a/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h +++ b/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h @@ -412,7 +412,7 @@ uint8_t* readLabels(const char* labels_file, int num_labels){ -uint32_t* readLabels2(const char* labels_file, int num_labels){ +uint32_t* readLabels3(const char* labels_file, int num_labels){ uint32_t* labels = (uint32_t*) malloc(sizeof(uint32_t) * num_labels); FILE* file = fopen(labels_file, "rb"); @@ -453,7 +453,7 @@ uint8_t* readLabelsBatch(const char* labels_file, int start, int end){ } -uint32_t* readLabelsBatch2(const char* labels_file, int start, int end){ +uint32_t* readLabelsBatch3(const char* labels_file, int start, int end){ int num_labels = end - start; int file_header_size = sizeof(uint32_t) * start; diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/lenet_int32.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/lenet_int32.cc index 552826eebf..03a4137004 100644 --- a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/lenet_int32.cc +++ b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/lenet_int32.cc @@ -72,7 +72,7 @@ int main(){ void* var_17 = tensorRelu(var_16); void* var_18 = tensorSoftmax(var_17); - uint32_t* labels = readLabelsBatch2(labels_path.c_str(),start,end); + uint32_t* labels = readLabelsBatch3(labels_path.c_str(),start,end); float accuracy = computeAccuracy3(labels, var_18); final_accuracy += accuracy; diff --git a/llvm/projects/hpvm-tensor-rt/model_params/alexnet2_cifar10_test/labels32.bin b/llvm/projects/hpvm-tensor-rt/model_params/alexnet2_cifar10_test/labels32.bin new file mode 100644 index 0000000000000000000000000000000000000000..f2d1cdf8748dabd80aca7314824ed7fc0002524d GIT binary patch literal 40000 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 literal 0 HcmV?d00001 diff --git a/llvm/projects/hpvm-tensor-rt/model_params/alexnet_cifar10_test/labels32.bin b/llvm/projects/hpvm-tensor-rt/model_params/alexnet_cifar10_test/labels32.bin new file mode 100644 index 0000000000000000000000000000000000000000..f2d1cdf8748dabd80aca7314824ed7fc0002524d GIT binary patch literal 40000 zcmZ|N0g^3AYDCeNW~7n!zv1CT^-c3%CSgWFfa5s%>K}jo_1FLW?HB&~@4x*&{*M2+ zC};nB{$J<+`a3t*TW(g5{qsEhfByYeS8In^I8i;Eea-5_!-!0eF3~=9ISov&oAh}+ za(y#Jd+ij}VB|3IT>5J5-W_InbF`ZGHgASCgEu|$48HG?zPQthFPu5J^usV5yI;Ng z%rj9vt!7}-8@_LhPi|koh57WPBffalvwC>s>9h-un^P~sF*AAG-Zc0g;V%7dqB)JY z<+vF<9%erdcs1@V!u4I$<an5#8XY2THSf6Vd-t2r0t1gruI3FdZ?9-JzSSQleRvp7 zHE%mPY`fZhrSBHGx;<v$X<=zkpBheleODMWOnq-tgTu@0DewDu<Al?X!#k7b`r*x{ zQ4Zr>y!7c2?c=oeO~me@8%G##JZkAmLvOp7nKX%b`!4Z#o8vecEH~d>al*xuhBU&$ zsjHcXm&bSMtBb4K8x{^n+P&?=DK{g+mfOoj_2xxxKf~c|K5b_3bjzi$rw(J*{;b{l z@umZ=xgvaZJGePIxt=}kfY0^yaLLWdVdeJ9(_ddKH}B^3$XR>MvN-kCL^Yn)^j_)R zA;NW6-09a}o$~IWD_(Vb?ClnBnsK%_O=ejUHfx_5)@<A&ef4R_qb_!@dRVnQ4d&Y= z(u$YG*LTo^R~OaWXOF%&@7}cFX6ofQ%y@@4yWDv7@xanArvK8XqdQ^sIiC37n-SCL z2DA9NTupAC<K*>d=tj75J6YejcU<Px;_DVW;*_TezP;&aA0Bt8v$$!|E8=2mFw8D< zF!<x~t`5&c9DNg5HL)5#y1e7_maE}}=XR8b!560)_;_IH7IE#J_O=6;xn|+?!l(60 z-*0P%9<JYaNwZlwPq#eIX0P;WdN^6yVBkf1*m8Qe7cNcl_%3d0zc&-{!Ev*_)3G%@ z?mLDvXE!dnIR;~=o?PGl?ZY>x7muCl-KcJ#x*A^5JZtaHsl%kxOq%q}?0h%TVK--S zhV3olwga~L-tg7pq9HTSaBzFgh<fc&Gw&PV*5`d!eONX7c;E5T$1TPeM$HUOxw&}t zvb~cAJ4Ft^-_{;|GpyTpznU34)M3pqJvp5)`W$w>p2*V(8y7qtH5htD)=qspVf2~2 z?*NAfCa!WArVdx%yxcCc%v-K!9$sD_mp9Mg+Mx!^)p>dKE4|zMZF~pwT#bhEcF}>W z+vR$2avb=(N6*`w`(XN}-Kz$}%zK+(OS5Rsemn7U_2udNUHSFkyN{;caP7jIPS|b~ zVbTTH&1r}`jF_J0ajU_mL9K6um*Gsm-sbT5+$*M2&cdd#UFw{vrPEu!+Vsui)T1Fj zv2U$c|I$~7?Ity*#?AG;(to9=2QPiyqYk4Mr(OC?PhB6Uy4-FN7H6&oV~*>a!y&@8 zr&_yu?>BBQE;xMp_Iu0m!d16Jj!#`wljq*7-ve)WwX~-nA2+Wi;%ImLA|CVIi;tUO z>4uf-H4`=-JMrLSION>~-yV_0|MU9c$73#Cu-${pOy3~Ru=;8+j5hDSLp));<7$tY zz8M~Gy|^!Z{bs}Jb9{Psn2jHo8m;Mw8>ZYY82EU+<GJ+f!FCHw8gS9&&C*q0#NS@C z@aZeZ6TjTdVyj*G?MMS%dd$2%VmdDUW1l;@d9(0xwKUVD#&9vcG{j9KhcEBW-eTNh z-0|w;tuE@R+0%TpG{fkr@$QxDhlL3n|CRoj>HhTM;_6%;XLZ<ghKH%&{$}gZqn1u@ z-?=%FGyLr^Z>I>~w~_aKE`8s`d^j~`-_EO<RgX(QO#0H6?!Jl0M7ubxxNxYOS$wzQ zu5Jdd-Iu<+8`^6|&72+FyBsdAzDc^m*`cRyF3wBePV>#EvH11+CiuK*!B@QWz16tc za(H<=`(AXbtu{G)H(mPPal-54r-hY^xN&q#H98qyHJJ3MF}w^`4JPaEy`vsJW**LN zH9Ymy%!&+uobA`6sdu+}H&0XA)AF0soErWx@it2<4DZ{d#~aS995zj&S~GCw+!>cS z2CKJDNBZJ5XTEp$+M&+V1Iu9Xsxuh8TTiPVO?q;cW_29()XUY=N{cs6rjCmqZbmep z4m0)5w#UveVz@M3>Gj*`ZLfXZgsZ)9>4`&x*XtgUrNev{Z#(qNx`#8pb$s@Av)tTj zz2}<=qemO-K5w}mPH#MP;#5nA95(IY>cexhaP6w*E!SgkeGmINuI5B;50{(m+j`T4 zLvB_ttamq?gKa;YH!O?@FXAi0z{04T*K2or)zY@yVdK`r1DifEU3krKHTyFfyv@o* zxN2f=JoV$d()WGT=!nxUzS_L$#Z{kHyiARyB@7Ox&b;~JyHme8xfySL<}D9zHw{_8 zjkh^>^^JWGbMW!41~_khIZJ1IaIiFa$4{FawmDJFKC$oIZ=)tRQ-0~gh3y-t<5M?7 z1NUxTTpjX$BXMs_kBCRqXWn*ri}bhi(zg?S@3PDO_TcC{RJ+n2+_ZOJJG`5-Q*ItN zXJQx}W}Bmn*$?N9M}*DHn~N6)hh0n#-)?;H43_V_z8!eGE4;TJ$JbkqCk;57O|N&_ z#CBZz?Kj8L2-EHEpo90#(%n8g<Y|x3KBmt5#(g6=j<4^PKD9V6eRrubSdPE%L9d#b zz6-8yPkRx*-D<Gu!o%X0?=9)A-tU1=ZjR$*;p^j9>zni&wWDvJ9`E?NPmSTx!y%8i zZzJ;VZAV(*)o2lEUfuO+=5Y3L9C%^Oi0OmH7p9xl;_SO!>2ZtjxQc4t=`+J{#1nVl z5jKu`YJH==9ZWZ;MU8h?x59CJxZ>EG_32Lg=4No2$1i&0v0F?_yUnxea#*us`@CVz ziFoxyMx$J>o4sjT{od8W|K>HH$<3!l-2F7PTQ6=p<t&YHm^a7t>_`JHJ@?94cjD}u zu8zJXter4w>G9rua{FM@=*{Ud+b$Z?qUUW!F2bd^nQ-=}K}{~Yx82=scDdUrGQEBa zZ*wfo-SJcX`Kx9pZa8mR)1}7MaNAYw(l?jh^uRGQY3|<k!Nv(|AM1W|>9CLW#;*qJ zW)ZI$F}?8idZ$fpp6h#?(`UG<;et~WVK_XDK7OtaBZrR%hSLeN+%WLzhRa~%uAk;` z-mJbI^6tjp_ff}Zzd6yn{L(+}vqKLDEqEB7_Qlby>S>U(y@9U%2IlSQ*7U;RN&D)i z3Ab6MXWne{&57{c0*l+c8ND>g+3GgO?fSns_3RW`y1m;Yu4Z|6r(JD1`bJm&_V$g; z;w;kJJ@|0x!*jf9T;Cn~beqG&<<-rlN%RgcXW{kDGxMyS`@O4g#L40CF?^h*O^zFm zo2f@n`j!ihH7A;Z>9;gTt9tnQ@OrSc!HV8I9q?SgnQm#HUT(IXYB2C_Hs3B7JJdvP zd%SV5_B02_afxttm^07&w(9K?_Zz^)35Q2tuFmDS(iKPiX5i?6O+$OkvGmHTnU%M% zyYYp&^y$YJx0+d;@y4M}W8X&f<~VV5kGJ{u+F`f8nwjp`<4mo6<z||dGkAKu<GJ+9 z_4RVSay>JB2YU84yXa%EaNV;#bNaAy7(98r;(iMpj2<&0>mHFlGuv-Z_3-%8feVhC zO)m{x|2IEAICyTic_!lShWLBKv-Zj1alpi@@13U2!*<ufKHa$NG^Y<szj<~1a$f(^ z*YoDxB8O*U+;O!7zZ`#<?n}QqXCe+5v-ZHLH`jLvd#z`1%&vYHZ*zOMyxVcf<A?2j zy`7^atXwZGa&z_L?*={k%*oA(_QoNmBmMMneDT}GM0f@-#~-(S@#w*~|I){c8!oqJ zG3MgC^jW(+^uibQ<v829I`y)!>4bM@-^QFCo$<raiC<q&4bB`>SA$t>I_Pe<dG)@* zrEizHIOTAxeLt_C+4goDy#0M2xt={D4j#Umz8QENc)jIf^L-z4dYo1cS06rY&D#s7 zXOG-GE?70DmZf3$z`>`%_k+Wiel>5VX15tJZG8v*elMInZ7{ewQ}6dG#}}_$U4+BM z^s9^BoOO>Ic{<_D!-;(tISjXlHXLE$(kpM5J~z|NcEC2H-i+vmbYA-HQ-keJ5f?Kj zFXC9e^7LN%IJ&XA*$lUScY2rO!k=#U*&U{v!{fo7HuHMTiE7>B-F`FX`)1+vX^7KX zukVAuUbVgnK6rIC)?3ehv)!29@L>+}aim#{6Gu8=_4<u)r3)_o`t8BfE`7GR`sqvq zTzmBB_ZIQBSC78FTX%}MVB_u%`?)tB80Kw;rPW<(eFwaJId=z~e%}BmY<%`HbvW;C zmaF5Cw=;g6VXIx~>BnU@PoEjPz0IawUCj;=pPG4i`C`(#GY5I|aOQdU;l-mSavU^t zXPT;cx3fKQnC-h<`t4KGOD{Y=@4kh7_2C(QbKM({w;V^9OTXK2nX?BL4!*m+dA!we z$<@29Z==rfiu%95gB{%_vTh8o&fD`F-@VQ0o8`3F(fu&1M;)(v_jR{76V*g~uxYX* zD;F2*UCr)#^4|J(u<+jL-MV>oefqnHHu-OT)%ykqc^GfI#CW{Z)Nf{<hm-5k0q<Kd zeWuoo9zGGCGZDVJ8r|yMpw>=#H}_pccpP#bUp%<tki)b$js5=kVc72*yyJvp?Zt<e z;lkS+UmDwI9$!3{zP;@bIfKDv7B?%Z*^R#&<?W`g@1e$fn++@4*W9Jw4m~sRyQgoY z$Moog)1yx=wzuzKk9=of)cERx!NJR$6XVgRB@H4TyV7{+)6)KSnuYZ?hZjc8TVKyT zOs?;(?+ufsQw=7)a(c}${G6pTZEC9rM;b&t?h@_6X;zP=+fH?E7c7Sp)tR?`yym^_ z<;*_0diySYmX^K=oLc)tJ*F;)u{X_^K5m*|>ZP-~-DX7=7wz3pG-EzJc=d40)w`$p zE4{ioH5_)Wem%}$^x{dkUfRU!_;#jSVQ_}Um&SHo>D79}a@KdjZ<f1nvE2wu4~)J# z6Yb<I&Efl=X8I<u?GnA=7;Sy~zO|Ucb9>D+hr@1lyQ+7ies{s)OA|i1-Ef@kE;ZcU zXTEP~7S_&q_0-_i<<%~Ib#pkmemmf@IO^kqgRx8APJH!5Gwzpfl<S#`PtN*&`uG@3 zx2t)JeaCisx5qqF)5ovZ_Yh(5rnQ~;;oYboW+Tk@<82m~eJq@)4)a@c`a~F5INr_O z()`|ICR68erUS;_=J9%qyncJG^yyWjiQ|n&-Z!#G-aaw@y-D7kX}}Mk7ISdku-mso zor&&An>l&An}ti8h))lW;}G>2j%wXbPdd5_Hl2D5$6~u7&Gy7&4{X}Pbdx;{#$1}= zaD>-`#iJ&Ahp~s@ZJ!=KZ)OHgtvW8;tT{1mGb~>Cbimo+jaSs?@OmPX!-zP|(y)8< zcK)6p2aV>%G_^mjW)Je+XurBy(GGY#dfiS-JGuwXE}qWj@W{n(ZQdM<$6lDY;8?!{ zj&#B3i`~`il^##;_I5Xp^3|T6BK~%WbeN;p-t_opcIYv6H5gc~FXF)8-l9Hh78k6y zUO08NqFj%@-#hw7%Pr^hnTxkQ-I;D2@NnJH8<xel8t~E2?BZ&DlS|(X@#0RCIk-#@ zH>|tiSlUG14RG@Gm|<$^h%-$v?bP!wx-Y(N!X18pCpA6ubaaz9oE|Qw#_HL_aWp6A z>gL7x@idzrF^+OvIAGPPU;1gmm0nmFwPxG3`?^O|XTBN3#qsnVVQAai>Wj=w`n_Sz ziOu$ImsxIBt#1ZLH&^E{`f|E6b$E4qL_1;h;_o~3t}ix=zZ=Y&!DU9S=FP(Wyng<s z7Y<k4ahZW(=@gq&m)jx2bNAtDrx~W6>8DLi4yR6k@9wA14v{|GFuZ-2eg=b&_dP^& z)nWQAE`7VjX8OJ`=2$iFzLUP3$ya0iIQJXLtGS`?b?Gy`ZfrmO?XtrRvs=$w-nTPv z4_A-JtQy<BYP$mu4i480uD+2TK3E3h-HvWF!|>Pv53BASjz-p74yWF%d~cL<TFmLk zt&Ts<^+kO3Va$XT-2emYjXy2vR?}nK@0&CiPCb3{X6az{?6m`C%^Meo@y^pPs)@`F z{P;w5^I`04AFQ`NJZo0nx8Qo-@MgtwykXSRTdg^~YK$hF@M<vn-b~M)bbD75!^+Kg z!{VYxjx$Ra+<wRS&A^*alU{qP(JfamhhsRHI<Dr`?KPwB9p9y&(Z%54yTu!qS#x6h z;neiQ_ifd}+u7Z}BTU-$aEo|~_3c(O16Q=0r=tk7x8Tte(~FN)+uZze;G)5-xwP~h zXvWWA%);O{r$@60%gn;TY)`IdUf+y2oV*y9*iLvk6V2%}Imh1)T-7dpb^6rk&eUMJ zJiXoMZ8w)Q^L+Q3rEB-ohiAFE$80yLakzMQ7anzeIXCOwJ>GpkF|0Z~6T8uzomo6_ zHgBfy18Y7kjoz%N2G7#7_oXvkxYAp%`_iqCL&Wb}gcZ{agO9_R7n#}iEEnBzski&m zm*ZmH4P!svc)ZQEPt?O}F3oDRvhAsJyWr(!V3?V9sC&m1-fb}I_HVsieV4^F7bf2B zIjYC0uV;TfvuZhvKDVEqbf*o54sUnhU}n@<Gxg(-qdS@jFLH*L299U3dfp=6dArm^ zTDd+B?yV;mS<!c)O^?Z$dKi1-rLA6iuJo{Wrn4D6weF9nePY^S;<)sy!|2)DPI>i9 zzi$S&x7x?LrQf)^7-u@uWKM2ZJv?UAn0?-OGd1s`89U5`i%)bjtbB3m>1z&79cMXA z-$F0_&4|0t4j67$kKu$>>pnS8WBKlp!_&jOadod~ry92xhJ`V!$J$R9J+Nxs0H>bT zG~s~3&qSDb#P*82lRmZOwMWgI9qVa`(=NBDm#=0xb$oDrt4rUz9b!B*!I=})xq7$j zg}d~RZ>&xaGmksn`-bbzOCL_3wL32R!^+{>Pm|u>Xs0?J5!QEMY8)mF&HsP6egj;b z(ZS3xH*#;>X6VGN#=Apoo)&Yk)kQUyetEodc$n@^qx#;c?#+rnuOE)~s_lMt&eDPl zCe8Bh>)W_ft-W%(&8T_fi%XBEL%zIlteyIH^gH0HXHMNr+U-+=;buj(@RxqyQ6Hy0 zaCl(FYTnCv&o?i!?xQ2Uc)iW(bNlUJ)xGuL?aZ6kW8HvLUhH0YoZk9)SbO79qXQl; zeEZcn!^fE!jweoUd(86szCru&hlkapy*tgcTZA<ur=vT~adT>Ly>ZBC74_A+CB7>? z?lgNdbNEEFahY$n8E<|1MDONdn$hd-OFvDpW}9mkroH-fFr4anJ4BfHyxq*wpoS|Q zar9mKM(T1np2b(KK3+4`;c~O;_QLI*W>_^joO<`_vF7FYy3-y#Z`Q7I@4m%y+ksnO z4#VU)y=hpC?_`f!-&)O#h@b1>W$}pVg!RS+tL`0E4JQjHnq$qY(HfpEy*T?OYUxUA zcg1;-w@ckzJbjCBJNG-s?QU2c-aL+W*YDo22mQW*91f=2_f|LBzjxu`aAD!_guV2= zMYEh{5oS5=`RdL0hGUDR(VO)@CGWQo(*oBwQ1kBFiS^SHrtheprnFz_>Gx*U(}jbX zv%|eiJuF^5d%95{w)&+nr?KA#)=Z{{lbho(c;YkLH&^p6noCRiVY!}Nahd5`>V;{y zHx5RJ+<f`QZZ^|5z@4t{@{Zp;Je<hnxI~64&2gIx)2_J8;5VOkSo`g6PHr|Wmp(jP zcs0DZ;NZ=5i(c<b9}c$N?c6yx#NW;OJUq_j?YryCIS%u1eUI+G()SJI@!G+<B|IKE zuD(xu+>(~|cVD-}BXT&JaD<Vw?!;kNJLRlzVIEf;a<%&A<@H6LhD*O)?Vu%tRqvK& z)zVIrTQc){>Cop}zvtICtH=8;>FXO^>sj~FBNu65_AyZ{UiY(frfc=6d1q$LsmslF zyElIQzRRWGjq$`E2A*by%R3GjIfF^7ocF!uc>7&wVfwkgTn`R6KK!Cy`@*Hg+sw}S z2HlSnHeHwg@jJrmF+1dD+gC09VVlDbqhC$zO<#A2@HoV7@ixQLTmMSmchSee`exOd zr-go;VMLxzxqi2`OYBbCm|A$fILxnp@7zp!=r!-HFZLF3s>5-4{YyVR{hoHx!1i0H zrC$!84xHVUE<C%(8^(;Bucp4Kx*QKI3?6Qe-Szrj>T2<dEPQ*~fuou3P&1c4Z>EMD zo(6b(af(b|uBYzJ<SdRf;$BUCCv_Z*4!ONq-@`5rj}uN_?b7d?si#}S!PBx@>)Xl0 z;wZPnJ^J=?9O`b;<GV9`X@N5@#;3<%nO=Lth~~s_cENeuNlSXV;YzRP23YlQB8x+= zW`CUBi{GreK0aF7hl8o5Q4OvcbNJNKC-08MS2Jq|9H#?6F0r?m=1U(Ihgw|tdHV3h zap~J5;?B+Y&Gg{$(Zun=#AQwnV=i54tiGA%^}M;hh!+Q2jdG5g!O6wd027xz&Eb~Q zr4HjQuZ9O-IJsVWyt8!cSC?~^hI;leb7AO*vsZ-W_S+fOELVdqzx2Do3=S9^xVc?s zaCx`u(wD1sAC7S8)q}yEu1nvnp1K*%yv^Dxx6fSq(v(JXo3{gwdB^A7?V`Cfz~c(5 zu1`lh^mb03Zu54r>U#00_q(OheOY_@ePDRs2Ty$X>x*=9^(=04IPurVV@?fjwcqpM z%<*tx;O$~~nFxyyuD&<3FAey9&%v1Q*6#GCS!^DsJhv}xYOqY+F8SV)o@($kn^nWt zEh2n(rR_?eHhY+;A12PU>gVo)OJ{fKtC`jJrb#XCZpP7X3d8$WA~%BzzkW0L)bPW> z;EgAJFnZo*n3@@eKOS#bJy_g&FzvIWzIuiq-aHLrZ!@eO&iG-Oc?PRzhk51=w>r`j zPrBjZ@Tp~S>aBh|^wj%)^s)BK^*PS4b~JP8<4p&>_JqMHH!I>cE5fP6$ko%RkBdew zhqI?0uuKgmevvmLdUuCCab5cMn#YGrAJ&@=SR8shz17m#PIKmSGwoMvce_L!O!Ve( z&0YH5`e{lROxQGZJ03gT#M4~=N^h6By+1y<G|Aa=sqM~w*SNeH49AO)o9!FP^~~)) zeK*7>XYjabsoxFFn@QhlhF=}>_;BjCSDmY+`_gyI-c~JcGdOU^@10(Kxfm}#m~QQx z#i_@<&FPz!_g0gq*ADx|zE}O#2h%<{8n`(Q+niY6o_4~}gG(PS52u%Am^3uku4_Hs zG{mjW(%84?9lyxauWtu@HQebE?a-qco~wB?^XvG{;ZYBV!#82oVDT}W=9-7~Zl5|6 z(`?7;(laOGGwW@4{N84|!8@(?d8ecK-*<SMUv5}+yP9h!{`zT4dz$TJa6HXw_Owfn ze!E!T626)A)@ye&aB}+Oc6;Y`rCp82Zcyjm=9=A_yg9RUq&ZE^dc(BC9K)}cJ~yzi z=H>C4t7ew<&0zWl>5k8wT6@}?o@;$N++}Y0<n0yl!8I?^!Q>2Pb?bZ6AjS!2hRgA{ zi;i^btJ~W=&Unq@7Gc!o=5w`f!_i*REQ4(hhIO;qcF23%2jeZ`z-b=dThAMJnlF9* zaCpMY(}A<ua(sB=7R~gXHp1yK{5aIQ8@C#(ueaQ3(U*6-$jyiMZoWPGG^9}-&U<HR z;kfLQ!`ayla`W}<^471{tX}%`@pfyPx(7!$T>5S>uP@pc|D}KEOoP}rgqP#xOrP6R zjV`W^pPBQ<A?lZV)82Qv^v#9YZ>I;RX0GpY>Bk{wX@F}-Ty)tf;^W=v4sSDZI&pOi zj__tO_~lYJZ`MpZ&8XL-Lk=TnX5{U~O-Fq>o-`MmgU`&+)$MZo!pLE8(1?S{fA7$1 z4j=bUs~kTw3t#Lz!f>+;M&9?)V_{a8yt+Ai<Fyw@x59a6dovz$usAp~gBP}5I`!1k ztB<1@QH`hh(l;aajm*R&SEtjww|!~F#YDIw3~%<*k3YR}>$OibLtotPk#lvvHFa|| z;%x5HhZXxaxLJGD@u{ns?fVt`jYKsw?RSejU6;OoTGIrl)*dq~y+ydbGdxXU%f0cy z^7MD3Ieh8Xmz&|<s~MK7nPu?Jbeq|9!qSu8w8E+_=RF@+`t_RAGh;rE?zgW!YV^S3 z5!LXR(_?a`Z?>D|-DEz~$Dt=Ke>cQwA7}9T?dYa7<0-%N;o5@(=iVk?KG?<6tlwS{ zM;N=(iAz0gdVQ;O#skCJA1-cq)^CSb-ZzAo<4Z%BxUcn0pX;Z?yWMFP!|BQG=$kfc zw_KlI8sK5u(OWG}Gu}lQ_-<F1+b7qT?+$&Y)*MVX=*i<~AC0`Z)ehgScH#|hp0!s$ zj&4(vb2xo99AWwfYWDRF=!8{+ZC0(jL~~~1(Pw(*c0LR(aK+}+S-p94%$woFuTGbG zI=p%Jb{D*wU19OS?)#pP7k+P`*B&(-=}&`N-1fBh(pNWUm$`VGrGqV}cYU#Mk!D<L zeG_}_=jJ$GR_tDSS$oa&?eyqmIOOK4!S;KYUx&kkqi@#j=GgAU&-B_MuO3Idu+7th zTTGLl@6k7@ex=8+&-%T3H)pRI^XX^@Eqympoi12C9P0FVtLw{|Ja3;Kd~f?<7=CY< zG+p}oX7og^&tc=JU)>Iz>29xm@#`_Qz5&kW(gK5z!K%BRr=joCetMX`*>rp3;4Gdn z-Gh&-*Mr3`(g-W2U1Vzb#b(XP#deE0n!EJr^rqK*bKP;Jhu80RJl^Kgi<hUj9ct;o z-*-uCyUoGck><X4JM8UST>5em7sI6w->e$G?pglyT>Ejr(m*3;xSCCK8eq!x%<^ub zw;YciT;ESkj^FO^mwxql^|*a_%0+J+a-0l~bw_=COugI8sq?;p=nZEUUtIk@>fLqe z!;5BNSQs@q!&6_xEp}Ho;Z8?)rL(s=yl`CId^yf;xb*E1@t70gVK{ty<!MVVY@Xg` zul4q-$J-v5IMUmk9d@dl<xF%3oSokCu+_W0c#x+X9ye$0mA6BVk4_GYSHBwF@yON9 cz%knF#@~*1!oagI?QVxUGh<%V>mC2U0Zt{a$p8QV literal 0 HcmV?d00001 diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/src/alexnet_loop.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/src/alexnet_loop.cpp index 7b0fb69dd8..ee07bdd8f9 100644 --- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/src/alexnet_loop.cpp +++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/src/alexnet_loop.cpp @@ -372,7 +372,7 @@ int main(){ std::string dir_prefix = std::string("../../../../../../projects/hpvm-tensor-rt/model_params/alexnet_cifar10_test/"); - std::string labels_path = dir_prefix + std::string("labels.bin"); + std::string labels_path = dir_prefix + std::string("labels32.bin"); //uint8_t* labels = readLabels(labels_path.c_str(),10000); std::string conv2d_1_w_path = dir_prefix + std::string("conv2d_1_w.bin"); void* conv2d_1_w = readTrainedWeights(conv2d_1_w_path.c_str(), 0,64,3,11,11); @@ -436,6 +436,7 @@ int main(){ std::string input_path = dir_prefix + std::string("input.bin"); void* input = create4DTensor(0,nchw,batch_size,3,32,32); + startMemTracking(); for (int i = 0; i < batch_count; i++){ @@ -457,11 +458,11 @@ int main(){ hpvm_request_tensor(result, 0); - uint8_t* labels = readLabelsBatch(labels_path.c_str(),start,end); + uint32_t* labels = readLabelsBatch3(labels_path.c_str(),start,end); - computeAccuracy2(labels, batch_size, result); + computeAccuracy3(labels, result); - llvm_hpvm_invokeRtControl(result, labels); + llvm_hpvm_invokeRtControl2(result, labels); freeBatchMemory(); } diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/src/alexnet2_loop.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/src/alexnet2_loop.cpp index 71ee98ee9a..4147adabc3 100644 --- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/src/alexnet2_loop.cpp +++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/src/alexnet2_loop.cpp @@ -420,7 +420,7 @@ int main(){ std::string dir_prefix = std::string("../../../../../../projects/hpvm-tensor-rt/model_params/alexnet2_cifar10_test/"); - std::string labels_path = dir_prefix + std::string("labels.bin"); + std::string labels_path = dir_prefix + std::string("labels32.bin"); std::string conv2d_1_w_path = dir_prefix + std::string("conv2d_1_w.bin"); void* conv2d_1_w = readTrainedWeights(conv2d_1_w_path.c_str(), 0,32,3,3,3); std::string conv2d_1_b_path = dir_prefix + std::string("conv2d_1_b.bin"); @@ -513,11 +513,11 @@ int main(){ hpvm_request_tensor(result, 0); - uint8_t* labels = readLabelsBatch(labels_path.c_str(),start,end); + uint32_t* labels = readLabelsBatch3(labels_path.c_str(),start,end); - computeAccuracy2(labels, batch_size, result); + computeAccuracy3(labels, result); - llvm_hpvm_invokeRtControl(result, labels); + llvm_hpvm_invokeRtControl2(result, labels); freeBatchMemory(); } diff --git a/llvm/test/VISC/DNN_Benchmarks/common/include/tensorUtils.h b/llvm/test/VISC/DNN_Benchmarks/common/include/tensorUtils.h index 8976f7dc8f..a627f83e6b 100644 --- a/llvm/test/VISC/DNN_Benchmarks/common/include/tensorUtils.h +++ b/llvm/test/VISC/DNN_Benchmarks/common/include/tensorUtils.h @@ -412,7 +412,7 @@ uint8_t* readLabels(const char* labels_file, int num_labels){ -uint32_t* readLabels2(const char* labels_file, int num_labels){ +uint32_t* readLabels3(const char* labels_file, int num_labels){ uint32_t* labels = (uint32_t*) malloc(sizeof(uint32_t) * num_labels); FILE* file = fopen(labels_file, "rb"); @@ -453,7 +453,7 @@ uint8_t* readLabelsBatch(const char* labels_file, int start, int end){ } -uint32_t* readLabelsBatch2(const char* labels_file, int start, int end){ +uint32_t* readLabelsBatch3(const char* labels_file, int start, int end){ int num_labels = end - start; int file_header_size = sizeof(uint32_t) * start; @@ -518,40 +518,75 @@ void computeAccuracy(const char* labels_file, int num_labels, void* result_ptr){ -float computeAccuracy2(uint8_t* labels, int num_labels, - void* result_ptr, unsigned num_classes = 10){ +// NOTE: batch_size and num_classes are Unused arguments +float computeAccuracy2(uint8_t* labels, int batch_size, + void* result_ptr, size_t num_classes = 10){ - unsigned num_zeros = 0; + struct Tensor* result = (struct Tensor*) result_ptr; + + size_t batch_dim = result->dims.dim_sizes[0]; + num_classes = result->dims.dim_sizes[1]; + float* data = (float*) result->host_data; + int num_errors = 0; + + printf("batch_dim = %lu, channels = %lu \n", batch_dim, num_classes); + + for(unsigned int i = 0; i < batch_dim; i++){ + + int chosen = 0; + for (int id = 1; id < num_classes; ++id){ + if (data[i * num_classes + chosen] < data[i * num_classes + id]) chosen = id; + } + + if(chosen != labels[i]) + num_errors++; + + } + + float accuracy = ((batch_dim - num_errors) * 1.0 / batch_dim * 1.0) * 100.0; + printf("****** Accuracy = %f \n\n", accuracy); + + FILE* fp = fopen("final_accuracy", "w+"); + if(fp != NULL){ + + std::ostringstream ss; + ss << std::fixed << accuracy; + std::string print_str = ss.str(); + + fwrite(print_str.c_str(), 1, print_str.length(), fp); + } + + fclose(fp); + + return accuracy; +} + + + +float computeAccuracy3(uint32_t* labels, void* result_ptr){ struct Tensor* result = (struct Tensor*) result_ptr; size_t batch_dim = result->dims.dim_sizes[0]; - size_t channels = result->dims.dim_sizes[1]; + size_t num_classes = result->dims.dim_sizes[1]; float* data = (float*) result->host_data; int num_errors = 0; - printf("batch_dim = %lu, channels = %lu \n", batch_dim, channels); + printf("batch_dim = %lu, num_classes = %lu \n", batch_dim, num_classes); - for(int i = 0; i < num_labels; i++){ + for(int i = 0; i < batch_dim; i++){ int chosen = 0; - //for (int id = 1; id < num_classes; ++id){ - for (int id = 1; id < channels; ++id){ - if (data[i * channels + chosen] < data[i * channels + id]) chosen = id; + for (int id = 1; id < num_classes; ++id){ + if (data[i * num_classes + chosen] < data[i * num_classes + id]) chosen = id; } - if(labels[i] == 0) - num_zeros++; - if(chosen != labels[i]) num_errors++; - - //printf("chosen = %d, label = %d \n", chosen, labels[i]); } float accuracy = ((batch_dim - num_errors) * 1.0 / batch_dim * 1.0) * 100.0; printf("****** Accuracy = %f \n\n", accuracy); - //printf("****** Zero class labels %d \n", num_zeros); FILE* fp = fopen("final_accuracy", "w+"); if(fp != NULL){ @@ -569,6 +604,7 @@ float computeAccuracy2(uint8_t* labels, int num_labels, } + struct ClassProb{ float prob; int index; -- GitLab