From 62cfeef61d057acce58ffdd6b53887012480935f Mon Sep 17 00:00:00 2001 From: Blaise Tine Date: Fri, 2 Apr 2021 14:15:58 -0700 Subject: [PATCH] minor update --- benchmarks/opencl/guassian/.depend | 21 ++++++++-------- benchmarks/opencl/guassian/guassian | Bin 43848 -> 40304 bytes benchmarks/opencl/nearn/.depend | 22 +++++++++-------- benchmarks/opencl/nearn/nearn | Bin 44504 -> 45120 bytes benchmarks/opencl/saxpy/.depend | 6 ++--- benchmarks/opencl/sfilter/.depend | 6 ++--- benchmarks/opencl/sgemm/.depend | 14 +++++------ benchmarks/opencl/vecadd/.depend | 14 +++++------ driver/stub/libvortex.so | Bin 19696 -> 19528 bytes hw/syn/quartus/Makefile | 37 ++++++++++++++++++++++++++++ runtime/libvortexrt.a | Bin 13130 -> 13130 bytes 11 files changed, 80 insertions(+), 40 deletions(-) create mode 100644 hw/syn/quartus/Makefile diff --git a/benchmarks/opencl/guassian/.depend b/benchmarks/opencl/guassian/.depend index 7006e94e..5e6042da 100644 --- a/benchmarks/opencl/guassian/.depend +++ b/benchmarks/opencl/guassian/.depend @@ -1,12 +1,13 @@ main.o: main.cc gaussianElim.h clutils.h \ - /opt/pocl/runtime/include/CL/cl.h \ - /opt/pocl/runtime/include/CL/cl_version.h \ - /opt/pocl/runtime/include/CL/cl_platform.h \ - /opt/pocl/runtime/include/CL/opencl.h \ - /opt/pocl/runtime/include/CL/cl_gl.h \ - /opt/pocl/runtime/include/CL/cl_gl_ext.h \ - /opt/pocl/runtime/include/CL/cl_ext.h -clutils.o: clutils.cpp /opt/pocl/runtime/include/CL/cl.h \ - /opt/pocl/runtime/include/CL/cl_version.h \ - /opt/pocl/runtime/include/CL/cl_platform.h clutils.h utils.h + /homes/tinebp/tools/pocl/runtime/include/CL/cl.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_version.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_platform.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/opencl.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_gl.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_gl_ext.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_ext.h +clutils.o: clutils.cpp /homes/tinebp/tools/pocl/runtime/include/CL/cl.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_version.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_platform.h clutils.h \ + utils.h utils.o: utils.cpp utils.h diff --git a/benchmarks/opencl/guassian/guassian b/benchmarks/opencl/guassian/guassian index be28fb8377823913086081a80c1e205fd5071919..758d2b2aca90cf68475cdb7ba3191b7614a57770 100755 GIT binary patch literal 40304 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 literal 43848 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 X^-5?OPR1*r|F4|m6Uiu2bNT-RPW3+r diff --git a/benchmarks/opencl/nearn/.depend b/benchmarks/opencl/nearn/.depend index 083b7b77..a79f7090 100644 --- a/benchmarks/opencl/nearn/.depend +++ b/benchmarks/opencl/nearn/.depend @@ -1,11 +1,13 @@ -main.o: main.cc nearestNeighbor.h /opt/pocl/runtime/include/CL/opencl.h \ - /opt/pocl/runtime/include/CL/cl.h \ - /opt/pocl/runtime/include/CL/cl_version.h \ - /opt/pocl/runtime/include/CL/cl_platform.h \ - /opt/pocl/runtime/include/CL/cl_gl.h \ - /opt/pocl/runtime/include/CL/cl_gl_ext.h \ - /opt/pocl/runtime/include/CL/cl_ext.h clutils.h -clutils.o: clutils.cpp /opt/pocl/runtime/include/CL/cl.h \ - /opt/pocl/runtime/include/CL/cl_version.h \ - /opt/pocl/runtime/include/CL/cl_platform.h clutils.h utils.h +main.o: main.cc nearestNeighbor.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/opencl.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_version.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_platform.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_gl.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_gl_ext.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_ext.h clutils.h +clutils.o: clutils.cpp /homes/tinebp/tools/pocl/runtime/include/CL/cl.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_version.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_platform.h clutils.h \ + utils.h utils.o: utils.cpp utils.h diff --git a/benchmarks/opencl/nearn/nearn b/benchmarks/opencl/nearn/nearn index e302749a87beca7e2629931ed8ece8d1d301521c..3500b5632c965a64a30d660222d0216a190f081f 100755 GIT binary patch literal 45120 zcmeHwdwg5Po$rw!!3mD#KuQAyIDi8V5Z6j#V*>`umYkzRwuK*wNeHqm%dx<=j3oz$ zrNzbxjcN>Ow~uT~ce8uBG|Tppb|H1SUFyUTk}k9%JZb`klu|e%JOY6bp1$ATJfx#z zpKkBH`}y2|IEgg#`_6BE^PAty{ASMRc+Tx^Z%u~HrpPN(xmqFWkwqM-6ba)yMFc^m zQl`wt_qobB$}G^?4CCpQJU}YHP72X7%n^7d!Yq8sGB{uk7YaTZN)0Kb@~p0c9-bmY zMNt_*`AFAoUu7ghl|^Lu6eZ#+JB5cbAE`%4J4L>oBA*P4h5j;>^`pAcr%9xnLl@HM zk|FWZ<@-ylo#F$nL`@H~guG1ton74GRDSTaynx}yl3A^lW*sDAVDp*}$AJwM-k&4Oi@ zd@b<$=tuW{wC3Nkjq>m=EXKc_B7OzJQhZk6;}FqNrRroBx=UjZ~T87U#EQY=#!aNbm zpahXBd@3bi2roq3C1^3^lnT&Zfl>c=i}?RbaOw=1XAA5!5q=4w>=(u{mJ6JQg|UB~ z0eT)j@|q(e1rk6w*ASP{^AK5r&n5U!pP=h>9w=W%criZb@k64;DDhE;HG|Zo$9E0*_eW z|6!qjzeTx^f}i?Zuc^PCYtfE1Y@D8{>^F_mwHD=m)dK&M1%8E)Z}tQ4S?JSjA!oA% z9=E{nvB2-JDEBc7d%kWV=TwXS^O%MFxfVEedlet^b%8~>e+J`B{cXac|GZ{_hb-hQ zw5S)&%PKzRi`Fx$83g^G7WyBy!2jJs&%+jWQ?UN4?+x`-d-G4NnfxejE zulPMpwf^={UuZ)(8VmI`)mC>!dO}TswyqFQn=vKWwIURAg*JwRAx}?7Lg$Ro zMW(U|RjVVto6PF3=?lj~Nf446`+IvMeX&qGt5gka5QvdXA)_|XYvlIzMK<&Wx~uxb zUG2hFygn@VQdcS?D@YnD)dB{6lX68-%{|?L-r7)iecO$pprQ7nOo)aU_r_393`j>9 zw+I{38`PMWX_(46%_2<^sas#$q3G{8EuDOxyG=Q#2L^ReO zy!2A)r=^O2ZO<*;_-^m=ZB)={2L}ATp}uIOC(sp+ZSrp{Mp|8CtSlUf`rFX+mV40N zE{7Y;)A4G;Q9w7Bjo5}@&>tnrq4=A7ZVC6a`x`>h{_YU51vy(Z))(yEq;y0ud=wPk z7wJx)H1(4};QA{|P{hEOcXzN3`f z1(|+-a3J7EzaBtW?TCg#H!0nrZdPWnD-sPU-GQ#INRUcE>EH+kdO9d`PcVQCw@|-R zIxsTY6$p=oyHQSiV3UxGVE|j*igD~8z;KU|?C!`$8rSuHri|ZDl@-3AJAhh17}7)S zfmi_9+M-dO2ndy0QC;m{R#dE1x3oB`Jbp*fGG&F=Qw0+6avt|DEpnuyON;213il6i zPAp^rzTm`gaXiC7Win2}v&4tEh?_9Z&$6;Fl1d+&NVBnADL#s2GtSfEe+4t8(>=`7Kf4Jcvz11q6Bb+iEi6^Dlp75E4j~W8 z%D2DyT@;?F+$i|_&kEyqE<@=T{BmDIu6M`9&C_@eYjf?vBsW$BV% z(yb=^AFg9;N~a0GPvE^Kd`#d2Cj6kl2TgdspUdBB!ru`5+f4Z90^e@J%Y>XACVc){ zE`O&9FBJGL6YdoFmPuvaAjC!29fP9 z^~|xr^DXcN7PxAG7h2%O7I>KjUTJ}A7P!xZe_ga!iwWN@@KzK4Gl6%S@CkwUn($`@ zK48Life)JStaYOQoA7f4zRiR?1isybx5)l)!dD3XohE#}z;~JOUV)F9@H+%PZo+>c z@ckzIrvg7{!k-ZMqzV7Cz>k=4<$7)(-GrYe@M9+YVu7DD;a3S<*__`0eFD!h;Tr^= zZ^G{o_yQCDLxHO%{FeeRG~ovYUTngT3cSpOe=6`w6FzS}w~uDRFA})VgjWc>#e_Eq zeDZc~ADRJ;`+P?XxRV#jzI6kx8SrBUoc3_#b<%*#y<1B234cX%_cf9kVW-eD8*$pl zl$X2@C!F?#<+Wf?Wl`GKBw6xO4S0qG5f&QoOaoqQz{S+dQp*fDl`XGI15UP+muA38 zCwch{xb(%8)?&crJ}%*{2Hd#k+iAdQKUZG82He<=0|wl6jr-_Z4LGe|)o z1Fjlyu>@qPg$Dd$1AnmrFErp~23+ppQ*xyNr{4hNr46YpO7)`seR=tYR2C)tG8W@s zEki1c5Kg}*$g6coWl_TE_aAw64yi0kIIXwk)jOoJDB(+4jDHObsVqV`{l+7&!6B7J z317}){A=rw$|8i*?@036Hl(sB;qo^N0=5sS6tLe_9gzzg_jDL*{sVqYHRV>E8#)niEA-sac_}Bg+l|=}@n#K6n!6B7J2(M%@ z{xvzIvIyZ-EXKc%45=(acr}ahFMUX55yD+8#=njYsVqXco5lFo$sv_R2(Mu=@g@8} z;VTSyjsZ8$FZl+Xe$SKF0t3EEf(TUu?ls`r@S8c>NcKams-kTfk7et$0j~`|nloWw zLUgL+7hsuM^dP?N=T#y`bSE(-j!fZN^Z?N|q7O3qUx=ouCNa+F?-QL#^e#q!i)a+4 zBz7?R8${ETlGw)RJBX&KBr(Y7TZty~BzhU$M>I_xiB?A6NHk3u2_K`|h^C+K5|xZz zOEgU#iDE`K5S>f3%IK9u(^QejXLJ?OG({v7MqfcRO$~`-p95I5lxUg~5=R()3DNY^ zVd5a8FCdzxhQv6d&mx+pgv2gJpGNe2qIWQQ4$(BlC$=#^CyE(;i0FkxtBn3F(d60_`HbF6^tnVU zjDDDCa^;C*pHcmPL9|Nr5k@~i^!Y>|Wc0rfO|CpK&gkzGeIe1i82v4x3y9vq=x-2B zE<3S}(RUC{t~xQu=v#@tnCMnORdDQPg(mDO)fWagwdA}O+T?G4l?=zqRI6p z#u2IbCYPHSWc0^3fF@U)=wtj5Pj?u z*8W6S5`Bcx4-oAn`XFd$v$LtWQ5$-55{NeHDwwZ5?kZ40C={V~V-YrI5mL#JQEx#O zQJPHmarpXzR-jqr9uU%~r;tW3g>1lT@xzGDhiX#@F))rf5u$@XSmh%H7O?My>|6DD zQPNdjz-9Woa2oJtD9 zceEYcqg~*MzwC{_qQ&3Vd!U&%TJdvqxA;VSpJQBq@#Cqfkr*mBT46&c0rFcQ<<}Qv z+3)!=#Emo+h@<=MAD5)Gbz^cG%w;_r_lz zg9t^ly?xxiwr0701@sx7uxZ1Om62MvKkJRZqi0ivM=MT;2>m0(nXii@Ik5_M=7x$- zaN}HuW;fVsC6V!$^#+Wdj%^U~E;@Z0xKdHt4 z5<3%9+o9_~qHX7{pE}Y}B>C4*&@7gsk>5f2MoTVXVitdn{Mw$+Gqw0JZI6D9X4|Jd z^?7Uo1b$Np%q4+V@&+s3U9T!i|5vo(iWSHJ&7e=NHd67xI<#K*N2q`X6Yk4C06rV3 zGl*&^$0s1t#o5;5nc=Nji~8dIM5rx;eF6}vEkwD{AGL(cerh-CL>IaPdas62|3c46UD`CoqSr0(Z`3w`qmhm_SrhUsj7-d?p zsbHaZG*)n#;{bZfBQ#HAG?BYhYRMw6Wa|G)4NQED1?VGOnya7~=^1*QbpRS+FJoHt z1~C|^`91MRX*g=$ky9N9m;xxkccXG6>zh8$o+Fw1-6yA}pp2J>rQ?K#v0D5v4SMu* z{m_Rf7DyRGM49izC-h&5goO{2w)8*(@z0*ncZh@qJb~6AJmKpiVgBq1oN;{5&RCErsra{b?O^gttx(mX<0vvHiJ?N(K#zHZNtOqAMo-j-43{$ z1aGf9;M?>Yzzb{q4EeZqA4eIN>9;I^g`ptN@F$*Om@+Kk8SXb_sG$t3W1-hzklVK| zM6<)a9e7W(U$Xx_`weqHf$P#nTm_xlrLKb3_v~vAz}+3NZyn)`X%6^|L%PZrGVirNa z*5Z>S5J|&-wrR5`g~40KkM3apSc~uF>2C}lLHb@w-}|1uWjt{e`RHxa%@IG6k<1Hx!Ad*^YdJ>O<8vU%+*4&XEHvadL(4Uc0L zuqVq~KG{FHay0ib3N;WrlyPuU)?YNdP~_DJ>-3`+aF3~F!tyeibD3e~78#-|b=-`CdF z#-GsQPkQ1fobjpuMNQ)!T~d!sUK(IWb7^IPm6Wsm<*yZM!3k}2IWwVWBx~Pb*^>TO z?YlMG=(YC_ew=^HqpW1rxs`(-o#kHJsnw4xlkUuNl!6N3X80j#QDI!5alcxC(A{nVDZ1<)-q z$%Y8m=fi_+hDo-c{%<_XAyPC4`3|BZx+XxE*dq|CsYsQ~Yhjd5QONw42aL z9*uUi zZL&Xm;_uV?uw)6mwI}{8T*1(rV`Q33VNaR>@@YZQ>m9{{fYx^x&^=Nnb+LF>0ZnN6 zv}QjSGBKNO`5c{F8<}4KfxkPKcwW|zBWd`g&AtUc$|G$d(kkvpnqypxzodWg78$bS zXP88ZdG|XYw;*N0zWL823uPCwY3S(fd|j(;IT6DK6oY4J!~3v2?9cIFPR;RL87s)Q zZ*HV)V7e3|6Dv#myjd)Qkyw+@Vm`!FlF+KfYl>M`$SLz+MVvGIm~HIo+P3@;|FY+e z?C_!YA*=jZ`(}EGlGM8#Hlb=xvHBl=gznzG@hSZpW~-O=i$!P`e1AZ?eK(eGjuYPa zhx=Rw7b{y`1s4!hi^zo(sY9fIBK3$YqKFTXi}V*@8KSPGagfSSBLeA6Mgt;DMk69j zMiX1g7lLGxni083|0X0s$RW=NEOljnz8D-$1((^k`~*WvqkBoZdD{wg4W``kkYT)e z;~!%wr+){QNIVC8xT|2HEjEv=^3RZ;c$ZC!m1tqQA-$WLb?8y*NNFoZwEf@X4qJce zZQQd>>8}&pXvL2R`cFW7+Ik8o>!0K>*)0rp(fDWNc(svwwElTmQF|7@q%EG*_MBwv zxXr&tQE;4!=kdp}^qbPkkJ;}W2ZrX+;`0miTqlXu z+p$^NNQNgq%TxYhO!db1qHn??THH&P$tuu)2<^yS<#|bAk7O+V%<9_LQ>P#cz7c6T-Hy zc(F%v_zhv(N0YYwGSq@ip=JoS?VoPjN@>^S%&wlrCp>#z%S_bqZw~^7b};>-{er64!@bN+n@xeu=5hnK2)nJ`dcuj;}Ci|8*)G&B=na+*M`sTRf0OQ5NN`C^z zfosS`QRPV9GS$BxoL3{t_NboMMwUK|2?A8f`2h7?C@uJHoPRE~`J8M&{Am6T|%sR_3YoLW#qW z{u$g`;w>;G)3K1i=1hnbVmp5~p;Q3ZCxOGSGhiJ6{cWAa*H9wO!7qU}?I%IVm27qL zEoRkzv@L#AfwJ5`pgxbBle`0CLc-7~nNH1KX;`n4Qe579uaR+Pkawp^-kE=!ynjJO zXOy?fB<}$3qOA2B$zHrlRiL$~-$=!opc75dmTCfr|1ma5(0?^s#fK|lw~-134759v zJDj~!!zP%%hHM_6pniht&V!APU@GB#ViiiKu7Vr2brT)iNFGM*BUlBoQ2}v3hg2p` zw?hu^Y!gDx|HO)m%gIcWle{0``aOb;Dk-ilDQ+CCn=Wo+Qrv^I$tBg=mb$;7nqm)= zv>d6hL)48l-e{N0aX|mgUsxvWIQO5zy9M>{ELm4<@=~Xw{nVtrxx9BZIH{3}-*`x# zCw`FR#eWNl>r)c5nMBB&I6J+6&7LmrBM9qb!h|>`tTiPphY6$mlF^boO!9t(jas9A zJ}r0vE{`Sxtnr$#3mAWo_VUSbvAur!u?!C3a{{q(!@)9|C>;l=CbR=s@n`e|+MKVX zrd0L!|13=vI~_XAP3fSQqkO2Rv5^A%V3Xwl6|Pd@(BMzn<5|=_SlL_&8syUoXZ?bg zzZ%*xE!HzFuy)h`9UT~@6vH2p0{3B~lx2XE8N*hcP=Gqke?$3eSm8%j@Q&=$OL^^O z;U$K`uat$O30#WOh}j6rqmOCvrKaS`wbP4vHk@;nyT6fLgvUrWKU@i9QQOVx6YN-@vS+Z-r#&gWp4F zL6)u$UwG15YP4h?ZMcqBSvcy0nw>qlc?xOH7)xYj_LIM{B+1 zR{0W#{XnJC7%0@oDK{Jt`t*bzMQ+3wUU$QmDf^aMj2>axLv&M-pe5=c6qD2b6X^f$ z&9B-w)1I3)Qu1vSKvL%;*RQgGJv;=TN4XAD9Y#u`V1RMl7@$}KEuuP(l-$5_VO+B& ze0W%7`4P)P_im#DHvRciNzh~bW^Sb9668T4p13agwNcHcM^kw!j?!*t{Ox_NY*yIV z%cvSuqg%4Qr0(#eW#sPp?`*uEqxt>;xg3Yk5M|hyq$Z*j9hCf)D^)dCD^@?M+7xPm zo1*#HPT6uMn8_ep@+ntZ2{cbZej()Zq3{Rn{3d?L78`TVhIH8F&)D^R7$4qB`Uk8n zOI{_E9NBLmbV~mx%6BHqSMfqM)(bB|0a`!qL&)nv+fKL@Zz{-T{ULpNc}-3a=R$=qTdnFkr$8qsp84R}6~F_->He;O)b9=e@+WKNQa zHr>f`53y9{`8KD->W_%cX6(gg6%3qBJ7vio>Tlqg22yz)_sdrMnzU={PqNbdcexW(2_y^$pg68*&^#*$=-9H-W7c9~vFQ zwzP^*TDf}D%dAgs2|x?hsC!<|)M>R&zvqH87o2QVj586A6ZE_7dB}t@qxQX4yj=+lDKw6SLpeO8b@ZR|Nj{~*W~ZEO`t1-;_%)D-J(N9PMai_Ly*_>;oeq7m1^d}sNr{RIGvs)obR=CBy9oI!o#i!I{cn;0GI&bBzUP^M ztNIVK-BjoBqc;44k)zk4`@7293v%uEG{OncX4c=m0M?;LX~4qvYZ>w8+SVsmNm;|@>!BnD3o4J0l8``C4ZABX#I0FukP%4pU@PzNbuT^+evg(-5SPGs%!7576hjrIphXI>~otpyqk_8jnNG1)@qYq$^zK$70 z|1A_IpMQvqG+L1fMfKgl^q*rL4o|SR0u#eyNF=78AcWQ_e?;r8Paau9deb)9mMP8d zI_D3_LX&q6er(1%8~dxs2ItLw-_6lmFrTx{KR7BazK7?g_0VJbC}U)PdB1;f#QhGtx!OVjmPVb_(Ve{W*&1;zfz3;Nh3D*b}}+vDpdwl(TkaQ@#5 z{#n!cw;K4l{lAi4-^Z^s)%SkNk?ao|EnR6dSo8;$o7eZNjFI(+a}3pa4V#ielZ zRo}IK!ACM?Q*GH+E;GCy;~MyAy_%zAk1I_B&W?T934K*cgQpDzv?n#dx^E&i z9x&8@Y+$P(J$_)AzndGGKAC2HUi|~Jh|q^le=u5vvon4E7h_}=sWue!4EC+KMW*Sq z(7^T+u%+pf><{nY5mM?8Gqmr{=TiNFJuQdT%+Tlmbf-D{M3enF;IV3WHFnPZQ_k|~@KH=MuLvL<_PI#P44}k|AH2;LF;LO3;1#sw;Lfd~8 z&qFuD}HVmgn%pP73ZXA<>^82ZTxK5bB9HE4TlMy0)B7 z@vCxbyrpD)XpnU#$$B2Lq##fH%ZW8`WLUpftiik?vl;R%qCDS}dFZ(%s-G4=BXKS= zCf5t26=%(uKUMq;vU@B%@3QX{TjKX1lJ?w}eO;-FUtS&t zc$~UdCPe6^=nlU@sp$V`TA(x;>MBs`z=a(92or#wE3o;%=)N$1(sAg+6Qfy|FFv^C zP<&tfq}{!5!r*`C{=gIe0K?c5|GZKE;ZtnYLPPaih-#y^W!muIo9?C}FoM29H_GwD z-ZPZuO2e37b>?_gi8$julC*9 z*BNPa)A$tiRQv>o--VrcrgBkd5qn^ANiV`i@8Z8WUeNY@hI=E7^uPR`^n5FJu52G~ z{0%7Uf{dy8FJf_rpD2#@zk%+PW9U8xdmNu&ou2O>qVef(&U-?EzECt)7Yc9aY>V{y zZ(^rk6a~AKy7UxfQM)Rx*~+30b={((r5&|Z>xrPxoH;UwDut=dQ92MKG!W?S?FwC? zu;T|*`dfdT(V*g}hENwy>`=NQ9B6O5LR}P{BiQJ~0%8lO?QKe3e|KA`PmOdScQDe| z9tCIn9A!~dU9#kA)deYmo?xf~S}49iG#Y9@AJtRbblic;4x%7QqCzS4cwNEQ&`{r? zhI>?;`4IanoNAzNLzLu7e)m8q*w1qCqatJx(g36cF3x`o4vkQg2WS}15K%5v8+ff| zv(qsOql?vbQJi|Pe)eoG7szbNKq<+jrbsN%1w_h+{_GSCHF*q%TFB(7jdW1T-@xbY zX$RL|lP9Vv1g7jjr*9a`6?{UVH6K+fsh+{EW_gTHs%P%A>N@I5J%R4fdUZ*kx(7~Xxp$&ERD54>i&Za)VxI1n{L$cK8=Ac9L^HIZgw`6E3W{tpB! z>AVc%u`|@w3;i)Dd%FUgSUng-))Do*nOTT`UE3cH#nkRdd#FgILucTPqAJb|QR%E3 zHPRo0mBb&{Er}WO`RK3`6$ggUfDPjWA3C8X9O(gXvSo?Ax-)`fNSGSXhn?o57IybX zV``A6v_&v3lSw$5M{Q@P0xedSh>pQZHOS%Vf2$OnEg6Z0;ISM{REJ4Q#i4~q2$aF$L8M;VEFi&`%&Qav5&rbs^&40ge7t0A})xJ7Czp%dDfC|RA$ zn88JU1eBT8T}q(J7tv!{bm1%_=9x(XygfU=1?nU_3^6XpP1&z;n;<_6P4ur#^u3_( z!lz5%*CV8|1~(TuDGWXNBnv4nX9OB!MDsJBROZIX;bV4S6GVNaH+sGj?89+N)c8Su zqLRwaW>WZJNrd0TrZP3c&kai9I74PS*vn5ak_k!SZTy@kIx~r63X=S)fh6~2Ak&#? z%!b*?P%;;%WF}7Wxe6y8^^%}~EQr^ks5gQMxh8-S)K21P#uU{nQecL5F>T}6D2%b> zgeU5xutSeXtOWS6S1@TWPlLb>SImKJi;B?3$^5)E2-C6|wU!d3E-8d((wyEJe~q`^*+e3EBzf|dDo)+HLYd8D7y?(QSoB<`Dme0r zbwEs%?d03xFOryW1q^exZ={t`yHdB>S}jmBdOtXul7{C{dM(C z{+jycI+qEG_g&|&U+r%2I(@|HsdcV!qxgneCs;j=2&%Pd38Z3Uv(Jadbu%@qnmt~Z z-`7x&epBnOfuhX~OwU@U&q#XeRy(~OmmlBFEL{Sk?oHSE(qNz0*+j}P4MbkfYDB8* z(brp8Q%ZT)HoKeMq>#_u(B$D(kZG`8t+USMXFNtZ%s##*HijfK8L7T%rMo&!JU3IL zXKk9cjm}yh+QcZb3d4?DTMFc+s`oW{>g!nJ$OK_MV{U0scZ<8axkzuV|S_s(XuJP1)s1&0_o@hic!usS zof|qr?ZLJ{dD-QqCCisBg|Az>Yn=36T(dxTb)=i(OQP|TpUw7v4rfx+Kk=9gxhgv6z&M)*guus0G6ul zVXUdyk{^C9HLU$kueZLM^^2sZBBS5}A4Xt}$Lp!1F;Y`M-P_8snC3TK?#Ai{kFTk| zfy-gvmG@MNBl&o><$X3S9r*pX3oFuK3@xX&M_>S|JWltE;!cC^&X=?+OG3($Fzz;# zB|XZLjkIn=eX%x!J%~AgW$lK3EKu3a4H_gR@D{9di3RJ2jW7+SGZM+R39e9=gmC{H zYKKvi3iJkIo%p*;+D1Tn_`gW+vPid`oq1&z_T8_60VW@rn(`r@Gch%F1i#HJcx-B_ z47;;62vy)M`=+J_5OzK>HI;UvOIO2@wU zNrVFk)m-GK4RwT*_>pH9!jlO1BOJhwP&sp<7eW=`c7$aJbMV&=g9z!uo;AB{w>BuY zfqdK9xu@i8vz?MpIG*!U&PAWNgtM^knfb9lAovG=JvCK~wpa4tbI;i8RR+h3LzimpuDQQ95>9zF4E;0 zd|D3R!DQ@fD=YKz@6LegqomJWS?;{TJG0$+#ly2Qj?c*}bQ)x=JheVAXJX$IPyPQZb<;wGA+&80U&Qo2$YpgUT`)`K)o&PyCl}F{Q%FECAJTJ$K z=)IsTF(!-B%XiOU*A*y#AIgD7Cd+uZWk}wekfUO3-;geErgmzAJbgxa!qOz~D)~#exR-KnWOfqs(`L05GFVb(Kba9c6O~Cg9Zy`H7 zDW4}#&3I-`UcOUiXXV}oJ_Q@2=BU%Ybc0x`y->l0LZOt+V>D>i>ANX&bnZL@+e=qoVfPW3~GrKqEskO{9 zRe5Dqd6l(!>h;{rY-~IM{)6DZSn%JOfzCdhxiU}nWl%yi|c!&#kq3!n)+E~VkR9v>I@7l8j8!Vics34SpqoAX*T zZq4hwF0VI`*XacD7mP(DC&%K7Q!^S&knl6q|L%i)4Qq_$R3Nhh^4^&0UymZa6X{=} zbc`b!FDpcwQhi=U`T)|$D4peR!gyTI$D{ky5RX(bM@i#gKGqbpmci7YyhxABfGfaV zgfcl8*8|+Hl+TOwVx;4Vo8(2j?ZC@`{{-WX?0Gl&tkF#P@w>=p-I)!aI6SK^Z!k0S z=FBrVC`O5cq1PK$KX?>?jt zApLKx&okhk1pgM~HPqjS`qw4vzlzU`to~@|vX}lge$sb2__u?9rutAHZ9@7^q{pcI z)c8T04rgIX%xIj$x;`v{am1$+HXq!De8-UQJjy37D(^nvCxKr~7+MdNklEO{e-!CC zFHcPcD4p52A#aCmZQ6W8{pU^a`Th&OcJR%|8g@JQXuUw|5wV_|Y25*jn6Z7vb;7Ds zGoBF3soz)S`G!xqbJktiqgi)n-a}r3&wnUK#ajDI1c>V@gx>~U2%OzO&NNc`g@^6gg%cOpCEp`P`#^Nb zJ&i0*D%*vA*wSTJnJ5@rp6t>EBep)+H6&=h`-Od5fgAT=2olx6hK9;G@MeDXbf^1XZVJ$v%Kdh-2r|Gz`|-Z=T5IQd>U`5rj=-Z%N4H~C&S z`5rg<-ZuH3Hu+vQ`5rd;-ZlB2HThmO`5ra--Zc51H2GdM`5rX+-ZS~0Gx=UK`5v=7 zuIJ4t-%}>vOD5k#Cf_?I-!mrPD<)l zbpE-@;0)t8Q^`xt>*@SnlisZ0G52rs@Ug;9)} ziEz0-l&K*^sN4Zlx%Ar}-bg#m&OZ=xStF9O%Y>H;e1{2NCGhPgypQ1vl_e|1v0?SvD)>RN%c?(o%J}Cg`7?~8ndHx5er@_V zJqNfAZ$vbYql*~->C^hdv^UHUI=_1wU=mjbYgZDGk)mrmO4db*|*i(+jvjsl5k_({zN|#&U>Xn?9?MUyVz5sHzE#o+Q77$UIFIDJi_QOwu zf1Z+>cR;f16(Qfp9^y*9)AJpPS8%?I1^@i)neBNQ!{;iyg#P3Q>2eEP6%Ly{GYLE@ z@Lthgw=!-;`JRRR2Y_E7c#Oe53;x4GesLA&miLoy3S7?D^vob#?+W~wSPQXd7l9Ye z;_bCfw3jfGQZ4Xf0+8*vM&PYpCYC*0NwL2JJ}+Z|VqU*r1phM+{%vrx$}&hfTZNoK zVSm}~_cNTarhWZV@(VrXKEs3s|0MA9p^xv5^m5-9a&}a5@ykUiXPzSZt>}lh3A|F^ zM=s+4d$tzQf662N>Fb|v#xF7(f;%km?+W<`%Q&-WPUWW-{Cg$8#`)#=eFHezxzl9l z&n)ERqakRV7K`!g7P?--aD(C^dbI`KV1ai@`KEf^X2HMB0>26kO?p1EC|xIdHfkon zH)etVrv-k*0zbjaMYyFLD6q77x;w?mrSYfeWw5P^>(R{bIikew}>nO zfgf4H0olG=fs;QR7af*8%M6xdz-ipcb{ArlPnjG^rNUfnh%x^x#x;A^2+1nLQ+zVE z%mQC)VK=vs-|FEKWW9PU7r>qkM)XPx{$>mOMj_{zsIOdi4OsAh%L4zA1-@U%&llrjOw{)cfe)Je_G~ua z%~ez}|H^sl5{8S+hTuxzs)3f#H5U94A%BNyJbp*ugQ8u~{n+(CE#y3Cf$z7#{~+Wa z6Z1ZMrX3}GX2Cz#K6ATY23+N;rF~y%fj3*o2{RmxP|wB4aeAA;eWrQgpDpA(WPv|s zfh*mCa8FS%sQASnoBE^uZGMj*e-KKCbtwL|jWKVT-ye>Id%`gs&=A9)kalzw1(kOE z;pPVX31O(uAM5txV2PekRPp=UBmNCtk+wjWza4*X81)DG2NayKeq69NcnE5f?kL#dkTnmLGq0?AzFVqY~_5=U({u!5$#pJ?w;#I#)xW zXG3TeI~@d;b5IvBv_m!hc{4;%(sY~RxQ$zIOiH>&!7iMU!38>TItJvSOHprNZA?A7 zKNe~VcZb^BQ+m)TAyR*4Wa3{+6$tclJXxRaZe-&Jn1pIW-SzxLlVBGPYzap@k#A`U z@@)vkxE)-5;f?YEq)H z*xyYmmhqyh`Kc?cJ2P968Re+(MEQ9WK1T@^E@4(YH@LC&v`94O+nB2DjVPwBF;=>f z{TZ_7ava;^#Yses0S|O=yB(MNYyCL&q^m0uL|==B`eL4y4Xaq1dt+U>-@l=!-ya+p z0HeQ${&u{}ABO7*z{hxeU~60oDXv}|9-;U>_5NrKhqw6qacUUKy}S#2RDhz#G=!oE}e43=SqtQcK}vq9I|xt}xEm z@%e&{eqY$v0o58EssF@H_9h)zA8Cr1jYVBU^lUm&M)V|9KR{kG&;>V=-dUruKAe`7 zj!pA}%+;gxGCFF;h5q6THl$jll%K*z4dQ?)8(@jFRw@BVs!#K942*_i%_+~)#xQ0P zjGg{&`12^U2il4M_xr%(Z;wX&{7>tpWOkr{sgq*ZCPxYevY3`GhY6#bdV(7jRK5qz zl3sh)nxei?M-lqXz<|FO!zMy@i*536WD^06Eq0iI@EJabgLP`|SkS0YXlb!%rL+;9 z?9!-7m^FPd+N9kZxdlh=&1_HV;JywpCtH=B;l{0fmtrPYo~#gcQ&As3>!$%U zQ`podqE^AKP@t#3mo;2k@g&i|w!O=@QIyis;$K#@TnRBg!d;$Dda<2C|ipdx7qp@z}tA?eeY}L{zPcdOG zS)AoW?g`q;s*}Dbn542rlUO^3+4u+Fj56SxY3fV23tUhsJ1>nE1?{G@JEOv7N%02P zW1L)RTI}c`*JD(Xj{!$9s}wtmgGM7(^wY*Sa5(ON+D0<98G-qaMc> z6>MEfhnTW4P)jwDhIX%e#77Kc{4x+9_GqGHp&orNnAgBx9Y`REssJybFY1 zp?kn4y0cRJ%{{cF_BVv0nEuf;)zxt2Z0aR*$`L77lxAm`YAVdF)Ooq3x!xef;)qS7 ze03yQ1Y1s{f3&?}!Ei zJ?8F5y*p}HB(Vi{DU5-xz?I`p(`1VdHZ`SpZdqAYwWTh!-Lx^{nl?t1qUfe>-1j2H zDuRWbGKL$nP+zZ7gmZjCMd(sXVu1~U!n(Vttv}q=z6AFfMV$fMn-sNg>VYgC#`=^Z z;=$bs-I}Bkex&tmm)w_D6 zzkD7`hVuDeS-#9K>pv*+R|$dgxh)yW=Z`5ro}NgSFY|u`81*UAkFG+oK`z6yIGp^J z?IwXOh#2$B=fGsh&O(yR2<7wIGTdg$FMofQVa8>K%!d3D{jMqh=6aqYL;ReTcA533 z_BD<_`TUs-b*ZS3Vj`9MO!)^|Iin2ej4|V7F8>!uG?p))XOrQ#X>b@W+5QsxH6q6R z^0_w|n)M}Kr_ z<*s{POvIWsqkn zG_{}1C&SN7`Q`6km3Q#`=bQ4Y98P{`qHvNW^_RcL1~zk+)+8s7$Z{pjpJT&0DiRQ( z%rAaUN~X&8H-;t^8Sf5JzIr;(O7qZF_{j35|Df?Db?2P?d;EJme1kfN;gaP_i2ht* Rru+~5h;z&{WiXM-{{~=L(ZK)! literal 44504 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

