From 44c220fd5adc5a1186f53a02a2cace54a937f196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Constantin=20F=C3=BCrst?= Date: Fri, 9 Feb 2024 21:38:31 +0100 Subject: [PATCH] add table output to qdp result plotter which displays speedup compared to dram as baseline, redo the timing plots with the latest test results, add the speedup table --- qdp_project/plots/plot-timing-cacheaccess.pdf | Bin 16740 -> 0 bytes .../plots/plot-timing-distprefetch.pdf | Bin 11208 -> 11261 bytes qdp_project/plots/plot-timing-dram.pdf | Bin 10280 -> 10302 bytes qdp_project/plots/plot-timing-hbm.pdf | Bin 11042 -> 10221 bytes qdp_project/plots/plot-timing-prefetch.pdf | Bin 11545 -> 11948 bytes qdp_project/plots/table-qdpspeedup.tex | 10 ++ qdp_project/plotter.py | 106 ++++++++++++++---- 7 files changed, 95 insertions(+), 21 deletions(-) delete mode 100644 qdp_project/plots/plot-timing-cacheaccess.pdf create mode 100644 qdp_project/plots/table-qdpspeedup.tex diff --git a/qdp_project/plots/plot-timing-cacheaccess.pdf b/qdp_project/plots/plot-timing-cacheaccess.pdf deleted file mode 100644 index c1370cfb45170e1221fd14ad99c19ebb3320aae8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16740 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 diff --git a/qdp_project/plots/plot-timing-distprefetch.pdf b/qdp_project/plots/plot-timing-distprefetch.pdf index fb9ae62ad5cabe8e357443fabeba98491df2bd2e..e3b1a10ec14ebcde4becde2512be48d6a4c8ee0d 100644 GIT binary patch delta 2593 zcmZuvc{tQ-8*U0QcFJi)CL#O$W`464vW%rNVMGZ<8e5EH$vz21p_qv*LrOxZY$>~$ zC|N>AvZRAJwtUDI_33n7-`6qc`Qy3X>%Q*yx$kFrbz=R*6D0@~hanKKC=3RNr2`Om znwdRLtZ8Y?G9X3$td?lsFlBrn+28ZMl|7O1)+n1y&tF+xkISknG*=lvVmAy9uhfRL z)l{!eK6~>>?qhng*PyJ6=ts?38M4mYbIrn#k@+%{K-So*Ysfd>1uEtRX*#4jaLvm4 zU2l(cW6;6%)k*J=yW_Ud(2@DuE*}|Pv~p~)XQ#b$0?aS>k*M^kCDj_|yRIv%-*Fd89D z6)|XE^P{>-^YM`{enu+`qm-5Bc2(LnmH4ptmou*9cDk#_n+e+Z6^sWHt?Gn#`f*&C zgY|Q;QaH!hRJF{aN5bmO5e?Ps8yN*3(+g}LtIEh@NlTPHh(kBJ^MjV|2raj3lEy+r z@_p`-!&yIgyAug>bj9-L0iQ4piLPGVFZ{omEoaYZWm?v`r^{3L zPbfaD>NV5){#{1Db&+)B7hnDb{?Uo(s{QGp7xcv1$Rdv~^({ z>99RD(yyQLC5q!lOO@qUq?H@oMayKEQ1<2LH>2t#M4ViZXE3KS@}k?12r#3Y`HBRC zSQ-kkN=`lI&{W+#(_OCjg>!dx_ca&uSOQ(rhEClfO85D-9k%3DYUPqNQ+gM_5-roo zu-5Uu_bsp9EHR)$YqoI_;!F~)DYcT#-?&?2aff9~Q_?`o?0JExTbF#N^~A3blSLI( z?E!zlp`*K8cGTamwCKF^Uxs4r*n(+j|Ab_udDa0(_6*v#Ly z1o;vRMvODrCP?zjV95_trQtF=DAye^4PBMrO!R9DkVEHI8Y# z+e|KKSPZzd{UKRrupbr}98;Rlo)$V<*t+(|@f<98lG4lhJRclC?4~sPC{UI;$@jTe zK5Re(^ zqVL2p*U=#v@tX;m9*`ZB&*GsTTMM(|OopY3TVn`{+5z(&MTa9;Ur**<8e=|kJcRu) zWKS{Joz&oc46HY?=0m$g0A6X0ISM>S^YS_7$Y=R;nq|XM4?S%Xy883k(4?O9zPPk! zJcvLeSH^zQh5fa|UL#25db+rrq!0=Yz`f48Ly;&9w&Vfd)9u?p0*0<9CQs8QAEmz3 zhb(?zygIU$<1r&0o= zD{sUp>Xi2<&+IL?_tkugmo=UfL@`x~xvlvfS=Pa>aZIfQVSS5yjcwWBrqn&wmkRWK0$Od36%9RbSef?ky!*A|Pc7MW6|Agcp?pNBCay+DNV! zDHJ#cgd?2Y{5L=!w}6dA@uyIs2#TAFt8YmpoWU#c_Y;l+H?E5Oi%M5f!a}@C9F+zk zd?+M}fC1=+$|Pqj8V>vnI28{4`+?lZ1a1tC>5qLaq%!9z|}DZ1L8OT#b61)I{vL; z3?50tZYE-ZjSKtf>Ng@5jp62D2wWmq0)fjQ4#0C`C_L_$hW!5y1Hj=nB>yRl+}H`4 S9-w9{fJZ_V6%Eadp#KFt8Ys8` delta 2520 zcmZuxc{tST9&apRXvT6ZiHu|!l;6zw%~H5jw(LumkaaN9jEtQc-AfK48jaE*S<0GX ztm%+Mbz%_59=Ud%WG%#<)4k7gp3Hs!_&)FRc|YIp_w)U{@AH0l>~O49fj|jZEDFS+ z(IAEnKmuqKIh<(R=M{~JYIxDWs1GhOV;LBC@f!W7oQUDrnKYi4u#dmxJ~lpdQChT2 zP{t$S$d--UIcD-_%I>$x>Ghdf$En7R;kMr4cQY1mAZ{C z6(1=5tgN-5{shNvFuH>B*)%6HRsKD@DY4Zk>5&vwE39m2dUbFkr@F>l!fIi|Z-JiQ z^UCS&=F!f%6K)sMw}X17JhzgcyF~IL+KT$|IV;Y6=$lR^^^pS=6}8C<@v&2zlc{TK zlwmE}RNvM;IF0dkx#-3P$Bcxo$8R4`ZH}(DuC4c`&JvQ;%R2$Mb+=7Bv!}{%iWs$G z5YRW|XMR(f?e%ojFX&WR)`Dz$`cRp<+iKwVoxmpHyIa*)EUi2(Gu>YXoYOs=Kh_eF z08hzGYv4hyLFabhwr1umOvqIhF*=$a^)Qu&vSQ4Uqxy=4Bce*14C!kYUkk)zXXF5> z&NOsg`7O7x&#IOm+)t^MFcv*ycsVv?5QU8eA8ShPZY*Z`G^#kw1_6z$}9SbwiYJQYAZ#=*dx7DWv%)PjrU07#`}f_Zyfb+`&L|+ z`ZBPwzp_Q9GbT+iST4-o!~D>(9s_(gy zcI#%VwCaW-vI4Il-qs`|`m&_2c<7p*j-w4U)x_>sfjg+|c0u+f&xauc0FO=p4MF91 zAzEb+k<{EoUDxKpmK-A+|8Uh8R}-sCc&`;C-pAhcNV1Nc0=TdZ-$Ro)N zc~QFc>HExm-Zqu~h&=Zv0V3irEQIbni?+X~uTC)i)HfV##&^qFv1ennyw-mFg~2SL zzPU{Ie8|@>OYwojEht5C2~X1gB^rya7~egP@@R3s#tMS)vmM`<%CZc^ln%M1liH{tQR%PS-RO&Jw<^)86qAX>BYp{9cc}_F7luMeCNV#|l0^ za~+7E*%!fl!4z`5?2(L;Jv}?ZQa9+0G_ymlI{bNc!8N~W3E3mJG13=DTTL^}Ct0GT zsYCykP-3gXVh>K(b^<+vCu`A~mdL`)0*!*6bmL9QtS54Efo=7}^Dxmljmp5+oem^j zN~kT%cwY5`GeeIAIm`m3KB9EO+n{RT5rc!SJMP(+cl=VQ(!bmA?+dnvMAus>|AVit z2#S+rPVyARg^XV>fL^7c1VF^ntM8OX`K6{)^3&07DNV0_jW)&KF*+gHe@(skK|#4q zE?)=2ed(qDAmO~QbK@VOOQIvH#{EHR7XH!!0i=q%fgWr=1fy3G{VIy^FR`L-&^4W+ z@EWGlp+D+_D0n&cbWms{E4iyuuL_GcWwa80C< z0{?B53zAL(XT3+PZ|XNq1Rr}n!VeEpr46y|nT+0WQo89m3ybf?gF~d z^?2xOb!X4z!qcHiMKL+PMcc5ow8=Y%2NfIa`WewOQjEmNv+_@}G&h2TvCsEqiBpBY zYzQuC#M(5UxljJG0dH^?*O&ce`n?x>DNLu%q^7J`g`{@4Hn0*K|t@c2C#3IMeK4~8Xh^9TU_81f|N0g{j^wp@h( zJQmH>5U-8eTL{1raNJ_CI0AhFDM906qwoau9w`7CjppK^vDzG)ezpJu{AJx941?Y~ zE`Y&uF6Rf2_P2i+0*ij2Lb?>Xb`Op{v?pbQ2}DL|EK0}F(3}h zH3>){aQV$i<>Fz%Jxw@0umtWwZ~z*w^OG755r@WTb75F*+#U=Cpl~R9xrVV28V^-g JHncK={s$i=`d$D4 diff --git a/qdp_project/plots/plot-timing-dram.pdf b/qdp_project/plots/plot-timing-dram.pdf index 73d6f6598138452ceef7c20bb44ce522b3654cc2..2fec87c0abbd84bd025453d03a22552a21a39b27 100644 GIT binary patch delta 2397 zcmZWodpwkR7dLVp5{>&MPch_Do_U_Rs-~n>Nf~3aODUI`ai58q#H&p5x@_(qY!v&Z zmXx9fNx~x9NV%@f{dI|WC4v?^M03W|RyNp-*S zf2Ti~3FTyc1@}zhTZx0R8%dWRIaB|~)Y93Op_sA!ZuMU9RCcLydGfM*BvYm+96& z{a!c0X`D@D6djn!8HS%%nkO~!7mH0zExmk*w-%`lxinId^|_Ub_yN5~MZ&RNl_i@y zUCO0qhY3-F7Z2wB2j|&WHadhg_l;;Wj`{^W&pq1mYrD_K+q_Y?o zhT2;*%{{AE>*SSrwDvfD9<6h?|I&E%cptOG(d}_;uN^fk^uxCDT+_EsWka>WjqlNR z&+YS*?BmL`+g6$fOzqkB9R6yBw57q$RoT8y?$~m@Khd1Ev`tylx3nd*NPg?1^rQ{% z?VpBEEDg85F7{uj;GG5&e4AX)wTE<2To1?1*Bn`=P2WFH%-vJadT#rLGE=X;r>tx+ z$8Pr~yLI(}CsU^Q>s%tag`Zj2! zJ?a9Z$!+8rqFsR}sd*}&cF7+EqbpSS$5YBPWBp*t_0oe| z|5Oj~9X$Vg%R+K=29iBc^@?0oDK`=)#6_x^=iWCgIqWnL=mDhirOtNTk&O9?sO#q~ zslfL0DSW~-eR}eH?0qSw4gDnQyeai*RtZztqp`u;@>r(XP-a+%qNlole)9-p&!Alv z+WqF9N*QAxiB}urG17|{e>UkE39LwPw{?ijnz>ZQD>2pU+IKP8GAC`Uv;L%?Aw!- zmtH&zlKPJodIIH^P;mYJj-|BVz$K%8Loe=2%=<%ob9N&%M}AVl2A$-aWaF1t+%5ap zolI7gyK8+SExWV`2d2OF9}jqAnC8o}i>1^|=iDevmy0X$=$V=Ey|B_)iJyd|$G45Ql+Nds%5KHfcYRi&@e_K@^qMnI-uyRJzwT5G*;JN3l6 z^I^BUWjs~ARPg+^Y1gL(gn37a>eL4xZ1t?Vb1srTs#a-?87T~4BREmURsBm+IT!5$ z)h$&OHqk8=y{&F$GKP_wzam4T7HVJA{_4+k4j*d9vrb5zjVY8ei*d(wYy8+YRU^2E z%G;yoUF>AQ9-PH7xop4!*AJ0({3F%m1I zCrKs>@?|(ml4KasS2m!T*OSjQVZ(LS zGC7Lo(XN3J3mKro@%^;K?5S(+omE1qgvC7i{Pc#joTV;Jrae)XkjEtpeX5 zY3)ax4Hc2sTE7YAbRZOnrvMflHWMH~fCYQUlh2SfotfDTxkVg~te7yt}@z6Jp>?z6`QVCWz36Aujka}!a+_%$DG z!9C^f$pm1+=Px_}CL%!wuTUh!#qh!w2nSIJpcx1mgP^eqK&7IYYzD`}7abDBWT8O- zCL^nckOL6_*9>3-=uZwv0V$#qzKP)=QTlIVWbqgT;*kg}21P*9v6hk$gtTI@d=e-| zNFtF%J$y|_B9KU8F&s?(Hby4HVmKTLFH-AkJ{$!UDFcH1FS~8+MPo#Va{EQ<*VmJbhASN{dCW{qKAmGJ{ArSdQ zF}Vm7ktUzg{X2Ie42t21c+rM`izACmO{Aze(`M}fi5%_0598lov$&^a8Q=xu#k j`-5y22Ur`U=naTAlgo1t;(gjn3Z4j~vDokIZP0%M1jD8! delta 2459 zcmZuvdpuO@8qPHhxim46YN5%L%gma~ni-ctB1*ZHjUtjkn!(J7josvy5{e~L2Psix z!Zt&4IoS%4itW0yOQ>ARo?NyPWsf@Ncd9w>AK&j;&wAeXeZKeo{_RxcRGu!yeVCTH zQz`NNl56)Gjqc3Jn*QAn5LdIL=&6x*%(U{Ayros`$>w z&vSVeOeXile16RPkJV8hYUU&Der^%%^AsPh>C+j5 z_UYP@$UVajoKiEz4?;!#rkhnUs6Q&Bc$`*mVHJByWv+JT9J+GP!#b1|ZT+}NF31t} zDL3uzSoMW~2B-GQQbE^wEvr+sTjy9apCiM5Irs^4a)0R{lT*euJ+al%n>$!HFEGPC zLG1rvD6*g#-OYOQQ;SMpi{tu-Egy=7S``jwJ-ygABH{I#v4B*_xIH52c*914{kRK5 z`F)w5e$Vc1s#`GO8dT zMcqC3&6aF_W<^KMyk`u*-p^fF3ayRWYq4pZG5c!_^lI$dd({!*z1nR1`FEBJM<#fs zo6eP5moiDj_Fad<@8_71qfINr^StRL&t7C{j1)P=)dstryN*AbTIAKf&c{8M&bGbt z$83OEu3=+>ZyrVsaL)ThDs7C9*e#Vy8Z&sxf(|>kyZa@blrb+-IcUnAnQ+Cl?3f5l z=Xn_5cOJ5dXNky$w`kF@($({{e58!&BJX+rSf)u3^XZoG7KP+p$yLNFhVpY6m;01| ztFW7m^^%{{{8tHlbx+RHRrQYW=Dj+!qY=Y}>OtVN<&fQlDTRUFGu8teAi0iL*0-O< zG*568+O|{RbP~*Sg7MgfUKQ&Mkz1fI9`~Zj1Q}yr~m3G}=_*X_kap$91&?5kc zI#+zmhB@P)-li&OOt&?=VX{GXn3-i^NVgg?l;&)03>F1XZ0jN~IT)m@myECOipsL*9`X1&4eB-5<3OaXF5;QBN^4QB^eJO^$2WGsDW!&N zxvkfYpp5Fvvu?+cT#B2q-Q=x!L+ClLsXBv4Iv|%e(>tTaSj$t4-YuJ|bN$DU5a zH4T12>1_INJmli>xGjO1Q)plD>4~;*iPArW z^9sF`?kcda-iK7=SfWHL+#RHYB5yP8R_n-A@oDwYf%p%#^iqXNdshXQmozA=&C~}Z zT^#6*-yG^~qmAA~M8!dV7X$T=lF3FcE@82C)Lnh4uXZJezrb{{veuTj)OZ#w<*dqj zd4P@CG(XCf-=2%orsnrvY9l0g_j*ruhsh~|{pD?KE0s$pw0W*Lvs~bv1H&SHepRX{91@Vaz!}eofs*1{q1Z@{ZxwGn+IrJ0Xev0 zomC>+Kr@i^NVWa4x}~nos!pAV`3g*4;@Ah&!lWGFjqqn4VRKmizKmrQa`-3$!~;0s zD6l$Ls%qGxp4Epg5l3p(LDYUJWUwzh+<2igKB@ZzCsqR&J zN#MOf0vIoV}IDiRqb$Zxe}ePvY4{<&#|TSOnH#;rjP+4izV__jkPON> zh(B#<*YJs{@;AEz9*o>Q`dFiDB>GY7bmKmsrtChZCDb!KSa*74A*F0|bbe9hkk5hB zU*;<4S#Kd_NWuYFPDBVm!UI@(NH|M;1|9bYusr zunUrx2lssskV5^E%l-DQcmj^{qYw{KBsnToJn!!d5(pqkf+JHTbVLyMtxnuu97H@> z!XXi&d@KB_qks}R5=fL7GKoNzFij%iBy-91<@d52|JyhO5+#HX>Hp{;ykstA`L%vu rk4nH1VUfPJ1{uJ*goJPaarNbwYtN*I00aou!Kf>M2sGNp(H8L!M-|0v diff --git a/qdp_project/plots/plot-timing-hbm.pdf b/qdp_project/plots/plot-timing-hbm.pdf index 9dbe77669572e49a6ed9ed3ba785d85f791e7bbd..574e035c896910d48ad4685129bbbd9aa99219f1 100644 GIT binary patch delta 2739 zcmZWrdpK0v8*a*V8k!7hTsJbr)a==FGhuM#Ry~zDNFyE}{jr|!d)K%2`+k@8JiE+Iyz7bqLJ1^qrVuHT zMWRzEFo+1`Z4Y&IKp&rby{Ah>9rd+Xr1HVq_sk2gT-k6w#!p|i?ET#IY^`EcQc`)) zALHf~71#f{{EG4Qz{|CoO-5|(VDi(=W*x3=z$=1^nJ zOkl@{SKl6NIC}Vl!#3zN3KVo3EV}B(x#K9x;FH#4%f0?))n(1de8OVveCLWIX^eUm? z;g^L+cN_6*MrJ-0|5-CR8^c|&>3dM3fbb4(GUvwXwh%{(q6tIV_XwF4L#Ez!88o8@ z>uzdU)jRNNHhX`6UQ%z=-S|3ql3~HNYREVvie4vLV^p$+NX~0=W!}l1t!vb%+vnv= zn2Q@OYHfc<6$za}nzs&3^AL}kJh*p^t4K$y_sJb}p+Zu(Yh{O=yF|p1zvzH&z-6Ccb!^S#s@pQ@Q~g49=&m&oVU-ZrOFPW(786 z((3o7{?FxNQL-3qa>Ld-tXnBme?vxXhp;1l&#K`W^88enPX5EP7G13VRmGjD<`qJ_ z*FpB~*Dc~5`}z-N31htvcK4bX)8|f3_*B!UyE^4o$(N0_wC0y=gy#4A!+#U8p1zS< z^!6TEUM0iaXzS=XMK6W4z4jknl~|+id%a|$0@C)S+zTkT*XeiUM0XxzcjpD?#0jET zq{*vRsk)A%&<2@&QT}88MY#awezQcSTzb~Tb@uNmE0WVK1F}`ob<>UNkL|C$Ezm!Edw_YU-D(zdU?3f ztZl<>DS;k|NwGT(HCH5GJ1mw<%5H9Ns{F_VPmv9D~T&wxZ`2B_TgOK_x&4yH$BVK zwsyvE+9rRi zGW|eR?pW+^L*c$&?OZ{p@D0w{#Z5RnYblyydH9aHSowf4p{?CJj2{M*)^6n4+-tl4 zHpf7wjZIk z$z(WbT)D26^_!9DyR<^SBOVmt+e41W}b!N2l2${iSQk>|yFS12Zr79^ET>?hr*b{qp(vR+qiM*Sol91|tDzR_ny(FJ57G5_t z2wCvXnh};BC+}@xX%pnwZ)aQ0XE?gzWW>%9UYiP%huXgd?TB75|0XA+oUG6Sm&j?a zq?rjC<$UDer>hMG>T8e)__;C$&XzY6xTF0MFo4Fuy=#NurnMNsE)_EbY@vdI&teAP z6bwdiQZ)tvN2p@pwd#l9uWG6=U;POjtBw&wt~-u^eb-@N6gCe2ydDD^Xga_tSPab7 zybhx^F{?;q5GE?>^C(O@TZV{w`xVIr64_5D2LQ*@3pbT64XCag1O*!FG z|BmyyE^knU_A;7v;0$xo2hdSr??;2ySM|rVlAgIe%kKSiBZP}9Z~c+e3Y~949S>?85`8J z``6}}VNL!Fa zk%U74L|U`}LO^U-fFu?oFS{WCL|L{Z81;uG`33;dmYpzGcwnd>0GTbiNJ2OO(U%V* z0227aT4E;=e|TXB4zd7};S#e%EkOFgysVqFM2uWYg+zgEaj#)BEfh>Oiq?mS5S;>= zf{+mi8f^p^3?z%~7wUT$857R(M}h!}2H!IRc|8890pyYa(!oV7zhYF0gkLb? zVnKez$P$6SVpNIDpD_@mF7d(%#`-HE2re_m@jyw=KS$AMBq?FY6cg#-G6(NJC4fjoNn?H{fv9vTj0A#GsgX#Ft^fHhiAt6dNCtl{DR1!#nJBHA zOpz8trb#CC7ZS<8oK)W^5KXEd6bdLMkU}T=Nd;0tX%Z@tEJaKuQKVW&rAarP4w2zr t6K#^@WidlTIlzw@cVhd80;J{VA{o;N&Vg{w(vZ^0AcQnDwA*Em{68YFD--|# delta 3446 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 delta 2943 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 diff --git a/qdp_project/plots/table-qdpspeedup.tex b/qdp_project/plots/table-qdpspeedup.tex new file mode 100644 index 0000000..71499be --- /dev/null +++ b/qdp_project/plots/table-qdpspeedup.tex @@ -0,0 +1,10 @@ +\begin{tabular}{lll} +\toprule +Configuration & Speedup & Cache Hitrate \\ +\midrule +DDR-SDRAM (Baseline) & x1.00 & \textemdash \\ +HBM (Upper Limit) & x1.41 & \textemdash \\ +Prefetching & x0.82 & 89.38 \% \\ +Prefetching, Distributed Columns & x1.23 & 93.20 \% \\ +\bottomrule +\end{tabular} diff --git a/qdp_project/plotter.py b/qdp_project/plotter.py index 8643ebf..72747cf 100644 --- a/qdp_project/plotter.py +++ b/qdp_project/plotter.py @@ -1,14 +1,15 @@ import os import csv import numpy as np +import pandas as pd import seaborn as sns import matplotlib.pyplot as plt output_path = "./plots" -hbm_result = "./evaluation-results/baseline/current-hbm/qdp-xeonmax-hbm-tca2-tcb0-tcj1-tmul16-wl4294967296-cs2097152.csv" -dram_result = "./evaluation-results/baseline/current-dram/qdp-xeonmax-dram-tca2-tcb0-tcj1-tmul16-wl4294967296-cs2097152.csv" -prefetch_result = "./evaluation-results/outofcacheallocation/qdp-xeonmax-prefetch-tca2-tcb1-tcj1-tmul16-wl4294967296-cs8388608.csv" -distprefetch_result = "./evaluation-results/distprefetch/qdp-xeonmax-distprefetch-tca1-tcb1-tcj1-tmul32-wl4294967296-cs8388608.csv" +hbm_result = "./evaluation-results/current/qdp-xeonmax-hbm-tca4-tcb0-tcj1-tmul32-wl4294967296-cs2097152.csv" +dram_result = "./evaluation-results/current/qdp-xeonmax-dram-tca2-tcb0-tcj1-tmul32-wl4294967296-cs2097152.csv" +prefetch_result = "./evaluation-results/current/qdp-xeonmax-prefetch-tca1-tcb1-tcj1-tmul32-wl4294967296-cs8388608.csv" +distprefetch_result = "./evaluation-results/current/qdp-xeonmax-distprefetch-tca1-tcb1-tcj1-tmul32-wl4294967296-cs8388608.csv" tt_name = "rt-ns" function_names = [ "scana-run", "scanb-run", "aggrj-run" ] @@ -31,24 +32,83 @@ def read_timings_from_csv(fname) -> tuple[list[float], list[str]]: return list(t.values()), list(t.keys()) -def get_data_prefetch_cache_access() -> tuple[list[float], list[str]]: - total = 0.47 - data = [ 0.01, 0.01, 0.04, 0.42 ] - data = [ x * 100 / total for x in data ] - keys = ["Cache::GetCacheNode", "Cache::Access Itself", "dml::hardware_device::submit", "dml::make_mem_move_task (operator new)"] +def read_total_time_from_csv(fname) -> float: + time = 0 + row_count = 0 + + with open(fname, newline='') as csvfile: + reader = csv.DictReader(csvfile, delimiter=';') + for row in reader: + row_count = row_count + 1 + time += int(row["rt-ns"]) + + return time / (1000 * 1000 * row_count) + + +def read_cache_hitrate_from_csv(fname) -> float: + hitrate = 0 + row_count = 0 + + with open(fname, newline='') as csvfile: + reader = csv.DictReader(csvfile, delimiter=';') + for row in reader: + row_count = row_count + 1 + hitrate += float(row["cache-hr"]) + + return (hitrate * 100) / row_count + + +def generate_speedup_table(): + baseline = read_total_time_from_csv(dram_result) + columns = [ "Configuration", "Speedup", "Cache Hitrate" ] + + names = [ + "DDR-SDRAM (Baseline)", + "HBM (Upper Limit)", + "Prefetching", + "Prefetching, Distributed Columns" + ] + + rawtime = [ + read_total_time_from_csv(dram_result), + read_total_time_from_csv(hbm_result), + read_total_time_from_csv(prefetch_result), + read_total_time_from_csv(distprefetch_result), + ] - return data,keys + speedup = [ + baseline / rawtime[0], + baseline / rawtime[1], + baseline / rawtime[2], + baseline / rawtime[3] + ] -def get_data_prefetch_total() -> tuple[list[float], list[str]]: - return read_timings_from_csv(prefetch_result) + cachehr = [ + 0, + 0, + read_cache_hitrate_from_csv(prefetch_result), + read_cache_hitrate_from_csv(distprefetch_result) + ] + + data = [ + [ names[0], f"x{speedup[0]:1.2f}", r" \textemdash " ], + [ names[1], f"x{speedup[1]:1.2f}", r" \textemdash " ], + [ names[2], f"x{speedup[2]:1.2f}", f"{cachehr[2]:2.2f} \%" ], + [ names[3], f"x{speedup[3]:1.2f}", f"{cachehr[3]:2.2f} \%" ] + ] + + return pd.DataFrame(data, columns=columns) + + +def tex_table(df, fname): + with open(os.path.join(output_path, fname), "w") as of: + of.write(df.to_latex(index=False)) -def get_data_dram_total() -> tuple[list[float], list[str]]: - return # loops over all possible configuration combinations and calls # process_file_to_dataset for them in order to build a dataframe # which is then displayed and saved -def main(data: tuple[list[float], list[str]], fname, unit): +def donut_plot(data: tuple[list[float], list[str]], fname): palette_color = sns.color_palette('mako_r') fig, ax = plt.subplots(figsize=(6, 3), subplot_kw=dict(aspect="equal")) @@ -64,15 +124,19 @@ def main(data: tuple[list[float], list[str]], fname, unit): horizontalalignment = {-1: "right", 1: "left"}[int(np.sign(x))] connectionstyle = f"angle,angleA=0,angleB={ang}" kw["arrowprops"].update({"connectionstyle": connectionstyle}) - ax.annotate(f"{data[1][i]} - {data[0][i]:2.2f} {unit}", xy=(x, y), xytext=(1.35*np.sign(x), 1.4*y), horizontalalignment=horizontalalignment, **kw) + ax.annotate(f"{data[1][i]} - {data[0][i]:2.2f} ms", xy=(x, y), xytext=(1.35*np.sign(x), 1.4*y), horizontalalignment=horizontalalignment, **kw) plt.rcParams.update({'font.size': 18}) fig.savefig(os.path.join(output_path, fname), bbox_inches='tight') +def main(): + donut_plot(read_timings_from_csv(prefetch_result), "plot-timing-prefetch.pdf") + donut_plot(read_timings_from_csv(distprefetch_result), "plot-timing-distprefetch.pdf") + donut_plot(read_timings_from_csv(dram_result), "plot-timing-dram.pdf") + donut_plot(read_timings_from_csv(hbm_result), "plot-timing-hbm.pdf") + tex_table(generate_speedup_table(), "table-qdpspeedup.tex") + + if __name__ == "__main__": - main(get_data_prefetch_cache_access(), "plot-timing-cacheaccess.pdf", "%") - main(read_timings_from_csv(prefetch_result), "plot-timing-prefetch.pdf", "ms") - main(read_timings_from_csv(distprefetch_result), "plot-timing-distprefetch.pdf", "ms") - main(read_timings_from_csv(dram_result), "plot-timing-dram.pdf", "ms") - main(read_timings_from_csv(hbm_result), "plot-timing-hbm.pdf", "ms") + main()