From c4492fbe34041b8dfed35fd0797518166b39e011 Mon Sep 17 00:00:00 2001 From: Yuning Wen Date: Sun, 14 Sep 2025 10:35:52 +0800 Subject: [PATCH 1/3] part 2 and before finished --- stream_compaction/cpu.cu | 41 +++++++++++++++++++++++++++++-- stream_compaction/naive.cu | 49 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 2 deletions(-) diff --git a/stream_compaction/cpu.cu b/stream_compaction/cpu.cu index 719fa115..d093abbc 100644 --- a/stream_compaction/cpu.cu +++ b/stream_compaction/cpu.cu @@ -20,6 +20,10 @@ namespace StreamCompaction { void scan(int n, int *odata, const int *idata) { timer().startCpuTimer(); // TODO + odata[0] = 0; + for (int i = 1; i < n; i++) { + odata[i] = odata[i - 1] + idata[i - 1]; + } timer().endCpuTimer(); } @@ -31,8 +35,15 @@ namespace StreamCompaction { int compactWithoutScan(int n, int *odata, const int *idata) { timer().startCpuTimer(); // TODO + int count = 0; + for (int i = 0; i < n; i++) { + if (idata[i] != 0) { + odata[count] = idata[i]; + count++; + } + } timer().endCpuTimer(); - return -1; + return count; } /** @@ -43,8 +54,34 @@ namespace StreamCompaction { int compactWithScan(int n, int *odata, const int *idata) { timer().startCpuTimer(); // TODO + // map + int* map = new int[n]; + for (int i = 0; i < n; i++) { + if (idata[i] == 0) { + map[i] = 0; + } + else { + map[i] = 1; + } + } + + // scan + int* scan = new int[n]; + scan[0] = 0; + for (int i = 1; i < n; i++) { + scan[i] = scan[i - 1] + map[i - 1]; + } + + // scatter + int count = 0; + for (int i = 0; i < n; i++) { + if (map[i] != 0) { + odata[scan[i]] = idata[i]; + count++; + } + } timer().endCpuTimer(); - return -1; + return count; } } } diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index 43088769..35c6e7bd 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -3,6 +3,8 @@ #include "common.h" #include "naive.h" +#define blockSize 128 + namespace StreamCompaction { namespace Naive { using StreamCompaction::Common::PerformanceTimer; @@ -12,6 +14,20 @@ namespace StreamCompaction { return timer; } // TODO: __global__ + __global__ void naiveScan(int N, int* odata, const int* idata, int pow) { + int index = threadIdx.x + (blockIdx.x * blockDim.x); + if (index >= N) { + return; + } + + int diff = 1 << pow; + if (index >= diff) { + odata[index] = idata[index - diff] + idata[index]; + } + else { + odata[index] = idata[index]; + } + } /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. @@ -19,6 +35,39 @@ namespace StreamCompaction { void scan(int n, int *odata, const int *idata) { timer().startGpuTimer(); // TODO + int* dev_arrA; + int* dev_arrB; + + cudaMalloc((void**)&dev_arrA, n * sizeof(int)); + cudaMalloc((void**)&dev_arrB, n * sizeof(int)); + cudaMemcpy(dev_arrA, idata, n * sizeof(int), cudaMemcpyHostToDevice); + + int depth = ilog2ceil(n); + dim3 fullBlocksPerGrid((n + blockSize - 1) / blockSize); + int* in; + int* out; + + for (int i = 0; i < depth; i++) { + if (i % 2 == 0) { + in = dev_arrA; + out = dev_arrB; + } + else { + in = dev_arrB; + out = dev_arrA; + } + naiveScan << > > (n, out, in, i); + } + + cudaMemcpy(odata, out, n * sizeof(int), cudaMemcpyDeviceToHost); + + for (int i = n - 1; i > 0; i--) { + odata[i] = odata[i - 1]; + } + odata[0] = 0; + + cudaFree(dev_arrA); + cudaFree(dev_arrB); timer().endGpuTimer(); } } From 3135ff11c21949c360ed16ddad0546dbc5329996 Mon Sep 17 00:00:00 2001 From: Yuning Wen Date: Wed, 17 Sep 2025 11:51:27 +0800 Subject: [PATCH 2/3] all finished --- Performance Data Collection.xlsx | Bin 0 -> 15625 bytes README.md | 90 ++++++++++++++++++++++++++++-- img/non po2.png | Bin 0 -> 28839 bytes img/nsys focus.png | Bin 0 -> 77403 bytes img/nsys general.png | Bin 0 -> 67332 bytes img/po2.png | Bin 0 -> 29242 bytes src/main.cpp | 2 +- stream_compaction/common.cu | 19 +++++++ stream_compaction/efficient.cu | 92 +++++++++++++++++++++++++++++-- stream_compaction/naive.cu | 8 ++- stream_compaction/thrust.cu | 17 +++++- 11 files changed, 213 insertions(+), 15 deletions(-) create mode 100644 Performance Data Collection.xlsx create mode 100644 img/non po2.png create mode 100644 img/nsys focus.png create mode 100644 img/nsys general.png create mode 100644 img/po2.png diff --git a/Performance Data Collection.xlsx b/Performance Data Collection.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a2edaaebc124258a84361bbc9e7673999d8c6c38 GIT binary patch literal 15625 zcmeHuWm{dzw)Mu{U4py2ySuvvcPF^J6Wk@Z2X`m9LvV)>+}*-Ur~91r$?5yNKj7Z= zVb|hWdk%Khs#$Z+QKJ;3K|oOf-~dPf06++Ep;{1~ zHk$%_-lfcgG7!Q=gX6?z=ORkKi{FFmSm(URjU$b13x=aM>*dsyL>i*h$GQoOZw!he z+QFuw4rMnEyvPqS{q8D&b0=1MkrZG|<>iLPy0nQizA#VESE*}UEE>~XFRCc1phjmk zA`mhWsGtEHq-EwXW~rFgafb5TjOmUW!i!^ZixJH21^T$&y>sITqgVtIW>60FBij)_)BX7VV$xtC_4LrX z7;k4{HG6J;haZy(oDJdtHSEymuri-T3&EGa{|S9Tq&Oz1I}{pT_Ee*e1F_UoPls*l z+6?RvGGp+y=N<+Cczp!{DEx;zH>ffYU%$;!nKy5Rd2?rdM-yu&db&S8|Idy87yItt zx?T}4E8oWe8*(P`96EG2xAqZHNZM6UqK#0+$4_ze-1ZS;_92ZdqI}k+Nx5MXo zWMz#f`f!NwcAKRl5*d}7xY4yTB<0cJ0|XVBW3re-#nu-jm${p{+ca@0cM6w|SgP{o zl26jZ8^mI>7a}!?lXU9XP$-4CA?Unm{#paFn(K!5RX}q>$|sc})lKZVhY6Dzz6;4k z2XOphoHEBVX=p=EhGt7uUPIP|HxJmV%I2IF)rQ%QTtx2r#@5|eA{kvMFJ82AnL|oM zEXemvlj4JUx5sj6}&+j|ifLBvm+mLcU1Nco*Qbm=bOwQK7N1OJnH3g=TE~PSjUwX=;OD*Q8 z%V1hI1LMViOVtZ@h=_cH1lywHI5H5=hK5oEqF6x!zJC<3&?;WOFTP2Ycbc(WSX&0P zot(1D)0jI{YR=Swq7=7+ysEe3U#E5+xfSb;8Q??CaAK|MP*#vET?a9xC+;!md+dqX z1=Zuh4vsGz!PAe|Jie8j6v01CwQkr?|9_i{Qa=B%ber_ z;fI$<6*gs3N2$DVlD&{!O6*>xs>M-|b1Bvv$v)|7aAI88IM?Q+E14c(M_(Q6B2Y$} zgkHa|Y+t*m%F(&0Nx~L6&3v(|Fu%e}K(6}7O$DtUVlf8KmN1F#7&EfV{@Bk1Lg|+* z#YkZ$`$Cj4ktN7;j=@ao%WMhkYMa|i#a^dW)QF4z8C1%pd<&mMswDa&gyKP}>)jbK zD11pl%GMYK#A)$P&c_H&cfT(Jk5{s5a)g&0?MN!5_uq&4p=u2{AXg1iqgN@oVpgZW zxgDQ|#^G;TN99Z2!cLTMe2Ql&TKu*uR7?>7dX_pd)Y|l(-@@&O(9ZCNPF2S@N8+7WG7wLON5{mn=LQ~pz#}GTNUkQbgQF2?3C+8t?cM(b};{ICP+<9|9R&Ui{;Z`PWJ_;U%uL;XKt&-KeM#aZZ zBpMap_G3~J*4tG#Je10E2ZD1>^~L$}T#LsY$@lu>oWugV@G`4_>idsQ;?I|ua`omM zt#6Kk4S)oCbCN%U$=_Y&Ux5YaEkAri`QLq2D9K8HVL~p<=L)EIQF)vLIVi)3mHa_Tb#|pmVaZ?#tmjSel-pP zX?RkJ7a$IXf_!{jpYDXx!WTb8la0#p{hoppD>T1|NaVU@CWOUug5d*`rPI{A zk++3)wEmmlW03N3Wk7vX6G1wq>F#Tb@X9TCPJlc9^c5DABoCZBV0!;6A@zNa=q==B z`?IO6`-D|b{v+%zZn-pG87r?>h%-UxkT||CWxUgFURs;#*_N}=(+FkP$|cR{^_l6n z;la6$w>SOY>uPo?C*Bbl01$%;0ARj-a+dUn zPqPu|ALJY;q^7D~{#{A+g@@Y|Qq5Y%W=~r6)e{0GKFQGl!+-F7*W?l7&hCyRwIkrD zzydm5gpqU#QhCHwdn$)Nn;apLV=^P2dR9Pia&v#@@TF~cdNHdUh(}Op2U^Q><9igR zV&Hc=CR!E_C9Lw6LG?D1s)p`Sf|-ay2OhKZ(U9Aq)fj`+vUuR^s6{JtFNB)h=E0jb ztw!5i3r6tbmbH_WaE4aVFJe>&lR#48=noz%n4|2_SA3+*bVI}2S=-F-tb6ac$!UXG zCsg=^n2r{_a()ERVq&Pzc>l;}7>?597&?VmS2$QnPBd0m^9YpPfXvW0SaVtOq8|4=tA{+`04e6Ti;_G1K}$xlUHT1rCwcO$;c zgOdbJ4dOc%K@eo9qI%gm-B1-uEU_~cJJ9)v0kqS#+_oAf&ngPn{3A09i;?*>8RPhT z#))AaS7NWH5b=@i7~4MJgad-9F~}2iLQ$WczTAL{M+GwA>~eHLI%wt#yA=q zIK3sMZftMUIua**{!nB!WRRn z)N~FxC~cINMEf)i2>-f~dJz-s#CODS%V($gz=z@=Vy(}{n}*rq38pxMt)Fx=S%6V3 z`S}_>jSm)!849KYu@?rLg?-+|C+VEvf|7DHKJdMwC@ed&=8V#&4ADZg#Hl;tk_k4f zFY?xU*mTM^#=&}^T+q6>!$(caWO}EwY!0Kr7?$#r#6Y4g5?NK$Gl$N{W$r!>x%*Q{ z&wbDYQTSqjo9R4w1WzPrlZ1oZEEp+FPaZbyBz0 z&1CU%skP`p=7w-KB!UtO%qy5gF5$vEh3WJ|-rJ~Jx+A@nWDel00H*{apCy(J?@VT3 zRaKw4d8*xU7UjBW#4dCV;Rzu$$pqZuC>WT}?L#5Q$0&O= zZZxoQ<=GsCiNOyvc+7kL+PXP=^>tf3SUHoG>vVA&@Ruk}k5AQ8T!|YMSZr8*pG9nl z!HGbLG{gEcbEPw(43kbr;yWiZ$@J41cHqOE=FPP^z@=vx9ny`HoJ}F#eyU>9H5P=U zH1d`qQ7TCrM@8R*hH9l5t#Pj(ZA&x?CUR+*H;Qh0oyrnNWQROv$w$6GYSgnC zDghp5=-dl87Kmu5G;yQbqoXjP1J}nh1_=#jaBf5+Q5Z2Tfg+4+@bcs{YjOi#znfK5 zQb9pR(#asscI&mmDB6lMfQ_nWyRz;SfY#QXID778HhT~5rj6T4Uzmt#nDC%x@pLh- zVUYIj>9wP4a3NTD6E!P-fW3H9jtUKESJt`pL`0->E;GSl3`jby{mQ%A*4bGC@9eGo zj{h3dm3KY(Z?4A@EePHFR;_<#8Uv~j75UhRqpl07N0@Gb{56dMi)MXYW$3i4%gt^` zF_nhb7CN$e+~*5kPiLB#aSNocgf#MiEp{!8^9O8X47X`R;!{_0P+7u8oA}o=q%Atr zOIy@o_nByT4QWHTvW0SO6o@IOGWRU+uDMp#YfYj!S^j?v5VHJ!G(m4kw;%Q&WYf<8 z;cRYVV?zJ)^Ji>0)||9kVMFaiSbQbeKh|nLPv(R%8BrC~v)_f=4CpG$^S>OOwF?lduL z`~%)$a}8o-hh>s{F4l#WwZF0(n~`P!=&I?}A&cR*JJPGIG|!+1=qy+ZP#(FrA@+Y}tU z`I@7>)}<%v8H|L+ZOz*D>5=*vI`F_k_a<$8FhkCp|Ge*XpbJ=`CK`tYVvAt)UKzlW z)-B;g*E*TIaC#F6T<(7<9eL(cw^4%SHtuT_>BRn#ALO$@i?1&XKdu;}=-WLfU-g#) z%~-FWx2wJE9kv^G*lu7El#=pIQ+kMOc{k?lAF=X7)!ewxL&rU~+C>Cet;?ic7>!C7 zRjr^rzSI%|NInt?Dv4L1yM>S`^dsdNXCm!|jTuq2gGph9ntnco>i~aF;n&wK4a? zc%SIbu8Fdb?o+yaUM^$#_4n`ww7|Fe?uJ~;QXfFafr?c z5h&KuP9Z>X4mx!pPXj9s6GwpK=7 z4!yuEZC#)FxYozRZfv;PbJyGKUj@fc^G!T3`mAbs&Aj7}<>OC&oRNAiw0YeK=~^-m zxwP=9m){ug8G4IR@FG!1#5QYvc1n#a5;j-CfojNDwO&VO)Irw<0b!r~SnI$<)=5Id z7d{P)e#6>ulX=y9lgSM;U{LuveU1!M|Gd%#cJy1S>=mzNCD~nmi<>>khztEYZ*yzaPABc^&K9GDJstOWa>CGcu`>fnBu}y|5 zV3UBR!NgfTb=d5mbM|6@6HJjk!m~RFI65Brrejg$3YKt)1~>}+0G60$D_zAMN-my~ zvW#QAOzVZL!nVg9v z@6_RamEl-avGbbe4hbOfXcc(LvIr>&1H8p)P$cltqZiGcth26RHA~DgJ zBj~V)ry#I&w_5on_xfCXBE-*TfPU%boyK%Y})@{MJhW=}>~^;?An#w-H+uvNu~ zQZ-&3vlcG#VTOG(Jw{JOCHWXM?oV>r(fHMu`kd(E8|Wj@65V zs*9GRt@1Qao?`4h;$qVqPobZ5mr(dL_#D0gC+skSo{E?v!Q(t9N3y}`Sl`Aj)8xvvy&116dAwMFAw zd}dY_;li{7Ek|ontD)4uBL5{r9+NU>!YF1}n@kp?SP~%2trWQ;5lL8WhKaGFo?Z##*}6iNbQ%tY$``_6g_BrkKg$l;8IiMHB%0YWrC?5A z9d$IY(S7e$6xZ!|>sZjCP{M~#M_{g&pKtsngwCWJKY)CowB$`gXq0^=;5Zm>c!e-Qd`D zZ8ib^*KGS**tBWh>EXKWuufA7nn=1m4VFuAA@ZYj)z;aXGlB;hmedp}4xO`n)l9+! z;hXW;WhT%lU!&>SNyBKicpEHPpYWDCz8dd97@Ya7kjUf(&v3SHR36Q5vL%XSqJtYx zTesBe=S$t|QW$NgRimE)N-c!Inh?+e0u-=?7{Jzu}?bq#9~Ht)|Ow$1WD$2 zmc1KO#^h``h8uZ~C+!s$T;0L>`)dA7HQeR0(}Q(3LYac_ua@6&|$-#XyE zCnX`W&tS!kkE6r`rzC~>Q)5HwW*Oi-SNlM4%J&|9R`O^c>@8DsGlwhHwL>2j8K8<@ zDSFqqwoYI968<@<15qSp6n`Us_&@=Gx5EFAs^7`nz|q85+1b&;*6gR7R3uDFfiNP5 zo&}sSd@FdLu^cF|v_^#16N$RK&1q}u8aQk$YpQ)D{eak+N*SSaPQv+pgMB0D0qsiN z%pj5wTfVRvS00pLP7lXYx<+#&x(ZB0tsvj*w8 z!f1oIFkt|qn1fcB+6Z6aV3Dx4&XFrkN3s|es^mo=^RTEEBrOF9gC9o~NmkYVL%BxJ zNIPNXjZY|$7s%|DkfZ9guA`wcJqSzoy&icyVEs-q@ws=_)ksJ!m}japEOHmzu#y7j zT+qASj*mOrI|JTi*bc>4gA8XVa#{N6VQxk7m@qj{t z#sVUNIMZo7zg!AwKM`mWBW_5?_^Q?;N{lTTd z-9eA*lP7#DS0E6m$|t7#tD{)`jZP5#Ed{BV%lwb?zzFT5o64$S877*da)mVHmuzu$ zl=)vu1J27})#lhBcg&)1cTlMd3$bfgJk%CrU#HymRq_K^9sQR!Yl{vT(#*tUqwrhA zjAp+pYX+5@Y++19V^m}^QK67uZ!c;-me;DJ2dyx8gxGev$lhJ8tQsQg>n~9`xr#-E z900Y*%-3vLCM%S2feyl!6}o?w2V*J(WM{hFrmHXyN#%DnnEI2XQ@otP_0n!DDMl$9 zY1&@kG@6YVqddjP^1}v=SmbjaM33d2hyek~--ukSEH?>dt}a4e3Wa>ycebo# z@Gf?=3NRI&P+Qr&j-_~g3vd5D%}nqJH%6fV05QIQ`?t}Xf4?z$Kbt?RHf?>o6%J%y z{>{!nxuHHh_~aY?WJS-o#o^Pf88-77-OY9L@Wu~uB1w4(&5rYadZ*hij0@ zE&Poa+|6ktaO3*Y9>!rq&wScPl}^BCnFt>wnqZX|?D66_hB1g=uI4oDa;->(-J_J^ zcj7t+3V-a}fA)39fXgS%JFXQ#n)j2?gU^raG_JtBeKM*4f<*!Xm+3jvnYOVmL0zm7c+}$ObBGLdD0Cg)OEN_E7~tX-&KLw-x_iWneJ~CRTc^r zXcqYy32ruC_p&fDG@uC;Bk>hu=Yc#`_5rQ6m2Aw6%rq&?SDly_LUqSdJi$t#B~vFt zztsg!2p}xr@C8}q4vWem-F}Y6fPcE0!~!{o)Pf4H8E;!siu7(Ni}bOe{Fpb~B;zbi zKyJb{$vbn>q%J@GNkB=_KYHa6pq`;)bOb!v10QwmYwS*M5|1mUP0tWdpXYcassjB< zAqpv{RD<+h)L&D_?7jNs`kwUW2WaiV9QMb+5bI~F-ej#buYN5-TgKf4lYnHBUaU(@ z(#m1E9#ppZA)UIWuq~eNj(x5dap65A?~k6OP`BO)XGwtyrFz??;94zbxqI*t-r` zjaU1MFeXFCdTo97aOCNx+P&tX>DomAC^1j{Tt&1(8xu?8L<}-zMGP{NlKBxc z*0*<)@{@`)3SN=} ziSO~;i`gGGZuV8V-CF}A6&*eK6fz0)_6ce*97$jNdZx%1N-GF$y_1+gHOYI@5_?i^_y9WSfSfc~&7w1@j;f->FT%4OT;9#cE{sRsD)YjwCF?%|X^3 zQm;YYcUAD`(%OpliM|;e6Wy6ItJ&-~1`Ff%Gu)gXj@K>T%bzgV^O!L`bRdoJa(;Be zVT|I}*&R+n`(XxF*hMLJ-J5V;u_qUpuwKJ?VNsw@_%6pI1wc zQ!9YXSHGSG&WgdlQm(HO7k}SuB~b3G;yQx!Rp8VCNwLcu3+^l&Zr4DJoNM8Lz+h7# zy1<7|(U8-9=Uqv4lBBsV@6$n_UUjLY@9w8r6Q_ou?<-9ioWN zU9^zU%1gjKWraAPlX`%FE@Y3jKx-*vQl6SeY$5UDk&p(V7ImNyZnIlshE>5`KnMgw zMLfS5F05dF7dz%M9)C)yVkt9Ixx+NOa2poLhkWBe8TDrfO#8J!L{B-wyf?Z1 zBn4bDcOIW@rf<0U|?S(Cqm( z`Nq^IbaBgQ#VoyponJK9?&)41JZ9e(pLGl%1LsYa3;j3?9WW7A2am5S(f7fnoN=no zJy(rb-mFp2AlJeTWYkV9EsM@iDzg_cjA=Y%Wh#wb&CeXmg~R@JF>Q9!gaR{Xaz+VP znQr)mQ?I+`pzD0zfUDgfCE^x{yIvOY$*;ByuaGN(=Fg83tr?Z?|on{2R zdy8OJIryD1Gplp)On>q&*J^oPSzXBqI~hlqYOUK7Cb|TEq=&z)B?D-TDMltv&?SLd zBGa&>iR2HwwYhrLK@D8krum>#Itf)5mIQHAtVe`T{L>`g$-ClL<_L{IM!&V}<3bB= zhOtl^mc$HWv@I!Q z9H?(4Gb~USMN%M;Py^`fN%}?#Q9$u0!CflTOaH_aAsH&$VlpSK<1XIbdb*LSR!cvS_1-1Yp~|ZY(`#&GZ~5LXD@Nxf$?j~Z5JFt8 zsK;f_|Bff^#anfE6QX`KJXxL+q)UpR^@))B)8W;4t3AY$7q>bpeD-Rj;Y%R-LMx*4 z`L}Fjx|4(9xl;D6s*bS)&jZ?b5~vOFt9hBH7kX7aT7||kyhLhhzvD<)dm$aQDL03eIBG-DcmW2uXHVsWP z-fZC@oga=fZIWm7eU0{l+Z*jcp*>$h$a^k$n0-unb}|I?A)NBYa!mUvJz`n_{Xi(|ho`Y)!-}tapl8YoW7iD@LEnpzsLDj~ zC0Hg;A~~g+*l+a*K}Bio?@Sj1b$0mg#+em$G53|?I9x=Fo%hzoLM%Gvg*mJv&QRp} zTXa(QYhf}IqIm`BaI+rps_&C;@v%(`lYfuAR}3jVHsrxe`*hoY`MV5PIw%6y`>F6io8l$gQ92?bMrNCJ31*&|34qEv{&m%T5$cg{i;3 zm~&$ppdbj3C6ws!9s?Pm@)Z~khOB&d zETrsI00YsMDC0V3+Y(Z_s@JTXn5z*|od&t*_z+ru==CC*WJn11AiBJq17qf&BUBH-;^njUkyIcZ(fjX(u>c?K=2(Y41MFhx}2 zA8h~^?k-H<&hDY+o^wZM_wYC>{O=$82o zE8_LJA2k{^+|z08S)n%JXc_TR%4J@n0e-VZHJ8R`WB9s$(wGwkG9?vc{fWO2mn7Vq zG)sGhCQqbr9qDiW{NF)2{-)V z4e^4B@Z|S2<*Y!oB#jcDi$bGprRtL=W4A;Lb1|Y-(7j;UPHb_n<@*MT)|6Wq+wbzk z(WIq>%J_imVxJ(#+C#{)6p?-qb>zmVWPSc1)67D?AX)8|K)wMS>Ux?RqBEYefXl}{8SK)2vx~S!y z@3(w1+j;n@LuKdK#*baOcO7~ds@?)GEW3CC=30thA^|P4ywUsRE~M{%c-^;)`ws{s(pSlF8zkVxR_-^g=0mE>Iqnvr zLHJmq-?_&ViZW#us8G1=Y-%sj($}_cE(XBx2EV-D#1D4q9YBiD^xsr=T!HD^ml&3^ z70^t^L|RVYLTY#)ZfTipX5A1}CQr;)FMXS91s>KLl6euT#h5oPR{s#zh&eqX7fHPq zsEmlZlwpOT;+rOKIRQ69lReS*njR9SJ^9o>n?J9Vt?1xAt0*7UC59K1BahjYy6N7w z;d2Xp7=F7j)OQ=3?)+`ztbywvMPO*3%Xm88#)OpqGkSK#Z}77 z&8!e5bb=u)JBS5~W|qM@bWn0j#K;vlKN=JE%CHKRAkCBveYQj8A$Rf<4$Im$@D=rMq=ik}lr1@zQ zqwj~tnUIadB?A-B-gSj4eILp_l=4=s(0}XOe={HOBG()3Z%;^n_5R-k+n;^^JI(e# z^}Zu)s{AX2#>@#qqvViSjh$UC23XH*HTN+)x9Cke`9(o@ejT=Bnm>V+4)?NNUuDa2 z3;{=;je}z{3(XgWq!n3*LMS7yZG&qXCTyX#?*!@n#ou177e3^Fs$-5#vwlYUH0DQ0Mi7#n2Tr*F_c?y_ znx>>yL4S9I{U1B;hqLNG^Y$e6t@HSA?HjH8m#h5Q^f)7nbnFkt#I4Z^c73l{Xry z3yvK<>O-L@rHiFg5`&?J&J1~K+rbf2*Oo|D5Mh-Hg>{#mR0;E+feAf5w1vY za!6x4BLzo0`!^EI&e7zrQ!@Xjf_$4NUh#_Zfefg@8?w&`1!oG-a!ueGd8YDoj7a$x zl@@1gL^hJzgSTh2)r6)4gX>PGu9F=WjXXnKi-9#sYMexhQNRj1ky18J*IHG*oX{0U zQq@}2L(@n!TIdVvSauW(;Mvi(-ObR}o020+>)*`xbc7ijy&&S3hPV?k*q0@~KhIh_ z^xc!M0LyLPqf6V%Fbvv5z-GjS$w~Bx8(*0m;t_C!V3SaoF@{6_xZq-#`LQ%bjZ$2( zT64jjwJo<4fUv#Kw`j@IXoJ&Wf#0`Be((MAwrPj0R@R0Fp<*1MZ0pBq6M>z$egrEo zwf10Xy0)zEq3qwxA5$gWU-!5Vf+(`tH%0iU=`M|rH;P6TpE}li&lY7ynxy77RpT5Z?k9;@_vA zfxZ3z&AzuG`|HY#@A*S;7;*;o2p@79ooP!EBA}*N@U}Bs4UqIuH{n93k`DNSJ)CWl z@(%nM&SiPUxf?IPKDtP5McIzTcY8rxY1?aMu_8D%$`vd_&N114wv)wHx%%et@Egh~ zGL<^j(K}RYi14h@9paiWJ^>LBN@AE4Xf@&xtUbwvsS*~#r8uRBMT!Cz+vd+y`CBtb zPvE$hvpoDe)uQ&KiR1=$L*Rp&k!P&59jEs*Jp4#W$ zgW*R8>?h}*<@aQbf#DY$mL>&rVvR~Ifd=qnd|@rIwSX}(jL+-Wgu(V6i+_-_;x<{T zl$zQ?tx%n&2o0KRfRn^u`N%Nh>+8e&{BrTSXV)W%Z|Tip`)=@ie&#J4DlVG~I0yt( zXb^QE`b?AMC!$Uuo_8R3upp;?brnGNZcbwh@-p-t=h;tW6ivhi_}+}Cbd`N0`cy&1 zHhAd$wQ5LGT-`n^PXWzEqGBs)V^+It3Vb*1=&dUou=qN1lVlH}nG;-PP(PlNcK=8l z{#;IhfN9@02><#&1A?*PAx8-4*0Vf_U7C3X1S^!I(=U#3F1f13Wj3;a96?;DuE5Zd1TMEG~M z_4hpMca-1vr+%Rj5&T5?SBC$`rq#~`|96DnNseC#_*8#K_(ggAj_`Y3@eARU?(Yaj zzp9MiA%0J_e?j0e{Dk=bCEmXS{+_-50>owf3Ha~P{U37K-vNKm2!8=$G5x)h|Ck^C z4)&k<)GsIifPxtS_^<5hck};@hkrLOX8oJ_U(r!P8tl!p|47`B0A6owmMg~}fBiqq C(NSXn literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 0e38ddb1..6dd32e8f 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,92 @@ CUDA Stream Compaction **University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 2** -* (TODO) YOUR NAME HERE +* Yuning Wen * (TODO) [LinkedIn](), [personal website](), [twitter](), etc. -* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) +* Tested on: Windows 11, i9-12900H @ 2.50GHz 16GB, NVIDIA GeForce RTX 3060 Laptop GPU (Personal Laptop) -### (TODO: Your README) +### README -Include analysis, etc. (Remember, this is public, so don't put -anything here that you don't want to share with the world.) +#### Description +* CPU Scan, Stream Compaction + +* Naive GPU Scan Algorithm + +* Work-Efficient GPU Scan & Stream Compaction + +* Thrust test implemented + +#### Performance Analysis (Answering Questions) + +* Here are the two graphs for the performances of different GPU scan algorithms (Naive, Work-Efficient, and Thrust) and the serial CPU version of Scan. + +![power of 2](./img/po2.png) +![non power of 2](./img/non%20po2.png) + +* I have tried to use Nsight Systems only to check if I may find something. But it seems like cuda is mostly use by my own function, which means thrust may just used little stuff in cuda + +![general](./img/nsys%20general.png) + + But there is some tiny things inside and that might be used by thrust + +![focus](./img/nsys%20focus.png) + + As a result, I guess thurst functions actually make a great use of parallel calculation in CPU, or have excellent algorithm that runs in just hundred microseconds and finishes the use of CUDA. + +#### Result of running + +``` +**************** +** SCAN TESTS ** +**************** + [ 32 7 4 15 27 47 43 11 5 18 44 41 47 ... 30 0 ] +==== cpu scan, power-of-two ==== + elapsed time: 20.1042ms (std::chrono Measured) + [ 0 32 39 43 58 85 132 175 186 191 209 253 294 ... 205520488 205520518 ] +==== cpu scan, non-power-of-two ==== + elapsed time: 19.9824ms (std::chrono Measured) + [ 0 32 39 43 58 85 132 175 186 191 209 253 294 ... 205520437 205520458 ] + passed +==== naive scan, power-of-two ==== + elapsed time: 7.2087ms (CUDA Measured) + passed +==== naive scan, non-power-of-two ==== + elapsed time: 6.83536ms (CUDA Measured) + passed +==== work-efficient scan, power-of-two ==== + elapsed time: 2.68765ms (CUDA Measured) + passed +==== work-efficient scan, non-power-of-two ==== + elapsed time: 2.97347ms (CUDA Measured) + passed +==== thrust scan, power-of-two ==== + elapsed time: 0.885536ms (CUDA Measured) + passed +==== thrust scan, non-power-of-two ==== + elapsed time: 1.02086ms (CUDA Measured) + passed + +***************************** +** STREAM COMPACTION TESTS ** +***************************** + [ 2 1 2 1 1 1 3 3 3 2 0 3 1 ... 2 0 ] +==== cpu compact without scan, power-of-two ==== + elapsed time: 29.0733ms (std::chrono Measured) + [ 2 1 2 1 1 1 3 3 3 2 3 1 2 ... 2 2 ] + passed +==== cpu compact without scan, non-power-of-two ==== + elapsed time: 45.5551ms (std::chrono Measured) + [ 2 1 2 1 1 1 3 3 3 2 3 1 2 ... 1 2 ] + passed +==== cpu compact with scan ==== + elapsed time: 83.1376ms (std::chrono Measured) + [ 2 1 2 1 1 1 3 3 3 2 3 1 2 ... 2 2 ] + passed +==== work-efficient compact, power-of-two ==== + elapsed time: 2.79856ms (CUDA Measured) + passed +==== work-efficient compact, non-power-of-two ==== + elapsed time: 2.45539ms (CUDA Measured) + passed +``` \ No newline at end of file diff --git a/img/non po2.png b/img/non po2.png new file mode 100644 index 0000000000000000000000000000000000000000..dd3fa95eb4d554786c1ce940efb110570dd57ab3 GIT binary patch literal 28839 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 literal 0 HcmV?d00001 diff --git a/img/nsys focus.png b/img/nsys focus.png new file mode 100644 index 0000000000000000000000000000000000000000..1f466fe3445ed1df80e46b1d80eeb1f5b5826b6f GIT binary patch literal 77403 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 z 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 literal 0 HcmV?d00001 diff --git a/img/nsys general.png b/img/nsys general.png new file mode 100644 index 0000000000000000000000000000000000000000..f5fbe3e65f0f0aaf9e560e57a66c6fbccf8f2b87 GIT binary patch literal 67332 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⁡*p?hJx;C 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 TD&4P;-$h$F94y&?;_`n1zBopO literal 0 HcmV?d00001 diff --git a/src/main.cpp b/src/main.cpp index 3d5c8820..5d515b63 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -13,7 +13,7 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 8; // feel free to change the size of array +const int SIZE = 1 << 23; // feel free to change the size of array const int NPOT = SIZE - 3; // Non-Power-Of-Two int *a = new int[SIZE]; int *b = new int[SIZE]; diff --git a/stream_compaction/common.cu b/stream_compaction/common.cu index 2ed6d630..506269e2 100644 --- a/stream_compaction/common.cu +++ b/stream_compaction/common.cu @@ -24,6 +24,17 @@ namespace StreamCompaction { */ __global__ void kernMapToBoolean(int n, int *bools, const int *idata) { // TODO + int index = threadIdx.x + (blockIdx.x * blockDim.x); + if (index >= n) { + return; + } + + if (idata[index] == 0) { + bools[index] = 0; + } + else { + bools[index] = 1; + } } /** @@ -33,6 +44,14 @@ namespace StreamCompaction { __global__ void kernScatter(int n, int *odata, const int *idata, const int *bools, const int *indices) { // TODO + int index = threadIdx.x + (blockIdx.x * blockDim.x); + if (index >= n) { + return; + } + + if (bools[index] == 1) { + odata[indices[index]] = idata[index]; + } } } diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 2db346ee..734fe611 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -3,6 +3,8 @@ #include "common.h" #include "efficient.h" +#define blockSize 128 + namespace StreamCompaction { namespace Efficient { using StreamCompaction::Common::PerformanceTimer; @@ -12,13 +14,64 @@ namespace StreamCompaction { return timer; } + // up sweep function + __global__ void upSweep(int N, int* data, int pow) { + int index = threadIdx.x + (blockIdx.x * blockDim.x); + int end = (index + 1) * (1 << (pow + 1)) - 1; + if (end >= N) { + return; + } + int start = end - (1 << pow); + data[end] += data[start]; + } + + // down sweep function + __global__ void downSweep(int N, int* data, int pow) { + int index = threadIdx.x + (blockIdx.x * blockDim.x); + int end = (index + 1) * (1 << (pow + 1)) - 1; + if (end >= N) { + return; + } + int start = end - (1 << pow); + + int temp = data[end]; + data[end] += data[start]; + data[start] = temp; + } + /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { - timer().startGpuTimer(); // TODO - timer().endGpuTimer(); + int* dev_tree; + + int depth = ilog2ceil(n); + int N = 1 << depth; + + cudaMalloc((void**)&dev_tree, N * sizeof(int)); + cudaMemcpy(dev_tree, idata, n * sizeof(int), cudaMemcpyHostToDevice); + + timer().startGpuTimer(); // not to include any initial/final memory operations + + // up sweep + for (int d = 0; d < depth; d++) { + dim3 curGrid((N / (1 << (d + 1)) + blockSize - 1) / blockSize); + upSweep << > > (N, dev_tree, d); + } + + // down sweep + //dev_tree[n - 1] = 0; + cudaMemset(dev_tree + N - 1, 0, sizeof(int)); + for (int d = depth - 1; d >= 0; d--) { + dim3 curGrid((N / (1 << (d + 1)) + blockSize - 1) / blockSize); + downSweep << > > (N, dev_tree, d); + } + + timer().endGpuTimer(); // not to include any initial/final memory operations + + cudaMemcpy(odata, dev_tree, n * sizeof(int), cudaMemcpyDeviceToHost); + cudaFree(dev_tree); } /** @@ -31,10 +84,39 @@ namespace StreamCompaction { * @returns The number of elements remaining after compaction. */ int compact(int n, int *odata, const int *idata) { - timer().startGpuTimer(); + + //timer().startGpuTimer();£¿ // TODO - timer().endGpuTimer(); - return -1; + int* dev_idata; + int* dev_odata; + int* dev_indices; + int* dev_bool; + + cudaMalloc((void**)&dev_idata, n * sizeof(int)); + cudaMalloc((void**)&dev_odata, n * sizeof(int)); + cudaMalloc((void**)&dev_indices, n * sizeof(int)); + cudaMalloc((void**)&dev_bool, n * sizeof(int)); + cudaMemcpy(dev_idata, idata, n * sizeof(int), cudaMemcpyHostToDevice); + + dim3 fullBlocksPerGrid((n + blockSize - 1) / blockSize); + + StreamCompaction::Common::kernMapToBoolean << > > (n, dev_bool, dev_idata); + StreamCompaction::Efficient::scan(n, dev_indices, dev_bool); + StreamCompaction::Common::kernScatter << > > (n, dev_odata, dev_idata, dev_bool, dev_indices); + + int count; + int check; + cudaMemcpy(&count, dev_indices + n - 1, sizeof(int), cudaMemcpyDeviceToHost); + cudaMemcpy(&check, dev_bool + n - 1, sizeof(int), cudaMemcpyDeviceToHost); + + cudaMemcpy(odata, dev_odata, n * sizeof(int), cudaMemcpyDeviceToHost); + + cudaFree(dev_idata); + cudaFree(dev_odata); + cudaFree(dev_indices); + cudaFree(dev_bool); + //timer().endGpuTimer();£¿ + return count + check; } } } diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index 35c6e7bd..687d3a94 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -33,7 +33,7 @@ namespace StreamCompaction { * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { - timer().startGpuTimer(); + // TODO int* dev_arrA; int* dev_arrB; @@ -42,6 +42,8 @@ namespace StreamCompaction { cudaMalloc((void**)&dev_arrB, n * sizeof(int)); cudaMemcpy(dev_arrA, idata, n * sizeof(int), cudaMemcpyHostToDevice); + timer().startGpuTimer(); // not to include any initial/final memory operations + int depth = ilog2ceil(n); dim3 fullBlocksPerGrid((n + blockSize - 1) / blockSize); int* in; @@ -59,6 +61,8 @@ namespace StreamCompaction { naiveScan << > > (n, out, in, i); } + timer().endGpuTimer(); // not to include any initial/final memory operations + cudaMemcpy(odata, out, n * sizeof(int), cudaMemcpyDeviceToHost); for (int i = n - 1; i > 0; i--) { @@ -68,7 +72,7 @@ namespace StreamCompaction { cudaFree(dev_arrA); cudaFree(dev_arrB); - timer().endGpuTimer(); + } } } diff --git a/stream_compaction/thrust.cu b/stream_compaction/thrust.cu index 1def45e7..f174c2c0 100644 --- a/stream_compaction/thrust.cu +++ b/stream_compaction/thrust.cu @@ -18,11 +18,24 @@ namespace StreamCompaction { * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { - timer().startGpuTimer(); + // TODO use `thrust::exclusive_scan` // example: for device_vectors dv_in and dv_out: // thrust::exclusive_scan(dv_in.begin(), dv_in.end(), dv_out.begin()); - timer().endGpuTimer(); + + // Copy idata to device + thrust::device_vector dv_in(idata, idata + n); + thrust::device_vector dv_out(n); + + timer().startGpuTimer(); // not to include any initial/final memory operations + + // Perform exclusive scan + thrust::exclusive_scan(dv_in.begin(), dv_in.end(), dv_out.begin()); + + timer().endGpuTimer(); // not to include any initial/final memory operations + + // Copy the result from device to odata + thrust::copy(dv_out.begin(), dv_out.end(), odata); } } } From 012c0655d0fec6095d11376c1657e2b728dd6fc3 Mon Sep 17 00:00:00 2001 From: Yuning Wen Date: Wed, 17 Sep 2025 11:55:27 +0800 Subject: [PATCH 3/3] finalize --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 6dd32e8f..79e090eb 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,10 @@ CUDA Stream Compaction As a result, I guess thurst functions actually make a great use of parallel calculation in CPU, or have excellent algorithm that runs in just hundred microseconds and finishes the use of CUDA. +#### Bottlenecks + +* From the nsight charts above, I think the current bottleneck is that the efficiency of memory usage is too low, so if I may apply shared memory to my algorithm, the efficiency may then increase. + #### Result of running ```