Ou*>-#9u!J=H>5RDz_ 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 diff --git a/benchmarks/opencl/saxpy/.depend b/benchmarks/opencl/saxpy/.depend index 1960f024..2ee98131 100644 --- a/benchmarks/opencl/saxpy/.depend +++ b/benchmarks/opencl/saxpy/.depend @@ -1,3 +1,3 @@ -main.o: main.cc /opt/pocl/runtime/include/CL/cl.h \ - /opt/pocl/runtime/include/CL/cl_version.h \ - /opt/pocl/runtime/include/CL/cl_platform.h +main.o: main.cc /homes/tinebp/tools/pocl/runtime/include/CL/cl.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_version.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_platform.h diff --git a/benchmarks/opencl/sfilter/.depend b/benchmarks/opencl/sfilter/.depend index 1960f024..2ee98131 100644 --- a/benchmarks/opencl/sfilter/.depend +++ b/benchmarks/opencl/sfilter/.depend @@ -1,3 +1,3 @@ -main.o: main.cc /opt/pocl/runtime/include/CL/cl.h \ - /opt/pocl/runtime/include/CL/cl_version.h \ - /opt/pocl/runtime/include/CL/cl_platform.h +main.o: main.cc /homes/tinebp/tools/pocl/runtime/include/CL/cl.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_version.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_platform.h diff --git a/benchmarks/opencl/sgemm/.depend b/benchmarks/opencl/sgemm/.depend index 632ededc..c91b2d89 100644 --- a/benchmarks/opencl/sgemm/.depend +++ b/benchmarks/opencl/sgemm/.depend @@ -1,7 +1,7 @@ -main.o: main.cc /opt/pocl/runtime/include/CL/opencl.h \ - /opt/pocl/runtime/include/CL/cl.h \ - /opt/pocl/runtime/include/CL/cl_version.h \ - /opt/pocl/runtime/include/CL/cl_platform.h \ - /opt/pocl/runtime/include/CL/cl_gl.h \ - /opt/pocl/runtime/include/CL/cl_gl_ext.h \ - /opt/pocl/runtime/include/CL/cl_ext.h +main.o: main.cc /homes/tinebp/tools/pocl/runtime/include/CL/opencl.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_version.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_platform.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_gl.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_gl_ext.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_ext.h diff --git a/benchmarks/opencl/vecadd/.depend b/benchmarks/opencl/vecadd/.depend index 632ededc..c91b2d89 100644 --- a/benchmarks/opencl/vecadd/.depend +++ b/benchmarks/opencl/vecadd/.depend @@ -1,7 +1,7 @@ -main.o: main.cc /opt/pocl/runtime/include/CL/opencl.h \ - /opt/pocl/runtime/include/CL/cl.h \ - /opt/pocl/runtime/include/CL/cl_version.h \ - /opt/pocl/runtime/include/CL/cl_platform.h \ - /opt/pocl/runtime/include/CL/cl_gl.h \ - /opt/pocl/runtime/include/CL/cl_gl_ext.h \ - /opt/pocl/runtime/include/CL/cl_ext.h +main.o: main.cc /homes/tinebp/tools/pocl/runtime/include/CL/opencl.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_version.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_platform.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_gl.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_gl_ext.h \ + /homes/tinebp/tools/pocl/runtime/include/CL/cl_ext.h diff --git a/driver/stub/libvortex.so b/driver/stub/libvortex.so index 0c50c54c18cc84188d1d5bbe244f9b0a584b17ef..da712160b9161f7f3bffbef33ac2e20912a4ced8 100755 GIT binary patch literal 19528 zcmeHPdw3gHl^^+$xHMQwo2Kc5trDDU5)#FB?BFD%^-Ia9m0LG8JDQ@#@=>}6CUwJI`SD;ArWm1}^?Y7?ExpR*^ z8fiA>WB=j%a`TPPJ->VIx#vE0=gvL3+aKIqw-ik0gX;yMGY^ez`RTQrPsEj#y4z3m~s8>Xoo-Q`=2}wC$5n#$UCi9KSd`uM* zpde|P$tfkE^qiJewbKeI$CP9#wEj+yP<(Q+VDsqLO;};d`EEr%vU9eQaMe1)k-2-i3$4 zT0DP?rwY#|Jk*7k;_>0RP~du!+$9!a?q3U(7kvv5w*{Sx_F2(-kdC7!2l^_&q~Ns zx#Kj55Z+@FrBUKu*>LM*qjticLV9*M=-&!`G}i3ldI$T!kz z3O~g|_D|W`?K;>~sNG(a@*bQ1TOI77adjC+QDiY9mhcARRIb;i=NXCf;9&btN_^60 zr{AGHF9*H^`a5K~vbxGgMZZ`KkBk5aQH630t{S4*C-gb3UucRLP{QVN_Db!!@cF^;ChjOoQkpHSfzuf824tr!fjN00P)>bbb zdw9~p9-nCcOO<*#k7#~UC~=VQMH-E(AzQgnQ?Ok6?epTXhtD8Gq4tbBw2z``JA31O zT1pQkbxl*Wp1vMk(YinsEzsVgMWV^*&YqMWO}4i*#o~R@_E2XmYNi!V(ZT~EQV@#u z?1?J72B2b>7EeU`I3AA0Q`v-YD3PLsP%IV?3(?+a?+lRY4ke=zO=8{gl&&T8B&B!u zcWKFJEE+O(h2x1qO^=fXN)>EZGTzI8s34^zqoK&4wmXDsl3XgOrJ~vBPDHiaZ@#Hb zuMO*iiD)3~uZzUB-93?LpFd0)`V+BuD58BJn(T|lw9Y|2no?k0I5C)?+SNlXb^Fb2 zdRFdGwgf*lD!fkq0RTx#(^dt-e;P;bMJMbDQ)|Jv>dasi# z3b}y78tPhqD^%8+DourGN9e55M1e5t&nU2Jt*MCWX{yPuMpKojFwC2cbPbIYf9p-u zAZxV%8toPUz43@_#|u=kHjMF*^dob%$P5K~NTi#4xU@i{on({W^w-h}U+-`cvJq;ytygX!HX+ z{jscBZQvt4Ng>-)t4Cw8okF%R)N5ijG)Voe;TYIRsFg>|Y+6t#m{nV&u`my_y;H5x z0L6f$-oyZGHam_+YM}v>-_vHv>oAQ&v8c?AZqE+=W^?H0OfGbCi#fZ*!Xu0^J4o+N z#&^S_h!zf|bZPt|o}Qjou~bF+dlMwyrF12dJ$-tYX>GRVH37`LnTe2#%MxkP#84f; zvJ~s-OzDyEJKo_-#eM6D?ajt^hQnHlxGKUEXeEpk;wy;{n{rw-64FCh+B;Jzb7fbw zXkSFx($u7_h2)lCps`7-_Eptnqt(7zrD^;2hQ@$a+e-`1vWq zKUemzOU8@wHbZerF&~pF0at9vL1-!73P=n8GjmaX6PYV0{SuZ*UG%F*X$p9k@(r=K zP{i+H>#{+-!j&n{1EWAXejw8;!QXf9r?7P`QC^l<|J6NseZyuzZfIRdyHBQ3{vZF_ z2f)o$<{_Q-grW1FMzM30D_ z!Iv=zI$^=-U7o{}7M$MGIZRq`ddKIGw&47}PH9sXoZi_voVVa~Ho!rZ?M9=gnnBP- zm0rQoyEmnA@LF&hUmTWOaEz90sI=f1DA`bF!Kn-m^%k7_lG0QQPUiz0S}i!8O>o$5 z!L9wHb#Qz`g=A)cma#w+-LBA%vZ#v}Mo5KmJwqX_=*h^OPh%+#9zmVShI5Al3B%Y2)GUI}OKk+n`GlvD=Njx1VX2t}6JMna?kr@^IR^sV6C^IDZ8;PeWpGgS5 zk@!W#cL;t1@$?gsX%&1m@igT#^@3kX{58Z^3VsRkG{rMs!Cy^0{gh-pg1?M-n(7%v z@NXfWrg&!R4XS?;@m}I51^?P2@QaC`5d2x1X{u+&z^fyh zNPvc6n)*{6-gM8E;76`_gy50d$3^P#vP>te=^BOngFv>aBc

