From ab3ff8168da84059fb013a690f20b64908930ca0 Mon Sep 17 00:00:00 2001 From: wulinjiansheng Date: Tue, 16 Sep 2014 21:27:04 -0400 Subject: [PATCH 1/4] Project 1 --- Part1/PROJ_WIN/CIS565_PROJ_1.suo | Bin 14336 -> 17920 bytes .../CIS565_PROJ_1/CIS565_PROJ_1.vcxproj | 9 +- Part1/PROJ_WIN/CIS565_PROJ_1/OGLdpf.log | 0 Part1/PROJ_WIN/CIS565_PROJ_1/vc100.pdb | Bin 446464 -> 454656 bytes Part1/PROJ_WIN/shared/glew/bin/glewinfo.exe | Bin 0 -> 303104 bytes Part1/PROJ_WIN/shared/glew/bin/visualinfo.exe | Bin 0 -> 204800 bytes Part1/PROJ_WIN/src/kernel.cu.deps | 1134 ++++++++--------- Part1/src/kernel.cu | 10 +- Part2/BoZhang_Project1/BoZhang_Project1.sln | 26 + .../BoZhang_Project1/BoZhang_Project1.vcxproj | 156 +++ .../BoZhang_Project1/matrix_math.cu | 121 ++ 11 files changed, 880 insertions(+), 576 deletions(-) create mode 100644 Part1/PROJ_WIN/CIS565_PROJ_1/OGLdpf.log create mode 100644 Part1/PROJ_WIN/shared/glew/bin/glewinfo.exe create mode 100644 Part1/PROJ_WIN/shared/glew/bin/visualinfo.exe create mode 100644 Part2/BoZhang_Project1/BoZhang_Project1.sln create mode 100644 Part2/BoZhang_Project1/BoZhang_Project1/BoZhang_Project1.vcxproj create mode 100644 Part2/BoZhang_Project1/BoZhang_Project1/matrix_math.cu diff --git a/Part1/PROJ_WIN/CIS565_PROJ_1.suo b/Part1/PROJ_WIN/CIS565_PROJ_1.suo index ad46c84a9a00137f71e370ba57e24d2f64f37088..43401efb7249ce9d206ff1b2387f0de7cd9a45ef 100644 GIT binary patch delta 3576 zcmcgveQZ-z6u+;$b{%_TgKdnD!M2vdI_UPwK436lqupRIT$jykK#_IjK?Y@;ZI>{> zY$!t%{%|`+(WoJQU=$*fCPw*#Ou>(k7(Nmb{ZEXdhD0TqQ6yph&TG3=%m@)@U(UPt z{O)=8+LqCsnuV42$`_UCF-x|lEAqUdX)^6G)+?F7vtn(G)9_T8 z{xEhgWjE}f-LgA&od;o;7Kjxx55jiyQ7(wp>9{E;pFx(zF)*%=m4l6aWvyu3c#pvr z=#N3RLfRlcNIS$2*#@~g*jP-%Nmc2YTf0NS+ed0Ye0R;4=7HzGrbe?GsWQt3g$Kxk zfqQ+X6rOyE&dW}t8Q^Qwo3dV+iJFpVGLn+MaR`80EE8U_Mg-w_o9MwiEHoe?y#1m} zbOLpVUT8kpIK+0*fieUuhi^yl`Uw@-a&ovMH)7U~i0=^lMGKTt0iN^|0lmnp4ZJ`H%g+XAYgUxo7?p*87KtK}*Kw#ylaun($T4r^^NP zE&q?7wJx6DEbyue(F%f7O_YgpNX>@Y<{%=p6EX4YyE9=tJT~f6GO%iE3wS^e5>47XGl#0| zIS5-i9kl1saPDG5Pl$%?RrI4}2F+MBS94UXE>|5TCFNzjPhX#4-knyn=k#E1yz(7- z$+@Qp^X+P_{PyUer&X)2c0t7isY3)`1&uz4Y^PnCb-2lByOjGkNr_ zLl+7v-xxMaLxm$o6<#XocHteP6SW|nHSaSSdH;7(P4c>Gj}{Ddgu+^9?Xjsf>Dx zABmn;i_jLIcx0rwL5{-K1en659)-K*+ezG(MgZmk;9$kUNVqIukTzlNxzt~rCoQG? z;wEE1EIy;&;sw$Y$~RgSzVPsP<6n6XLb(XxpA%`ORIEm+;$4B`e>I53gyPia1pQUq zVLV8ioP?S{(dbno`nA9{!yqk$k`5VjunCGBvv@EE&EV_?@YjbOABue$Ez03wDyn=n zi#w>;3?=U10P0Udo`UefK7jHNt`BIOM`9mT8=*)>5+}cJu_lF&0aWu zPTPOtoczv7%UZYl)vc10(mGXN!7b*ZmNzGUT*dd#H}9W1nZ4!KwHpo9U)=o3P@$&8 z##Sind#ll08BHCi;LI?$*1MN^*93jrdVFEc8`At;o!cC}nlI?s-VqFi9U*PEhFul( zy6T!7W#wgFPq1qzc9X;D_4tBer#BSzdv|HUPAyR6=j1C)m7P6-z)IZV^Z9Q7srgP; zE216HPhr2<1&-`M{2S=S6g#anniNho$ZTWmFg^=qJKavU(!41-q{`;>xgZf=+M-N| zUZ*#B0q7eUWi9e&4X9pWQOVPaG|9b`EXpm3W-E)QweHejrf&3wm6((EtDd literal 14336 zcmeHNZEPIH8Qu$o00GjJ6lhA}NJ0rDcih=$I}RjppNWZ0oY--oEHUT3J!j*+4{rAy zhd9voM@w5kDXK(O2~k=qRY*{%TFNg7^arA<2t}=0^%qDj{R!%?RxNR#XLiT;;rrM# z0Xv8}JvXzvv-7?)^M1|DzI}S_yHCHk{yn8G?NrWF&dgn;Tu^o2hcY437Zha$3cNlu zH#g_pR1_3HPv_7Gd<0(4cjs^=a?bZE;3D8cU^Q?t@I~Mf;8Nf+U=08fP}TyM1M7e< z0apN50$&EM0@eeR590H*{6=8EQozqv{7O>EBQGh(Fk{}+70Swaou}NiN*~_ldusC^ zPy5beCBIX17!(W25oG|>vnVB%8Rvn=|0`gHsz=r1YeIHecT`C$mNKObDh6^}Ie>p1 zJjwf3n+7*2D}2|W4&|MEw5cv0(`Hh)n8rYFRLp^?Ody|8Mg;w7@S~yBE^PpP>Kk>> zD}CB+>O7OwP3F8OZGgN_J3#%H*Nya_wxQYvur7I$?=b%guCE5Z3UIux1$h5D;iTJ0|5ElgM1Je0`3I%0>i*QU_USdi~>2aSBDaMTJW(sp{(C|bc`BcD%Cn7X(~&e(e1GA0buu#W|Y$*F}qn!aUF6!a3` z8?g%|o&8*0iO1OYMWj(kSP_y;n`fa+8>qt;)Al5QX=qqTXkX*TZ-V`yP2dzTHLg{A zm-b&)B#jA3?IeEW;UMg>4eEz+)z0>^RX^yH?p18lBYpZQ#w$$q^kd*b2M<#il>)|t zKCu-an?au%KpW_lK5hSx0H%8S^nV=tBIp|6Am5TYZRH9d`@*=*D}BavyfpyJ*8_{&gBsG8>!@eLA_wryK>adW z;H*0RVLi5NL$X-j4_kVNGLD%afMunP>?F}=osGnHz5zJn;Phk?T&BUlA0EL#A1IN2 zc%>P5mR@)!72beenh}fzWYH%-JUX?gj5keOjo@AxmYsd~3tb9ApH$R}gf+*mMQa$gAcl6QBaOzh8m}>h(9SimjhnubB)AUfvKK;WBXIh ziSwTPkAObcU|frNrB7Qa^UIN9sAEhG^i0daVnN zJzg0`5XB&Tkx3JNrwsjaB9MiCCj)J)_dA-fvC{7p zp{-m)R{RblnT39*Smk%*JLAx8&L?fK7jx zQN%lWtS~Ocs>$h_L#g6RvS_K1FUjG4y)WS^u;NP?n>F$!(|B(of2^GWB?DHp5qHjn zRo1zVjftZV>~Rjg7y!5?Z*?H^;&_(Xlhmv=NigLdKu6_X}zB z4&slFbagmgvcsxX($rkq$OjM4&K^&MlHq7iyf+Z*?&%Li zl96zrKh_%xba(gmfVX&8w5#jHYs<6)TCwQ03%`(Eh<2rteUW515bKL{2g2b*C=kUE z1VW)`DBd4RrBd?}AV9$so?S{hU|hRZ8qdDO}!6 zku)On)}#Xilrr*Z(``W5oJrF%57^G`TL+pOdsy<^x$4fF$^Ck+VC!l^x2Ehu5i)JV zc)~nluhQ}^4vA$b(!!E=Fr4+S?kdFxcf}(DC;3nP5Cw)jiO-BBa=SL4IemV3{@Q=) z2W~lW?)Zs$?%jgZse{s9DgIOU$vAKsifyNsxN&bQcm1chOUsk<#5r%LE4^|`&dgTd z zbM_oq_d;=Qc{X{wMVwNe%@%{$ZP(q^CU;zB-9653j8hP6{g_y9@bo2yS{d}ZGV(k* zJ-fVA_C7n|!;yd}I8I@f`!J75%q-`aWu7{O@k?OF1CR_pqkM$$ivn>WCzP8M%H5tN zfNQ)c_F1?Zo5sk+Feu*V;so8H)9jz$A5c542E49+$58iMZi8{i8Na}= z#JPzMU99KAt=J^v_ZOrqQc2!6<4Q=DjqvXf2D~)zMYMbZy%f5T1U)}%O);ho1=U0?>FlWo<^iZoh zksPl&UF2C~^=W18vmkU@6B6L;Bv*as*k(u&zFhpk+$(=sG4SA?$G5x?eIWboLHWvi z_L-l?fBW{@=hrJgd2`L&@8tdZyxIHp^%`9>d?Jnji?PnTVb3x`_PG0KLK;(IM~c$O zF9O;n$e)mVDTD3m^Le%W(c@@1ZKwU=i6hS*2VH$=weKeBVE?&e`uE~x`ZlIoeH#TA zJd3dB_r7@o-f9mH`;Q&dukJt3f&Fz{IGlO=$MQ1}OH;apQwD4%v zoH3$(3o}Ul|7@J%IN!!Swq!P~asr!%Zsx_=jicj_e*!%1#jNpMm6V)Qhl=M*;10hn zYn9;tL~PD8ZLji|M%{=L&?9Q&`Nx#dvJ&zN^;T3X&#qpC{^jxdX157>{v^Nu96{{s zoB;96vGunuI-&>78V-kMP*eWfCei046L)zNUn?%H!X3^@Z`+N!KnFg>PB<6IjJv#kxZ;vP}y#fZrI6iSzuz-5^X#*7Wl-IR%6vVt#N*%2{&ZDXZCIlHxeiY@0JSsIu)4U(s8ZUWcJy0I zzp%d@uYVZ({K{po9esD1?bcqHq5nQ^OkWFl?f)^<{g>NRJNn&jy=K{B?EeWg_G`C6 zRd`+*XZ&a1-9NU!sc*Xez-43i7~>bVmR&aS2j6EY_WSOJBlq`Ct-1Gu_gC+G>V=!% qk|+WKVq6|Qqy_2B<9$=L1y diff --git a/Part1/PROJ_WIN/CIS565_PROJ_1/CIS565_PROJ_1.vcxproj b/Part1/PROJ_WIN/CIS565_PROJ_1/CIS565_PROJ_1.vcxproj index 4c88226..dc7b28b 100644 --- a/Part1/PROJ_WIN/CIS565_PROJ_1/CIS565_PROJ_1.vcxproj +++ b/Part1/PROJ_WIN/CIS565_PROJ_1/CIS565_PROJ_1.vcxproj @@ -20,6 +20,7 @@ true MultiByte v100 + true Application @@ -30,7 +31,7 @@ - + @@ -47,7 +48,7 @@ Level3 Disabled $(SolutionDir)/shared/glew/include/;$(SolutionDir)/shared/freeglut/include/;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + _MBCS;%(PreprocessorDefinitions) true @@ -62,7 +63,7 @@ true true true - compute_10,sm_10;compute_20,sm_20;compute_30,sm_30 + compute_20,sm_20 @@ -114,6 +115,6 @@ - + \ No newline at end of file diff --git a/Part1/PROJ_WIN/CIS565_PROJ_1/OGLdpf.log b/Part1/PROJ_WIN/CIS565_PROJ_1/OGLdpf.log new file mode 100644 index 0000000..e69de29 diff --git a/Part1/PROJ_WIN/CIS565_PROJ_1/vc100.pdb b/Part1/PROJ_WIN/CIS565_PROJ_1/vc100.pdb index b662f859b27e4fb8b4753032a64cb6eb2e33341b..592bd0cc9adc065371d2988d82e9ebc6d2c17c88 100644 GIT binary patch delta 5644 zcmc(jd32Q38Hax}lMGoP3lM}rAZ)TlAP|g#ND{UL5)uswipXS`Odug7lgR*4(Lt>d zJs`wTLR+zFTe?`QG+?xP)IWM^+hg6T;!+X!1()JdEsONI`7)U~EXLDw)c2g{o4eop zF86--n~ir2-gt2Ewy}NcCGEBGKF2X(u^6>$T+Ovm2#`3 zL2Il5qRwVF9 zcFJ*M%RI?GSUOrJMWM*T)spX0>6R?XQ;TKx`K^xT`LheHw67#w){Z83;={*@gPkL# z&(Y`@rVYuJOImUVl+R*XBVRLgNTOqL9`<|%hdrIkQZuAS(7Rx~^byAYEB4!sJ&o+5 ze`7kn$d-DcTIy)&<;9FVeH$KVnIkRh)!9&wjFReoQeW2f4x{ZQ{;r=S4V}s?c~+ZZ zLdQO~B{wy=6yHY5P*!i`0CT)Rk3;w(hY=xxHo$X8%VFh! z9w7-B<3-_-A?(I}p;GCWIYbfJqm=DJ;qimQbtd&uML6Gr?k7vb3RWNVV(ORXS#{&^ zpOK|wtl!Az5)PdT;`BvyDy(2zVTWcXzkQ^eSb=?^bPw*^=lTJ-i8i9020Jq@NiTF5DvI{vbF^rMhFn-2N3{*8LLyDtEND^?x%!nv5 zqIW*F0k}^%S<}spDlD-#?w9j1{m+dcQMF}zE9j$pW zi&}k&1E*~!0=K{|uobpJ3)~8=upNF3JD?4A!cSUT68g37O&C@7YjVGV-@@coW`&x8WUl7v6*S;R84XAHqlQv5mv(6B7T1!|*A52Ijo~ z0{#PE!dLKLI08rE7#xSM;RMLe4hK6pAPS&m=F0-01IFt6haXM7x5^D61WI1 zhEiAzWl#=F;1akLmcnJQ3@(S|;DQQp!wT>~C3v9CT%h8kE6wXnv{o~t8K4?buB zKQuxB*1|ei4^40dTnSgf2DloofrFt9X@0M7Pfq$IvGw?{M0?J$&UE|nN%85n`1aV6 zqlsx|o3L&5+*a$9F~|7M8(9#)(H+C@b9!txZ^yNJoL41W=WF)antk?WpQG6qwc8hc zu;bzF_L$gUzC3Fy-E;l^dVjv#U%B4x_m&3Sp4FWt`t-0p#lgFxyG=oDt#_rnwxF&t z;9u(rRM*#awOJ5uQ&ipPuB~2K=dH}Gtn_;u8}*qr&cbk;g1U9Ismu*pElPcEk5`?O z6`s>VUP)uGb>|&=mHd-!4R_g7g0A_6#d*1fF4rQL zD=X6#SmSG|3b-a4@l2a+B}lubxmJ7qb>3Q+$LGs*Rad*RCVM^Sd$Y5rPj|VDrHehD zwLW*9=Zd^3bMn2lKCfTpXR68Ro;CRYPMedXIN6gL(J<~u91Mz0;zb~n4?w)#ras9O zAf}F2ak!4#$k|HylEdyH|-rM zdC9y87$e<X>+>Z*+zLtzA<<#HNW@ZImx|K-8xdQbKdS)diWado_y{u zp3ZHYFDD-#xAlCi93IWr#w_l(P2BFsaJ3xBb&;4cKnq zeg8)11JS|nZat`+!(TgmHaD=wLcV10kd9ep&PyW~T^+Nd!r6PY zvEOan2cvc31fTwLY&5O8l{Z_g;(fBSBXgVcsl*>vkLR&{eX{y#AD_b?^3O#(&fS3n zzbHS&Aw`yMt?2ev%c;5*qMO0!w%6#kKhYN75qpPoy{&EI9%oeO5`1e#)bP-qdC0Bd rJM&)d%uZ}%?#-(^M&IXj*`mFqtJ=6bkFnJd62%F&HSIRviNyZ_o`qMu delta 3262 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 b`>I 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
(^y2q3gE=>0t(q=L?6QP^nxPL}fZ`Qwqb+va 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

;zySo@Ng}asaKh%!QHK~js>BTa0hnvWs; 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 literal 0 HcmV?d00001 diff --git a/Part1/PROJ_WIN/shared/glew/bin/visualinfo.exe b/Part1/PROJ_WIN/shared/glew/bin/visualinfo.exe new file mode 100644 index 0000000000000000000000000000000000000000..03b03909ba4070a07cac7aaac102732e045badb0 GIT binary patch literal 204800 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

6!tqi4!uPw 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%0AL`Eji9cS4JQ_-WEIog~BZ_=i!AQ-hef^2z1j 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 literal 0 HcmV?d00001 diff --git a/Part1/PROJ_WIN/src/kernel.cu.deps b/Part1/PROJ_WIN/src/kernel.cu.deps index 926dd55..8aca305 100644 --- a/Part1/PROJ_WIN/src/kernel.cu.deps +++ b/Part1/PROJ_WIN/src/kernel.cu.deps @@ -1,568 +1,568 @@ -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda_runtime.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_config.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\cuda_runtime.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_config.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h c:\program files (x86)\microsoft visual studio 10.0\vc\include\codeanalysis\sourceannotations.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vadefs.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stddef.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\channel_descriptor.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_runtime_api.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_device_runtime_api.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_runtime_api.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\common_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\time.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wtime.inl -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\time.inl -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\math_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdlib.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cmath -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\yvals.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\use_ansi.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdlib -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\channel_descriptor.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\channel_descriptor.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_11_atomic_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_12_atomic_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_13_double_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_20_atomic_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_32_atomic_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_35_atomic_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_32_atomic_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_20_intrinsics.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_30_intrinsics.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_32_intrinsics.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_35_intrinsics.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_32_intrinsics.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_fetch_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_indirect_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_indirect_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_launch_parameters.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\swprintf.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda.h -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm/glm.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core/_fixes.hpp -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\climits -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cfloat -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\float.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtwrn.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ymath.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wchar.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstddef -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstddef -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core/setup.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\./core/_detail.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\setup.hpp -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cassert -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\assert.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\./core/_vectorize.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\./core/type.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_half.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_half.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\_detail.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_float.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_half.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\setup.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_int.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\setup.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\_detail.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_gentype.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_size.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_vec1.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_vec.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_gentype.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_float.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_int.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_size.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\_swizzle.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\_swizzle_func.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_vec1.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_vec2.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_vec.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_float.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_int.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_size.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\_swizzle.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_vec2.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_vec3.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_vec.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_float.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_int.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_size.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\_swizzle.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_vec3.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_vec4.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_vec.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_float.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_int.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_size.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\_swizzle.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_vec4.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat2x2.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_gentype.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat2x2.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat2x3.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat2x3.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat2x4.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat2x4.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat3x2.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat3x2.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat3x3.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat3x3.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat3x4.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat3x4.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat4x2.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat4x2.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat4x3.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat4x3.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat4x4.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\type_mat4x4.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\./core/func_trigonometric.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\func_trigonometric.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\./core/func_exponential.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\func_exponential.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\./core/func_common.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\_fixes.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\func_common.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\./core/func_packing.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\func_packing.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\./core/func_geometric.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\func_geometric.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\./core/func_matrix.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\func_matrix.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\./core/func_vector_relational.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\_detail.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\func_vector_relational.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\./core/func_integer.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\func_integer.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\./core/func_noise.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core\func_noise.inl -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\./core/_swizzle.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\utilities.h -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm/glm.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core/_fixes.hpp -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\algorithm -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\memory -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmemory -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\new -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\exception -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\eh.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\malloc.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\utility -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iosfwd -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdbg.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\type_traits -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xtr1common -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\typeinfo -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\setjmp.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\immintrin.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wmmintrin.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\nmmintrin.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\smmintrin.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\tmmintrin.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\pmmintrin.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\emmintrin.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmmintrin.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ammintrin.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mm3dnow.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\istream -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ios -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocnum -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\streambuf -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xiosbase -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocale -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdexcept -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstring -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ctype.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\locale.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xdebug -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\system_error -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cerrno -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\errno.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\share.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iterator -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sstream -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfunctional -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\cudaMat4.h -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm/glm.hpp -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\glm\core/_fixes.hpp -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda_runtime.h -c:\users\harmoli\documents\cis565\project3-simulation\part1\src\kernel.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/config.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/simple_defines.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/compiler.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/host_system.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/device_system.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/host_device.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\host_defines.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/debug.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/compiler_fence.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/forceinline.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/hd_warning_disable.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/cstdint.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/discard_block_engine.h -c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/random_core_access.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/discard_block_engine.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/linear_congruential_engine.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/linear_congruential_engine_discard.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/mod.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/linear_congruential_engine.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/linear_feedback_shift_engine.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/linear_feedback_shift_engine_wordmask.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/linear_feedback_shift_engine.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/subtract_with_carry_engine.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/subtract_with_carry_engine.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/xor_combine_engine.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits/has_trivial_assign.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/xor_combine_engine_max.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/mpl/math.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/xor_combine_engine.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/uniform_int_distribution.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/pair.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/pair.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/swap.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/integer_traits.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/uniform_int_distribution.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/uniform_real_distribution.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/uniform_real_distribution.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/normal_distribution.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/normal_distribution_base.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/normal_distribution.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\math_constants.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vadefs.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stddef.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\channel_descriptor.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\cuda_runtime_api.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\cuda_device_runtime_api.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\cuda_runtime_api.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\common_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\time.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wtime.inl +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\time.inl +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\math_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdlib.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cmath +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\yvals.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\use_ansi.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdlib +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\cuda_surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\channel_descriptor.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\cuda_texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\channel_descriptor.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\sm_11_atomic_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\sm_12_atomic_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\sm_13_double_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\sm_20_atomic_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\sm_32_atomic_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\sm_35_atomic_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\sm_32_atomic_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\sm_20_intrinsics.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\sm_30_intrinsics.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\sm_32_intrinsics.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\sm_35_intrinsics.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\sm_32_intrinsics.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\cuda_surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_fetch_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\cuda_texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_indirect_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_indirect_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\device_launch_parameters.h +c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\vector_types.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\swprintf.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\cuda.h +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm/glm.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core/_fixes.hpp +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\climits +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cfloat +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\float.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtwrn.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ymath.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wchar.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstddef +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstddef +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core/setup.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\./core/_detail.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\setup.hpp +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cassert +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\assert.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\./core/_vectorize.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\./core/type.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_half.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_half.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\_detail.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_float.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_half.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\setup.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_int.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\setup.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\_detail.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_gentype.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_size.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_vec1.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_vec.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_gentype.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_float.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_int.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_size.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\_swizzle.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\_swizzle_func.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_vec1.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_vec2.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_vec.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_float.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_int.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_size.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\_swizzle.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_vec2.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_vec3.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_vec.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_float.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_int.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_size.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\_swizzle.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_vec3.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_vec4.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_vec.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_float.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_int.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_size.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\_swizzle.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_vec4.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat2x2.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_gentype.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat2x2.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat2x3.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat2x3.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat2x4.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat2x4.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat3x2.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat3x2.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat3x3.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat3x3.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat3x4.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat3x4.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat4x2.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat4x2.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat4x3.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat4x3.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat4x4.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\type_mat4x4.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\./core/func_trigonometric.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\func_trigonometric.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\./core/func_exponential.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\func_exponential.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\./core/func_common.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\_fixes.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\func_common.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\./core/func_packing.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\func_packing.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\./core/func_geometric.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\func_geometric.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\./core/func_matrix.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\func_matrix.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\./core/func_vector_relational.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\_detail.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\func_vector_relational.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\./core/func_integer.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\func_integer.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\./core/func_noise.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core\func_noise.inl +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\./core/_swizzle.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\utilities.h +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm/glm.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core/_fixes.hpp +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\algorithm +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\memory +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmemory +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\new +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\exception +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\eh.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\malloc.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\utility +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iosfwd +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdbg.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\type_traits +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xtr1common +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\typeinfo +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\setjmp.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\immintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wmmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\nmmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\smmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\tmmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\pmmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\emmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mm3dnow.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\istream +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ios +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocnum +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\streambuf +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xiosbase +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocale +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdexcept +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstring +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ctype.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\locale.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xdebug +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\system_error +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cerrno +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\errno.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\share.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iterator +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sstream +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfunctional +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\cudaMat4.h +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm/glm.hpp +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\glm\core/_fixes.hpp +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\cuda_runtime.h +d:\graduate\second-year-first-semester\cis-565\project-1\part1\src\kernel.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/config.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/config/config.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/config/simple_defines.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/config/compiler.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\cuda.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/config/host_system.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/config/device_system.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/config/host_device.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\host_defines.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/config/debug.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/config/compiler_fence.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/config/forceinline.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/config/hd_warning_disable.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/config/global_workarounds.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/cstdint.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/discard_block_engine.h +C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/detail/random_core_access.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/detail/discard_block_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/linear_congruential_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/detail/linear_congruential_engine_discard.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/detail/mod.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/detail/linear_congruential_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/linear_feedback_shift_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/detail/linear_feedback_shift_engine_wordmask.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/detail/linear_feedback_shift_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/subtract_with_carry_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/detail/subtract_with_carry_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/xor_combine_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/type_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/type_traits/has_trivial_assign.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/detail/xor_combine_engine_max.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/mpl/math.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/detail/xor_combine_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/uniform_int_distribution.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/pair.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/pair.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/swap.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/detail/integer_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/detail/uniform_int_distribution.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/uniform_real_distribution.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/detail/uniform_real_distribution.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/normal_distribution.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/detail/normal_distribution_base.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\thrust/random/detail/normal_distribution.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\math_constants.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\cuda.h diff --git a/Part1/src/kernel.cu b/Part1/src/kernel.cu index ee9b9e5..3b1bf43 100644 --- a/Part1/src/kernel.cu +++ b/Part1/src/kernel.cu @@ -159,19 +159,19 @@ void initCuda(int N) dim3 fullBlocksPerGrid((int)ceil(float(N)/float(blockSize))); cudaMalloc((void**)&dev_pos, N*sizeof(glm::vec4)); - checkCUDAErrorWithLine("Kernel failed!"); + //checkCUDAErrorWithLine("Kernel failed!"); cudaMalloc((void**)&dev_vel, N*sizeof(glm::vec3)); - checkCUDAErrorWithLine("Kernel failed!"); + //checkCUDAErrorWithLine("Kernel failed!"); cudaMalloc((void**)&dev_acc, N*sizeof(glm::vec3)); - checkCUDAErrorWithLine("Kernel failed!"); + //checkCUDAErrorWithLine("Kernel failed!"); generateRandomPosArray<<>>(1, numObjects, dev_pos, scene_scale, planetMass); - checkCUDAErrorWithLine("Kernel failed!"); + //checkCUDAErrorWithLine("Kernel failed!"); generateCircularVelArray<<>>(2, numObjects, dev_vel, dev_pos); - checkCUDAErrorWithLine("Kernel failed!"); + //checkCUDAErrorWithLine("Kernel failed!"); cudaThreadSynchronize(); } diff --git a/Part2/BoZhang_Project1/BoZhang_Project1.sln b/Part2/BoZhang_Project1/BoZhang_Project1.sln new file mode 100644 index 0000000..fe1c3e5 --- /dev/null +++ b/Part2/BoZhang_Project1/BoZhang_Project1.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BoZhang_Project1", "BoZhang_Project1\BoZhang_Project1.vcxproj", "{F4F608A2-0A2D-44B5-B46B-A48CD3905D1B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F4F608A2-0A2D-44B5-B46B-A48CD3905D1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {F4F608A2-0A2D-44B5-B46B-A48CD3905D1B}.Debug|Win32.Build.0 = Debug|Win32 + {F4F608A2-0A2D-44B5-B46B-A48CD3905D1B}.Debug|x64.ActiveCfg = Debug|x64 + {F4F608A2-0A2D-44B5-B46B-A48CD3905D1B}.Debug|x64.Build.0 = Debug|x64 + {F4F608A2-0A2D-44B5-B46B-A48CD3905D1B}.Release|Win32.ActiveCfg = Release|Win32 + {F4F608A2-0A2D-44B5-B46B-A48CD3905D1B}.Release|Win32.Build.0 = Release|Win32 + {F4F608A2-0A2D-44B5-B46B-A48CD3905D1B}.Release|x64.ActiveCfg = Release|x64 + {F4F608A2-0A2D-44B5-B46B-A48CD3905D1B}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Part2/BoZhang_Project1/BoZhang_Project1/BoZhang_Project1.vcxproj b/Part2/BoZhang_Project1/BoZhang_Project1/BoZhang_Project1.vcxproj new file mode 100644 index 0000000..388c751 --- /dev/null +++ b/Part2/BoZhang_Project1/BoZhang_Project1/BoZhang_Project1.vcxproj @@ -0,0 +1,156 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {F4F608A2-0A2D-44B5-B46B-A48CD3905D1B} + BoZhang_Project1 + + + + Application + true + MultiByte + + + Application + true + MultiByte + + + Application + false + true + MultiByte + + + Application + false + true + MultiByte + + + + + + + + + + + + + + + + + + + + true + + + true + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + true + Console + cudart.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + echo copy "$(CudaToolkitBinDir)\cudart*.dll" "$(OutDir)" +copy "$(CudaToolkitBinDir)\cudart*.dll" "$(OutDir)" + + + + + Level3 + Disabled + WIN32;WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + true + Console + cudart.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + echo copy "$(CudaToolkitBinDir)\cudart*.dll" "$(OutDir)" +copy "$(CudaToolkitBinDir)\cudart*.dll" "$(OutDir)" + + + 64 + + + + + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + true + true + true + Console + cudart.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + echo copy "$(CudaToolkitBinDir)\cudart*.dll" "$(OutDir)" +copy "$(CudaToolkitBinDir)\cudart*.dll" "$(OutDir)" + + + + + Level3 + MaxSpeed + true + true + WIN32;WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + true + true + true + Console + cudart.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + echo copy "$(CudaToolkitBinDir)\cudart*.dll" "$(OutDir)" +copy "$(CudaToolkitBinDir)\cudart*.dll" "$(OutDir)" + + + 64 + + + + + + + + + + \ No newline at end of file diff --git a/Part2/BoZhang_Project1/BoZhang_Project1/matrix_math.cu b/Part2/BoZhang_Project1/BoZhang_Project1/matrix_math.cu new file mode 100644 index 0000000..90d489d --- /dev/null +++ b/Part2/BoZhang_Project1/BoZhang_Project1/matrix_math.cu @@ -0,0 +1,121 @@ + +#include "cuda_runtime.h" +#include "device_launch_parameters.h" + +#include + +cudaError_t addWithCuda(int *c, const int *a, const int *b, unsigned int size); + +__global__ void addKernel(int *c, const int *a, const int *b) +{ + int i = threadIdx.x; + c[i] = a[i] + b[i]; +} + +int main() +{ + const int arraySize = 5; + const int a[arraySize] = { 1, 2, 3, 4, 5 }; + const int b[arraySize] = { 10, 20, 30, 40, 50 }; + int c[arraySize] = { 0 }; + + // Add vectors in parallel. + cudaError_t cudaStatus = addWithCuda(c, a, b, arraySize); + if (cudaStatus != cudaSuccess) { + fprintf(stderr, "addWithCuda failed!"); + return 1; + } + + printf("{1,2,3,4,5} + {10,20,30,40,50} = {%d,%d,%d,%d,%d}\n", + c[0], c[1], c[2], c[3], c[4]); + + // cudaDeviceReset must be called before exiting in order for profiling and + // tracing tools such as Nsight and Visual Profiler to show complete traces. + cudaStatus = cudaDeviceReset(); + if (cudaStatus != cudaSuccess) { + fprintf(stderr, "cudaDeviceReset failed!"); + return 1; + } + + return 0; +} + +// Helper function for using CUDA to add vectors in parallel. +cudaError_t addWithCuda(int *c, const int *a, const int *b, unsigned int size) +{ + int *dev_a = 0; + int *dev_b = 0; + int *dev_c = 0; + cudaError_t cudaStatus; + + // Choose which GPU to run on, change this on a multi-GPU system. + cudaStatus = cudaSetDevice(0); + if (cudaStatus != cudaSuccess) { + fprintf(stderr, "cudaSetDevice failed! Do you have a CUDA-capable GPU installed?"); + goto Error; + } + + // Allocate GPU buffers for three vectors (two input, one output) . + cudaStatus = cudaMalloc((void**)&dev_c, size * sizeof(int)); + if (cudaStatus != cudaSuccess) { + fprintf(stderr, "cudaMalloc failed!"); + goto Error; + } + + cudaStatus = cudaMalloc((void**)&dev_a, size * sizeof(int)); + if (cudaStatus != cudaSuccess) { + fprintf(stderr, "cudaMalloc failed!"); + goto Error; + } + + cudaStatus = cudaMalloc((void**)&dev_b, size * sizeof(int)); + if (cudaStatus != cudaSuccess) { + fprintf(stderr, "cudaMalloc failed!"); + goto Error; + } + + // Copy input vectors from host memory to GPU buffers. + cudaStatus = cudaMemcpy(dev_a, a, size * sizeof(int), cudaMemcpyHostToDevice); + if (cudaStatus != cudaSuccess) { + fprintf(stderr, "cudaMemcpy failed!"); + goto Error; + } + + cudaStatus = cudaMemcpy(dev_b, b, size * sizeof(int), cudaMemcpyHostToDevice); + if (cudaStatus != cudaSuccess) { + fprintf(stderr, "cudaMemcpy failed!"); + goto Error; + } + + // Launch a kernel on the GPU with one thread for each element. + addKernel<<<1, size>>>(dev_c, dev_a, dev_b); + + // Check for any errors launching the kernel + cudaStatus = cudaGetLastError(); + if (cudaStatus != cudaSuccess) { + fprintf(stderr, "addKernel launch failed: %s\n", cudaGetErrorString(cudaStatus)); + goto Error; + } + + // cudaDeviceSynchronize waits for the kernel to finish, and returns + // any errors encountered during the launch. + cudaStatus = cudaDeviceSynchronize(); + if (cudaStatus != cudaSuccess) { + fprintf(stderr, "cudaDeviceSynchronize returned error code %d after launching addKernel!\n", cudaStatus); + goto Error; + } + + // Copy output vector from GPU buffer to host memory. + cudaStatus = cudaMemcpy(c, dev_c, size * sizeof(int), cudaMemcpyDeviceToHost); + if (cudaStatus != cudaSuccess) { + fprintf(stderr, "cudaMemcpy failed!"); + goto Error; + } + +Error: + cudaFree(dev_c); + cudaFree(dev_a); + cudaFree(dev_b); + + return cudaStatus; +} From a3665b5de466ebcd62597ad30f02317d7452b5ee Mon Sep 17 00:00:00 2001 From: wulinjiansheng Date: Fri, 19 Sep 2014 14:47:40 -0400 Subject: [PATCH 2/4] Finish Part1 and Part2 For part1, I set N to 100 and thus the GPU won't crush. For part2, I write mat_add,mat_sub,mat_mul in single thread methond and GPU method. --- Part1/PROJ_WIN/CIS565_PROJ_1.suo | Bin 17920 -> 20480 bytes .../CIS565_PROJ_1/CIS565_PROJ_1.vcxproj | 1 + Part1/PROJ_WIN/CIS565_PROJ_1/vc100.pdb | Bin 454656 -> 471040 bytes Part1/src/kernel.cu | 51 ++- Part1/src/main.cpp | 2 +- .../BoZhang_Project1/matrix_math.cu | 318 ++++++++++++------ 6 files changed, 258 insertions(+), 114 deletions(-) diff --git a/Part1/PROJ_WIN/CIS565_PROJ_1.suo b/Part1/PROJ_WIN/CIS565_PROJ_1.suo index 43401efb7249ce9d206ff1b2387f0de7cd9a45ef..6d93bf48e617fad92f5a664622d3aaf2a81039d4 100644 GIT binary patch delta 2940 zcmcJQdu-EH6vyxFS}3&LXt%N9!roBEXxCpy*L4hN*KT9L*b|~yoMXHS+gPAo298kT z1Bl3@hnIpdCPGw5#0r0yMXP`ce+UYHsKf`x_?Jd7LtY8mES@8a)v$VR6##xg)A7z?sMHW&l$1lP%y@qoNJ_QzcB9^1upJO#@4bL2(_RN)Pvbz4wws`1Wy4m z;nS$yU>0HnaxhK!)#vj+2H3c_jx_d98j zPR|(^4id##UAwCo84?FrM5Qary3B{{ zysOAvzM^pfg~mLu;R*~)0wV6i$;vzSoCs<1>Ji$plLO=CYTxP1cza{-3%9Rt$XTxc zYQm*N#9+Lvg3;C~rE>@CCaiH^>9<29h)B5rAq%)3BO+@4MMOl_i`4ypg5w%4)R%LU z&!n5<`x@FKJ#KuI3{m8D#{Mac!yltw{jLuq~>0hho4zw;RJxHy+mSC8fJT;%gxkh^sGE>lTf(vzUs|D0M?P7Orx{7u z1KEu}K8$OG)XoZ+ky%L6#^aQD3OHuv)E$ zVnmdZPa>bKO09w_H(Fgx*KE0KH$t@uybQ!8^$P0EU<=p^wt)a3upR6GJHaln8@vkM z1be_<@H!Cl>_^=-Aa|pF0~{P^A3}Y&U*1+{(7X@vI5;6x$7=MvyI7`j-0$_=$X+xc z^9!#FpSR!|ZNP4{LGJgwxT^Ni?JO(#r})X7T}|rr1ckU@hm(}KD`20d9EHZcSh4&0 z@A0FjfglO+l%XL zPy7;=JL2lrFAg{SX74#M^_S+4zm_ABB=P|9j7bAmp3yWyd$gvq)b-+9saAiZ?(|P* zni531QB-5LE^=7^hch5O>J0pDyt25m{15exqd#1}mFT_2#2?XlQxWMVZ>O$oB^k5p zab4^9FuI;~ERsrucOGhc8qHIhqb#3Q>$|eM)a|=)VE@@IOWr#oEKiC#$irt3Xa7H* zJ)GG4&c0Z9P0g)Vtxrw2e4Wi)Z8_a0nX7k}kd@^sGYb1)&5#TlMbH=3 z-UC6u3Zsu-eXagP#6n*RwJr z%2l$x3R6ao)7leUNr(Nq&P9sjq^Pp~V~LKlt}Y7h{A$o7*RAnPTY zNp#dEQ*$nAcqJix-CmW96^5B$AvAZE$rz*p9OZQwE0MHpfl7Pq$xO*LO_81u0Hcpa z^1A5-69n>#$&_puD+}{ED)87bQ}&5#XCs;N_d+QFL!QtniAw-~&TqrfVlT!k{CZYM zoGHJ-u#lW18k#7#v9u0F^Jk~>cK{BOr~xUg8OC4kP@q@n>Meivb-z-#kLA@-bV=YxU1kI$W6@r+xu3jR7NLU0vxM^-x zKR>DNN-GTm43;j%?`AU(`nQL%*kZ$F+{%MnT01ddSx+6r)XMXEYBoTHvRyr>RcRaz z&>2@s=x?mUOl6-j@vY~=*L$}n>|+o3CAX`w9KWn9)wO|=Ruq zntAX?b(Tf(r7(ogZ8AP`Y|E<^NNuOQW>BL8JiX>^?mpFC#Z;3oufIqs{m)Qz;=`c1 zfHdKV-uukCseo5eICn{1X-zIgV<%UxgsLIa7#3;>%*zvO7Y?{3!ANk`EVUb_+%-k? zhSYI|XnLfNSt7Dx*rUlcY(($LHH#d2oC%TR#f^iQHEQvV@Jse>;!3HxuKD7uJ2~Yu kFdPwLs^o1_6eChEzSpmix7yGah+vl#z<~6MXl3>M21cnz+5i9m diff --git a/Part1/PROJ_WIN/CIS565_PROJ_1/CIS565_PROJ_1.vcxproj b/Part1/PROJ_WIN/CIS565_PROJ_1/CIS565_PROJ_1.vcxproj index dc7b28b..634d674 100644 --- a/Part1/PROJ_WIN/CIS565_PROJ_1/CIS565_PROJ_1.vcxproj +++ b/Part1/PROJ_WIN/CIS565_PROJ_1/CIS565_PROJ_1.vcxproj @@ -86,6 +86,7 @@ $(CudaToolkitIncludeDir) + compute_20,sm_20 diff --git a/Part1/PROJ_WIN/CIS565_PROJ_1/vc100.pdb b/Part1/PROJ_WIN/CIS565_PROJ_1/vc100.pdb index 592bd0cc9adc065371d2988d82e9ebc6d2c17c88..2c2d44f519cb3a343659cef17eb3ef7226c0c1f7 100644 GIT binary patch delta 9265 zcmeHLX>eQB6+V)zhZkZifRor+oe*pnY%R7ECoGA{9!zYq01XPVEIq|eWa}X*U;^}+ zw78^93n747!oJP0WtzIg?2{5`1L;B-1}LRdQ=nz*fWr)Jp&|Y5BKhe_O6;Wn%A1jW z?tS-s=ey_Jd*An7@8HDV!AUn&jfoM_9t-~9x@=d|ew*IB*mrT`EN>th_r{_DucpS- zK)g0Up}F2*(0h3x9*Klw?6$8x9Q3YQWEvmu^mTT};Gk(Eb-AK591QrQK^{aOQIusX zRxfJy2E*alCQYmL$GS!mON*-Qn-I&})fo$TJL}jiJN(_juo|sjACptmk21#;h}t0_ z)DA5g39qjkd5Q%2kk**ZMbDmA;S-MdgMrZcY<@>_Lj?mJ8%O4)rzSX@rI?&!{YW#- z7LKo5y`n1;R7Vz;dGvG#B3(LsM&T0giH|Z!ydxNn1agMZ(^hmU8PPaaOm}BoYzD0D zg>$`2qW<6}e_ZvVGtwQbxl;8kSchRyH-j!-t^~Y2;5aWEU)$E45RtvV%g1OE$F*O=VIyGpdhf#~P{3`5$Z?cfhS5|3Y)A?Z*zHr_K|#-H?`J%}QvrS<#aRs4=&} zS;tSs)rdK;vyol7&qqDWS#F@>aR)}QiI1{}J#`J)7eCg%e&olBfr=|smlI{gARd<| zeLni|**Sp`Kq$sQm_Gb2Ywq9TMsCemd^gB)&<2|v_8$!r&;?nTc4JUA7YB#NmfGmHM1@}&Z%HJEE>)^HXc~IrkY6d105AEJ`LY_ zY2ss_Ql7`84WkxKS*aY|2N+|HSo?lKQkb0N1L#f5(Sw5ILkWvlsZ607@I{sc1kVz5 zk*E?gjA?q<#DKLQ5e$UM89Zuc@R(rmxTsPFx=0iUfMqLM zNVkdOE)z%A{)ONuOwO_2%<-3k;}fEkCTz~In!B4Ao@6McwfD&%5*DVBC3KxgB{Phv ze9AsbY2v}!{}Mce z$$9+S%;PJ;<7>f#f%1))L>CF;04W~4j+CCTw)@i)R-VVS1xr-SCXE@Bh%#FVwk zlX$*O8K+45?KWk4p2Z_KK!rRctmuenYSbT(M60T?-6#)7hhnvP5_A2^X<0&Y`bp4V z`;>WBwLNjKS2;B?&!@D?MrAoWxDEC;%rxpxt~HQA-;h{vfb#8G=E)tvQ9rg+LD?c+ol{cRM=jASV~N^7HN?zgNb z+6%A?ClI}L9?=l|tnlf(lBm9c=zSGrCPGPKrkjziuGvJlLQ3ujq3Ix#UxgAKC2HF@sx9f@+>j^y39Y&rCrYG2>Q%F2gLhAn2taGu}b86+yl!Lly#kl1liJefX#cT z%hjbs>%i1sL3D;?Fz z=i|L0j`aj$H)8D+BK2P)BZRVje-TkXVx5V5TNYzo`B4AoF<>{+zV{lUx%h=Z#D{e4 zN3aH@+Ku$H_lrh2ho_?5jnbgr&%mc0B|3~cc48sE1pCSPM3-DhbO85uf`}7YJRKRh zVKd5OLtj1~ai>D$PeRE-m>dJ1J|$!+c>#5K>>fMSdWcrk~0&Zp8$3N!6hd?I*ErAGmJWE zpNRo$zbqIClQVe5%wWG@@LQozGSGQ^oddwrC^^|P{gE>;>t3eQ^Bs@EX0LJA&KQ0< zxgP829rQE55Nviazpb#DU-Bh}wIAZ+tTY+rVwa&9cCz+rH{7<>KAXK3`8V6Amd>t+ z*nw64*UCiGX8V*RQb7`FSd603 z_$HP-{)Lq)^dEs_EHrDsEz&GZp5{NHH?7d`h&2CM7CIAO6k0&=LgRy)C^R#Sg&s69 zVC{DW17UIoe>F3BPcV326gmT4JZd-qJdK4m6asZ3 zDB^!1Qk8)&QpEw_nLAbc?oEFxPqazZA5ILeRod}}*&w!XQfJoSFfy(!)~=P(LfTwf zIML5nS5mmU(2-5JyOYvFMq=->GA5sdB2l3<&&gw7u~_zEHff|JPrZp3Yd1(<(&oHo znR(65!3%0oyijC>6tpBLr^UXD$-OA86t6Q)yjc4z$xGUt*V$%X=j7luFPX2*n1Yx@ zWy;*oGuWz2mhoH@E!JKjX-S*YT4<)VC@oK|IKM6nVD=8;z7^>=2hL?l(b zh>Gl{$S*gMXYKPOd1-U<&1UlF=ODjAk`I_8ii}E3p3ynUBaa!zj9y?O#o8++DQR<3 ztIVWU=ODF4lFEq4NfissWJY&2^;y5w&fjY1|8woUp$Fo8`&xX&-T*<3SBs5!3%DJx z9V_YvYWtK8*+g}<{kEHw6KmLhB77dV)8WHV_GIf7Vr=17BKGTnq-USZ*)@Ipwq@h` zTU@(J<`li+wluOn2i|=EvGjMD5N&X0KL+uZ5n`a_=gLzhmYD+udlcPL5CRN%Q^)Yv w_a((Qx8dLQt&^5Uw8J;_hJ6|e*1yKllvXo=Oz5lw$?HK1#C%Dd;kCd delta 3248 zcmZYB3tW^{8prYf%)khu3@B0}7e!1&L{dxB)EUeRibA4jXo`3POdJIXZ;h8iYc&~l z)ves_?xk(p8kO93wcTwqTPwG9Q)@G_GRw8wx|^$*{SGhVuUwE%sgzzMHI9&uaQ#fURGTF|Fj~ru zlP<oTP^ovk+J7`ZfbZq7Qj3tgudN@rWH!)Hsqr-$x!93<7`$S2(_4U3nOW=PMC zm1Y!6AB~rupDLBklEzMww%;U;>?hsF;MP*NiD!<7`cglalySS{sF0qBmLho3sX0;w z15RTiIhEGKJ9*DSUc7=nYk6O%HoU*VG)$IGmq}N0rKhJ!LxxD*+Y*Jjl4qXOd7;%o z*bNLWReGHlb?I%@)#kSv38!@o-cKY=`4z#QK;P^0tm})WPqI+6SQ;~iI^M5oN!Cqs zoKa<+r!c|<2C}gOp?6Dpgl{S{+dNb{M*WT$sc5Y9cDb~Y!Buy%+Qm(j;!239oqE#f zA0^qlNS7x|VN7J)0?B)a^xyz#_FY6~?-Hw_IX*nhI`H^H~eFB;BkP5F+lgC#tY*o~G=geN|U- zF;Hs5)Dn6~?@prU!S!Uof15PDP4j~~kR~niN*x&28G75p`dimmO772Fa;#_aSvvM~ zzbC<0Om173WJYhwDclt?xi)EyAiIACcn$Qnter}$5 znGs~Ak^+bH8DU-AO`6-%xAin@W-!^!jF2|a(TfSeYU_75$-mGmR5vSyDUsiHEiVt= zIoU^=Pq@!)qA=5v>dfCP#f~A~1n{wnS=_xm>h|9~=?P9_iokRD`+4+*twV%2Fuq-ZR^uD=-`s66GX-aIk^=poigt{Nw?o>YC zESA-`tl`$>Q5Hv6<}#w(s+~jIVco6s!z_Y_80jYN2jW7l-YQ``Gr}yGvVjfz${;q* zK~|54K~xZ})}=omuA@=xF6uvIcLvMnqgka6zEQM0PR`$8idBo|RUeY=)yd@WT18?Fj z9K~PpHvWcV_&eUgah$+Oyo>kn4;%S^pOaJg0FC$%r|}U!#wR#~PjMEX;d7kBKXD#k z;7fdkukj83g$wvM{)2CE5&y*{Tt<`0{}oQY!&S)6XA5>X5QcC#(FPHSL|a6m9oi!r zF2o=f9ncYR=!AG&hwIT93Fv}EABQ9)BL!X24XNmkH1xm?=!tanLI!#x6Mc|{zR1Rn z=!gCofSYhL24WCy!C(x5?^X^&Vg8R84mUi=!3f-jkr;*17=v7l#W>_)JSHF?1-Km( zQHV*Hj3P|IRNR4LOtX{!>73k&8JLL@%t9$%6u)uf5LesPl&H z^M)sW(~!8udC}2Oa@bjB3*;2s8?oE#jM-Q3%ywR@D~s5E)Y-1j#vA!$@TzcKy~>|T zIaYI^WY<~B7>;?pDXClix$%Mg>=#@OwtDBdP+xggUt8(xWB>p6l}BHO>1$8xz8dly zo%>z3sD{X|oWB2=)0UF3YmrFY5{iUr&fm`FXe=NS^IKX~5Q+R~+rog&d)4(l1*_%y diff --git a/Part1/src/kernel.cu b/Part1/src/kernel.cu index 3b1bf43..9890e5a 100644 --- a/Part1/src/kernel.cu +++ b/Part1/src/kernel.cu @@ -4,6 +4,7 @@ #include "glm/glm.hpp" #include "utilities.h" #include "kernel.h" +#include //GLOBALS dim3 threadsPerBlock(blockSize); @@ -28,6 +29,7 @@ void checkCUDAError(const char *msg, int line = -1) fprintf(stderr, "Line %d: ", line); } fprintf(stderr, "Cuda error: %s: %s.\n", msg, cudaGetErrorString( err) ); + system("pause"); exit(EXIT_FAILURE); } } @@ -88,20 +90,51 @@ __global__ void generateCircularVelArray(int time, int N, glm::vec3 * arr, glm:: // calculate the acceleration contribution of a single body. // REMEMBER : F = (G * m_a * m_b) / (r_ab ^ 2) __device__ glm::vec3 accelerate(int N, glm::vec4 my_pos, glm::vec4 * their_pos) -{ - return glm::vec3(0.0f); +{ + glm::vec3 acc(0,0,0); + + for(int index=0;index 0.001f) + { + float forcef = (G * their_pos[index].w)/mag; + tempacc = glm::normalize(dist) * forcef; + acc = acc + tempacc; + } + } + return acc; } // TODO : update the acceleration of each body __global__ void updateF(int N, float dt, glm::vec4 * pos, glm::vec3 * vel, glm::vec3 * acc) { // FILL IN HERE + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + + if(index>>(1, numObjects, dev_pos, scene_scale, planetMass); - //checkCUDAErrorWithLine("Kernel failed!"); + checkCUDAErrorWithLine("Kernel failed!"); generateCircularVelArray<<>>(2, numObjects, dev_vel, dev_pos); - //checkCUDAErrorWithLine("Kernel failed!"); + checkCUDAErrorWithLine("Kernel failed!"); cudaThreadSynchronize(); } @@ -180,6 +213,10 @@ void initCuda(int N) void cudaNBodyUpdateWrapper(float dt) { // FILL IN HERE + dim3 fullBlocksPerGrid((int)ceil(float(numObjects)/float(blockSize))); + updateF<<>>(numObjects,dt,dev_pos,dev_vel,dev_acc); + updateS<<>>(numObjects,dt,dev_pos,dev_vel,dev_acc); + cudaThreadSynchronize(); } void cudaUpdateVBO(float * vbodptr, int width, int height) diff --git a/Part1/src/main.cpp b/Part1/src/main.cpp index ea86207..5942892 100644 --- a/Part1/src/main.cpp +++ b/Part1/src/main.cpp @@ -4,7 +4,7 @@ #include "main.h" -#define N_FOR_VIS 5000 +#define N_FOR_VIS 100 #define DT 0.2 #define VISUALIZE 1 //------------------------------- diff --git a/Part2/BoZhang_Project1/BoZhang_Project1/matrix_math.cu b/Part2/BoZhang_Project1/BoZhang_Project1/matrix_math.cu index 90d489d..9c044f2 100644 --- a/Part2/BoZhang_Project1/BoZhang_Project1/matrix_math.cu +++ b/Part2/BoZhang_Project1/BoZhang_Project1/matrix_math.cu @@ -1,121 +1,227 @@ #include "cuda_runtime.h" #include "device_launch_parameters.h" - +#include #include -cudaError_t addWithCuda(int *c, const int *a, const int *b, unsigned int size); +__global__ void mat_add(float *A,float *B,float *C,int width) +{ + int tx = threadIdx.x; + int ty = threadIdx.y; + float M = A[ty*width + tx]; + float N = B[ty*width + tx]; + C[ty*width + tx] = M+N; +} -__global__ void addKernel(int *c, const int *a, const int *b) +__global__ void mat_sub(float *A,float *B,float *C,int width) { - int i = threadIdx.x; - c[i] = a[i] + b[i]; + int tx = threadIdx.x; + int ty = threadIdx.y; + float M = A[ty*width + tx]; + float N = B[ty*width + tx]; + C[ty*width + tx] = M-N; } -int main() +__global__ void mat_mult(float *A,float *B,float *C,int width) { - const int arraySize = 5; - const int a[arraySize] = { 1, 2, 3, 4, 5 }; - const int b[arraySize] = { 10, 20, 30, 40, 50 }; - int c[arraySize] = { 0 }; - - // Add vectors in parallel. - cudaError_t cudaStatus = addWithCuda(c, a, b, arraySize); - if (cudaStatus != cudaSuccess) { - fprintf(stderr, "addWithCuda failed!"); - return 1; - } - - printf("{1,2,3,4,5} + {10,20,30,40,50} = {%d,%d,%d,%d,%d}\n", - c[0], c[1], c[2], c[3], c[4]); - - // cudaDeviceReset must be called before exiting in order for profiling and - // tracing tools such as Nsight and Visual Profiler to show complete traces. - cudaStatus = cudaDeviceReset(); - if (cudaStatus != cudaSuccess) { - fprintf(stderr, "cudaDeviceReset failed!"); - return 1; - } + int tx = threadIdx.x; + int ty = threadIdx.y; + float Cvalue = 0; + for(int i=0;i>>(dev_c, dev_a, dev_b); - - // Check for any errors launching the kernel - cudaStatus = cudaGetLastError(); - if (cudaStatus != cudaSuccess) { - fprintf(stderr, "addKernel launch failed: %s\n", cudaGetErrorString(cudaStatus)); - goto Error; - } - - // cudaDeviceSynchronize waits for the kernel to finish, and returns - // any errors encountered during the launch. - cudaStatus = cudaDeviceSynchronize(); - if (cudaStatus != cudaSuccess) { - fprintf(stderr, "cudaDeviceSynchronize returned error code %d after launching addKernel!\n", cudaStatus); - goto Error; - } - - // Copy output vector from GPU buffer to host memory. - cudaStatus = cudaMemcpy(c, dev_c, size * sizeof(int), cudaMemcpyDeviceToHost); - if (cudaStatus != cudaSuccess) { - fprintf(stderr, "cudaMemcpy failed!"); - goto Error; - } - -Error: - cudaFree(dev_c); - cudaFree(dev_a); - cudaFree(dev_b); - - return cudaStatus; + for(int i=0;i>> (Ad,Bd,Pd,width); + cudaMemcpy(P, Pd, width*width * sizeof(int), cudaMemcpyDeviceToHost); + + std::cout<<"Add:"<>> (Ad,Bd,Pd,width); + cudaMemcpy(P, Pd, width*width * sizeof(int), cudaMemcpyDeviceToHost); + + std::cout<<"Sub:"<>> (Ad,Bd,Pd,width); + cudaMemcpy(P, Pd, width*width * sizeof(int), cudaMemcpyDeviceToHost); + + std::cout<<"Multiple:"< Date: Sun, 21 Sep 2014 01:55:08 -0400 Subject: [PATCH 3/4] Finish Project1 Do some changes to part2 and then finish all works in project1. --- Answers for questions.txt | 33 ++++++++++++++++++++ GPU information.bmp | Bin 0 -> 573858 bytes Part1/PROJ_WIN/CIS565_PROJ_1.suo | Bin 20480 -> 20480 bytes Part1/PROJ_WIN/CIS565_PROJ_1/vc100.pdb | Bin 471040 -> 503808 bytes Part1/src/kernel.cu | 41 ++++++++++++++----------- Part1/src/main.cpp | 4 +-- 6 files changed, 58 insertions(+), 20 deletions(-) create mode 100644 Answers for questions.txt create mode 100644 GPU information.bmp diff --git a/Answers for questions.txt b/Answers for questions.txt new file mode 100644 index 0000000..9400487 --- /dev/null +++ b/Answers for questions.txt @@ -0,0 +1,33 @@ +1.How does changing the tile and block sizes change performance? Why? +Test when setting particle number as 5000 +block sizes estimated average FPS + 128 5.01 + 256 4.88 + 512 4.92 + 1024 4.60 + +It seems that block sizes don't have much influence on the performance. + +Why: I think the global memory has long latency and thus most of the computing time for each frame is spent on writing/reading global memory. Therefore, +the block sizes don't have much influence on the performance. + + +2.How does changing the number of planets change performance? Why? +Test when set block sizes as 128 +particles estimated average FPS + 100 60.00 + 500 60.00 + 1000 60.00 + 5000 5.02 + 10000 1.31 + +The performance is good when particle number is low and become slower when I set larger particle number. + +Why: When the particle number is low, the memory latency is not shown as we have enough threads to hide it. But when we have large particle number, +(when the latency can't be hidden even we use all threads) the latency will increase with the increase of global memory. + +3.Without running experiments, how would you expect the serial and GPU verions of matrix_math to compare? Why? +I think the serial and GPU verions of matrix_math will both perform well when the size of matrix is small. But when the size of matrix is large, the GPU version +wroks much faster than the serial version. + +Why:The GPU version is multi-threads, while the serial version is single thread. And when matrix size is large, GPU version is faster as it has fewer loops. diff --git a/GPU information.bmp b/GPU information.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3ebf812a1bd6cb2dfdc2d3f852554166b2d87c9f GIT binary patch literal 573858 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 diff --git a/Part1/PROJ_WIN/CIS565_PROJ_1/vc100.pdb b/Part1/PROJ_WIN/CIS565_PROJ_1/vc100.pdb index 2c2d44f519cb3a343659cef17eb3ef7226c0c1f7..1b0c9b2b057b901831f8b21c2d8ad12e85510d03 100644 GIT binary patch delta 11404 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 delta 3028 zcmb7`QD_`R7{_Om+?{FDT>4OGv}!CC;=|@l+LRFSAo;NRIKiKtAB?}2)QBQ0y|Y1OWkbulSk4gM-D2Q<0-DADU7;Q^9D4M z9aVH)c~SFh+jO}*J#FgB)Zzccdq&!@TmX!b zW{AIeTN{jNtGbq**^K)?3{OzY&9+AQ%>}M?$qm+cpw&+Ejgz+M>AbDe)?_&`XK8lc z2P1%ZbDp4xm(xvKyQhS|VMjNc;dt0Fmf zS{PZ;g^^lT7%3aV$o#A@@|i7;To6X)KMe2oH$KW1zPHWY={c$ue9%}Sts5@8=lf56i4QTk@Bm;NbPlDqWLaObAyu6)|%nm|g-GqG9SwH=dUxGXT*Bfcf z-3}4bkK@rr#J&{F{TL?X=Qcu$$n$*{A=b7=>?4@_0)w0WBtRLC1cG}J7=rjEI7T4M zt$;!X5z~YFdk{E-xFeYV2L4Fb!r1-(`|wU7-4f_uA%6@Rxb?0p^9raWO5he8;z$+0 z|3KE)z}^T-=KfXtX*CcN&#%k%05sNFlAI3&`J@s+OIXsM7)cbh1d#=Z??MqzAf_yl z4{n1wN`|B=hgNOx-<6#`zeN}CJRFs7)qht0iEZzb_EkDle?|NG@iT$gk(*dCtQX^} zvxG3*`Ai-IQlzqHn<*_`Qy-NK98|}iHKlaF>k$ diff --git a/Part1/src/kernel.cu b/Part1/src/kernel.cu index 9890e5a..6ae144b 100644 --- a/Part1/src/kernel.cu +++ b/Part1/src/kernel.cu @@ -89,22 +89,28 @@ __global__ void generateCircularVelArray(int time, int N, glm::vec3 * arr, glm:: // HINT : You may want to write a helper function that will help you // calculate the acceleration contribution of a single body. // REMEMBER : F = (G * m_a * m_b) / (r_ab ^ 2) -__device__ glm::vec3 accelerate(int N, glm::vec4 my_pos, glm::vec4 * their_pos) -{ - glm::vec3 acc(0,0,0); +__device__ glm::vec3 TwoAcc(glm::vec4 my_pos, glm::vec4 their_pos) +{ + glm::vec3 tempacc(0,0,0); + glm::vec3 dist = glm::vec3(their_pos.x - my_pos.x ,their_pos.y - my_pos.y,their_pos.z - my_pos.z); + float mag = dist.x*dist.x + dist.y*dist.y + dist.z*dist.z; - for(int index=0;index 0.01f) { - glm::vec3 tempacc(0,0,0); - glm::vec3 dist = glm::vec3(their_pos[index].x - my_pos.x ,their_pos[index].y - my_pos.y,their_pos[index].z - my_pos.z); - float mag = dist.x*dist.x + dist.y*dist.y + dist.z*dist.z; - if(mag > 0.001f) - { - float forcef = (G * their_pos[index].w)/mag; - tempacc = glm::normalize(dist) * forcef; - acc = acc + tempacc; - } + float forcef = (G * their_pos.w)/mag; + tempacc = glm::normalize(dist) * forcef; } + + return tempacc; +} + + +__device__ glm::vec3 accelerate(int N, glm::vec4 my_pos, glm::vec4 * their_pos) +{ + glm::vec3 acc = TwoAcc(my_pos,glm::vec4(0,0,0,starMass)); + for(int i=0;i Date: Sun, 21 Sep 2014 02:03:53 -0400 Subject: [PATCH 4/4] Do some changes according to the requirements. Write the answer in README.md now --- Answers for questions.txt | 33 --------- README.md | 139 ++++++++------------------------------ 2 files changed, 28 insertions(+), 144 deletions(-) delete mode 100644 Answers for questions.txt diff --git a/Answers for questions.txt b/Answers for questions.txt deleted file mode 100644 index 9400487..0000000 --- a/Answers for questions.txt +++ /dev/null @@ -1,33 +0,0 @@ -1.How does changing the tile and block sizes change performance? Why? -Test when setting particle number as 5000 -block sizes estimated average FPS - 128 5.01 - 256 4.88 - 512 4.92 - 1024 4.60 - -It seems that block sizes don't have much influence on the performance. - -Why: I think the global memory has long latency and thus most of the computing time for each frame is spent on writing/reading global memory. Therefore, -the block sizes don't have much influence on the performance. - - -2.How does changing the number of planets change performance? Why? -Test when set block sizes as 128 -particles estimated average FPS - 100 60.00 - 500 60.00 - 1000 60.00 - 5000 5.02 - 10000 1.31 - -The performance is good when particle number is low and become slower when I set larger particle number. - -Why: When the particle number is low, the memory latency is not shown as we have enough threads to hide it. But when we have large particle number, -(when the latency can't be hidden even we use all threads) the latency will increase with the increase of global memory. - -3.Without running experiments, how would you expect the serial and GPU verions of matrix_math to compare? Why? -I think the serial and GPU verions of matrix_math will both perform well when the size of matrix is small. But when the size of matrix is large, the GPU version -wroks much faster than the serial version. - -Why:The GPU version is multi-threads, while the serial version is single thread. And when matrix size is large, GPU version is faster as it has fewer loops. diff --git a/README.md b/README.md index 6f7c863..8da05dc 100644 --- a/README.md +++ b/README.md @@ -1,120 +1,37 @@ -Project 1 -========= +For part 2, I change the acc in sendToPBO() as vec3(0,0,0), as the adapter will crash if I don't make this change. -# Project 1 : Introduction to CUDA - -## NOTE : -This project (and all other projects in this course) requires a NVIDIA graphics -card with CUDA capabilityi! Any card with compute capability 2.0 and up will -work. This means any card from the GeForce 400 and 500 series and afterwards -will work. If you do not have a machine with these specs, feel free to use -computers in the SIG Lab. All computers in SIG lab and Moore 100 C have CUDA -capable cards and should already have the CUDA SDK installed. - -## PART 1 : INSTALL NSIGHT -To help with benchmarking and performance analysis, we will be using NVIDIA's -profiling and debugging tool named NSight. Download and install it from the -following link for whichever IDE you will be using: -http://www.nvidia.com/object/nsight.html. - -NOTE : If you are using Linux / Mac, most of the screenshots and class usage of -NSight will be in Visual Studio. You are free to use to the Eclipse version -NSight during these in class labs, but we will not be able to help you as much. - -## PART 2 : NBODY SIMULATION -To get you used to using CUDA kernels, we will be writing a simple 2D nbody -simulator. The following source files are included in the project: - -* main.cpp : sets up graphics stuff for visualization -* kernel.cu : this contains the CUDA kernel calls - -All the code that you will need to modify is in kernel.cu and is marked clearly -by TODOs. - -## PART 3 : MATRIX MATH -In this portion we will walk you through setting up a project that writes some -simple matrix math functions. Please put this portion in a folder marked Part2 -in your repository. - -### Step 1 : Create your project. -Using the instructions on the Google forum, please set up a new Visual Studio project that -compiles using CUDA. For uniformity, please write your main function and all -your code in a file named matrix_math.cu. - -### Step 2 : Setting up CUDA memory. -As we discussed in class, there is host memory and device memory. Host memory -is the memory that exists on the CPU, whereas device memory is memory on the -GPU. - -In order to create/reserve memory on the GPU, we need to explicitly do so -using cudaMalloc. By calling cudaMalloc, we are calling malloc on the GPU to -reserve a portion of its memory. Like malloc, cudaMalloc simply mallocs a -portion of memory and returns a pointer. This memory is only accessible on the -device unless we explicitly copy memory from the GPU to the CPU. The reverse is -also true. - -We can copy memory to and from the GPU using the function cudaMemcpy. Like the -POSIX C memcpy, you will need to specify the size of memory you are copying. -The last argument is used to specify the direction of the copy (from GPU to CPU -or the other way around). - -Please initialize 2 5 x 5 matrices represented as an array of floats on the CPU -and the GPU where each of the entry is equal to its position (i.e. A_00 = 0, -A_01 = 1, A_44 = 24). - -### Step 3 : Creating CUDA kernels. -In the previous part, we explicitly divided the CUDA kernels from the rest of -the file for stylistic purposes. Since there will be far less code in this -project, we will write the global and device functions in the same file as the -main function. - -Given a matrix A and matrix B (both represented as arrays of floats), please -write the following functions : -* mat_add : A + B -* mat_sub : A - B -* mat_mult : A * B - -You may assume for all matrices that the dimensions of A and B are the same and -that they are square. +## PART 4 : PERFORMANCE ANALYSIS +1.How does changing the tile and block sizes change performance? Why? +Test when setting particle number as 5000 +block sizes estimated average FPS + 128 5.01 + 256 4.88 + 512 4.92 + 1024 4.60 -Use the 2 5 x 5 matrices to test your code either by printing directly to the -console or writing an assert. +It seems that block sizes don't have much influence on the performance. -THINGS TO REMEMBER : -* global and device functions only have access to memory that is explicitly on - the device, meaning you MUST copy memory from the CPU to the GPU if you would - like to use it there -* The triple triangle braces "<<<" begin and end the global function call. This - provides parameters with which CUDA uses to set up tile size, block size and - threads for each warp. -* Do not fret if Intellisense does not understand CUDA keywords (if they have - red squiggly lines underneath CUDA keywords). There is a way to integrate - CUDA syntax highlighting into Visual Studio, but it is not the default. +Why: I think the global memory has long latency and thus most of the computing time for each frame is spent on writing/reading global memory. Therefore, +the block sizes don't have much influence on the performance. + -### Step 4 : Write a serial version. -For comparison, write a single-threaded CPU version of mat_add, mat_sub and -mat_mult. We will not introduce timing elements in this homework, but please -keep them in mind as the upcoming lab will introduce more on this topic. +2.How does changing the number of planets change performance? Why? +Test when set block sizes as 128 +particles estimated average FPS + 100 60.00 + 500 60.00 + 1000 60.00 + 5000 5.02 + 10000 1.31 -## PART 4 : PERFORMANCE ANALYSIS -Since this is the first assignment, we will guide you with some example -questions. In future assignments, please answer at least these questions, as -they go through basic performance analysis. Please go above and beyond the -questions we suggest and explore how different aspects of your code impact -performance as a whole. +The performance is good when particle number is low and become slower when I set larger particle number. -We have provided a frame counter as a metric, but feel free to add cudaTimers, -etc. to do more fine-grained benchmarking of various aspects. +Why: When the particle number is low, the memory latency is not shown as we have enough threads to hide it. But when we have large particle number, +(when the latency can't be hidden even we use all threads) the latency will increase with the increase of global memory. -NOTE : Performance should be measured in comparison to a baseline. Be sure to -describe the changes you make between experiments and how you are benchmarking. +3.Without running experiments, how would you expect the serial and GPU verions of matrix_math to compare? Why? +I think the serial and GPU verions of matrix_math will both perform well when the size of matrix is small. But when the size of matrix is large, the GPU version +wroks much faster than the serial version. -* How does changing the tile and block sizes change performance? Why? -* How does changing the number of planets change performance? Why? -* Without running experiments, how would you expect the serial and GPU verions - of matrix_math to compare? Why? +Why:The GPU version is multi-threads, while the serial version is single thread. And when matrix size is large, GPU version is faster as it has fewer loops. -## SUBMISSION -Please commit your changes to your forked version of the repository and open a -pull request. Please write your performance analysis in your README.md. -Remember to email Harmony (harmoli+CIS565@seas.upenn.edu) your grade and why.