l=bIT<9GU17{V(l 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 MO1#d3lG^kCFJ9#G(*OVf literal 19696 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 u>kKui^hd5=G{2^`*pfRzDdEvvi|{-!-3xb diff --git a/hw/syn/quartus/Makefile b/hw/syn/quartus/Makefile new file mode 100644 index 00000000..66d95034 --- /dev/null +++ b/hw/syn/quartus/Makefile @@ -0,0 +1,37 @@ +.PHONY: unittest pipeline cache core vortex top1 top2 top4 top8 top16 top32 top64 + +unittest: + $(MAKE) -C unittest clean && $(MAKE) -C unittest > unittest/build.log 2>&1 & + +pipeline: + $(MAKE) -C pipeline clean && $(MAKE) -C pipeline > pipeline/build.log 2>&1 & + +cache: + $(MAKE) -C cache clean && $(MAKE) -C cache > cache/build.log 2>&1 & + +core: + $(MAKE) -C core clean && $(MAKE) -C core > core/build.log 2>&1 & + +vortex: + $(MAKE) -C vortex clean && $(MAKE) -C vortex > vortex/build.log 2>&1 & + +top1: + $(MAKE) -C top1 clean && $(MAKE) -C top1 > top1/build.log 2>&1 & + +top2: + $(MAKE) -C top2 clean && $(MAKE) -C top2 > top2/build.log 2>&1 & + +top4: + $(MAKE) -C top4 clean && $(MAKE) -C top4 > top4/build.log 2>&1 & + +top8: + $(MAKE) -C top8 clean && $(MAKE) -C top8 > top8/build.log 2>&1 & + +top16: + $(MAKE) -C top16 clean && $(MAKE) -C top16 > top16/build.log 2>&1 & + +top32: + $(MAKE) -C top32 clean && $(MAKE) -C top32 > top32/build.log 2>&1 & + +top64: + $(MAKE) -C top64 clean && $(MAKE) -C top64 > top64/build.log 2>&1 & \ No newline at end of file diff --git a/runtime/libvortexrt.a b/runtime/libvortexrt.a index bc47d2df7223b1229e09a121ff3ab96b89cc8f70..1af78dde152475a3445b987988bf5e056f09a2ac 100644 GIT binary patch delta 126 zcmX?=b}DUxG`qR6rJ03+`9>vqMo|#k+|*J*!N}0Sz*xc1$k5otY;zc6K06MnTO88N RIHb6E*hO(jsVS-m0RTDp8!i9< delta 126 zcmX?=b}DUxG`pFFrHP5D$wno4Mo}nRLBY_#zyL;W4r9z`$02o#Lz)?f6c-P>C=Mw# HMHL|c|3w-C