From 41a1a6200c8ff2242a940400ce60edd9b903e289 Mon Sep 17 00:00:00 2001 From: DiracSea3921 Date: Sun, 21 Sep 2014 17:30:00 -0400 Subject: [PATCH 1/2] Proj1 finished --- Part1/PROJ_WIN/CIS565_PROJ_1.sln | 14 + Part1/PROJ_WIN/CIS565_PROJ_1.suo | Bin 14336 -> 24064 bytes .../CIS565_PROJ_1/CIS565_PROJ_1.vcxproj | 4 +- Part1/PROJ_WIN/CIS565_PROJ_1/vc100.pdb | Bin 446464 -> 487424 bytes Part1/PROJ_WIN/Matrix/Matrix.vcxproj | 156 +++ Part1/PROJ_WIN/Matrix/kernel.cu | 158 +++ Part1/PROJ_WIN/src/kernel.cu.deps | 1136 ++++++++--------- Part1/src/kernel.cu | 52 +- Part1/src/main.cpp | 2 +- README.md | 29 + 10 files changed, 974 insertions(+), 577 deletions(-) create mode 100644 Part1/PROJ_WIN/Matrix/Matrix.vcxproj create mode 100644 Part1/PROJ_WIN/Matrix/kernel.cu diff --git a/Part1/PROJ_WIN/CIS565_PROJ_1.sln b/Part1/PROJ_WIN/CIS565_PROJ_1.sln index 2440bc1..2f6ff15 100644 --- a/Part1/PROJ_WIN/CIS565_PROJ_1.sln +++ b/Part1/PROJ_WIN/CIS565_PROJ_1.sln @@ -3,16 +3,30 @@ Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CIS565_PROJ_1", "cIS565_PROJ_1\CIS565_PROJ_1.vcxproj", "{D7BEFF7A-4902-4B7E-922B-B0417A66864C}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Matrix", "Matrix\Matrix.vcxproj", "{06DD2D05-C897-4C31-9923-61D1BB0CCD6B}" +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 {D7BEFF7A-4902-4B7E-922B-B0417A66864C}.Debug|Win32.ActiveCfg = Debug|Win32 {D7BEFF7A-4902-4B7E-922B-B0417A66864C}.Debug|Win32.Build.0 = Debug|Win32 + {D7BEFF7A-4902-4B7E-922B-B0417A66864C}.Debug|x64.ActiveCfg = Debug|Win32 {D7BEFF7A-4902-4B7E-922B-B0417A66864C}.Release|Win32.ActiveCfg = Release|Win32 {D7BEFF7A-4902-4B7E-922B-B0417A66864C}.Release|Win32.Build.0 = Release|Win32 + {D7BEFF7A-4902-4B7E-922B-B0417A66864C}.Release|x64.ActiveCfg = Release|Win32 + {06DD2D05-C897-4C31-9923-61D1BB0CCD6B}.Debug|Win32.ActiveCfg = Debug|Win32 + {06DD2D05-C897-4C31-9923-61D1BB0CCD6B}.Debug|Win32.Build.0 = Debug|Win32 + {06DD2D05-C897-4C31-9923-61D1BB0CCD6B}.Debug|x64.ActiveCfg = Debug|x64 + {06DD2D05-C897-4C31-9923-61D1BB0CCD6B}.Debug|x64.Build.0 = Debug|x64 + {06DD2D05-C897-4C31-9923-61D1BB0CCD6B}.Release|Win32.ActiveCfg = Release|Win32 + {06DD2D05-C897-4C31-9923-61D1BB0CCD6B}.Release|Win32.Build.0 = Release|Win32 + {06DD2D05-C897-4C31-9923-61D1BB0CCD6B}.Release|x64.ActiveCfg = Release|x64 + {06DD2D05-C897-4C31-9923-61D1BB0CCD6B}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Part1/PROJ_WIN/CIS565_PROJ_1.suo b/Part1/PROJ_WIN/CIS565_PROJ_1.suo index ad46c84a9a00137f71e370ba57e24d2f64f37088..5fc1939b1562a4f8e870e6c81182543317a2d56e 100644 GIT binary patch literal 24064 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 CFQzmA delta 1764 zcmb_d&2Jl35cf;g_S$hA$4MNgX_8Iaq|TSSfqZ`uyKyNA!5;;+X;?~v?F2_o9NFtA zHp5ZcaO9ZYj)A%|;(e11HxT24E*DTw(;~`Km`y5YhubCzyn=jsea6!HC%HKXj zL^{0-Rc1rh9<(sN#zv?lvxh~2j0T-xE@bP17DGMR z4xOvvThlWk;%LDywH|EMZeYXlB@}TKT7Bbx;Kqu`KfVt>rw@VF@9U-wDZ{oQZrGyZ zt~FTkeq;iBW0#ta@RWrFrH1q61F>_14kWKOhM0x%dtlTl6q`brvk#e05OIxR&$Uoq z!cD%!B#{!c;xE^{h4Gul&#L^sYI7I?yWF%u#P3z~Ah8;*l8@2w4TfYdJ|7xHcS|eg z+dJVO>}B5`VaMQ@Zeq6(nVvi!om95dsrB^grnHtw#xs&}pcVsM%N|B~f@;*@-HNt!OeEiz^v5mQ1__-(VlR$K!QTylf_(&M0rMrZ-c`gc3_d zvzzfPHKRlmnUT>E1#KOtIx;jJk11>EczivXRsW5*o>aJ94tR9iC!u;|Yz)@2<6qO9 z_sV{D?A!Lcc#Ty=Dtt@|{|+|>2JGd}EcqRYHw$|4n3bUkqV zq0zoDHEp#?1zvk~gut<9$m5cu4a;3UdCjRYctch^3QBmiXoBnxLz}&YgWx%M1Q#^7 zmg@CT+Vi>)G1E2XFs22x#L%t~sYysM>u zBxZ*|f>k$Fy1$*5jxHw5w*JgM)N^V0ZSJ+4Hz4xf?;@19xk}1#HTJxFYzu#Qud@`g zXM^}o7^>N(sXGJ`_#)dJPn6nv;hA?=FFmwU zLz{u7G*X+}rPZcn+a 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..6b18a53 100644 --- a/Part1/PROJ_WIN/CIS565_PROJ_1/CIS565_PROJ_1.vcxproj +++ b/Part1/PROJ_WIN/CIS565_PROJ_1/CIS565_PROJ_1.vcxproj @@ -30,7 +30,7 @@ - + @@ -114,6 +114,6 @@ - + \ No newline at end of file diff --git a/Part1/PROJ_WIN/CIS565_PROJ_1/vc100.pdb b/Part1/PROJ_WIN/CIS565_PROJ_1/vc100.pdb index b662f859b27e4fb8b4753032a64cb6eb2e33341b..c6c1c233ff0f6fc95ca08a98cabaeba5f758b73a 100644 GIT binary patch delta 38685 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 Uq+xTU?vtF&xpjMUnkVM|51UU?=Kufz delta 3478 zcmcK7d303O836E^>``C>0-}I~9qShAQe4X>1Y05E0t!lyEn#y|6cuy=N+4j zVjHRy9%v`(4mBS12Q`VhL|!#k*2R9_sOp5oLWzwIH=d|V#Gt;};n@H1MTe;AnAD$~ zA8ONs)x-`}e6arKygF6;OBz=`uEZk?;{Oudouu(ta^wG+SK0Wdz1;t#U-OGRdBTRH zDz7}~3+_NL=Zch2=t}xAkRhb$PbY)blu^za*0PSLSUNiW|9!n;Fd*ZsAs9VSoQ6lCg~AHg0D;uezPD@j7qtCU5aJ z@350yJmrU9p#E;AFqLV{;Az(L3>(Rj?d1e{F6-&Td}fek>|^x} z#gn!FCC?L2V-oY|OSbXd#=d5@_EjnF|KBxg7-&g-zSXWRwpCD_(TpOE9Q_N#box`9 zX8gsR$>LbH5mI*?7s@-ZovrlbZ-$RB)`H7pI`-M1w70`9$^tnSjJKw~_>|r3;WIv`FIUH$`ccXRCUOUpn9NsvLu0-r z#ob8_?hw_eLtW~TV!Wx?f)hD~*7VkYhIlT$0&P7Qu-+9EmnAbiKDP0 zUNh&5$n@_UMZzVOX>Ly1s=Tb+a8^9KU|*zh@DMsHA5)zE>6jKXldeL+$7jGWAB zCv|P@Yhcmz(Ej~t7D_E~a=OuS% z{kY_COXkG>d&zQ327)E)O-Nd@tXpp8nn*aSEITiA)GsdLp2D;Pm!5CQ;0P`~n4Td9 YmtXAC`}{Pk$fftF5grl`NB2j504-^yF#rGn diff --git a/Part1/PROJ_WIN/Matrix/Matrix.vcxproj b/Part1/PROJ_WIN/Matrix/Matrix.vcxproj new file mode 100644 index 0000000..2f3c65f --- /dev/null +++ b/Part1/PROJ_WIN/Matrix/Matrix.vcxproj @@ -0,0 +1,156 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {06DD2D05-C897-4C31-9923-61D1BB0CCD6B} + Matrix + + + + 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/Part1/PROJ_WIN/Matrix/kernel.cu b/Part1/PROJ_WIN/Matrix/kernel.cu new file mode 100644 index 0000000..d3a26fb --- /dev/null +++ b/Part1/PROJ_WIN/Matrix/kernel.cu @@ -0,0 +1,158 @@ + +#include "cuda_runtime.h" +#include "device_launch_parameters.h" + +#include + + +__global__ void mat_add(const float *m1, const float *m2, float *m3) +{ + int i = threadIdx.x; + m3[i] = m2[i] + m1[i]; +} + +__global__ void mat_sub(const float *m1, const float *m2, float *m3) +{ + int i = threadIdx.x; + m3[i] = m1[i] - m2[i]; +} + +__global__ void mat_mult(const float *m1, const float *m2, float *m3, int matrix_size) +{ + int i = threadIdx.x; + int row = i / matrix_size; + int column = i - (i / matrix_size) * matrix_size; + + m3[i] = 0; + for(int j=0; j>>(dev_m1, dev_m2, dev_m3); + cudaDeviceSynchronize(); + cudaMemcpy(m3, dev_m3, matrix_width * matrix_height * sizeof(float), cudaMemcpyDeviceToHost); + + for(int i=0;i>>(dev_m1, dev_m2, dev_m3); + cudaDeviceSynchronize(); + cudaMemcpy(m3, dev_m3, matrix_width * matrix_height * sizeof(float), cudaMemcpyDeviceToHost); + + for(int i=0;i>>(dev_m1, dev_m2, dev_m3,matrix_width); + cudaDeviceSynchronize(); + cudaStatus = cudaMemcpy(m3, dev_m3, matrix_width * matrix_height * sizeof(float), cudaMemcpyDeviceToHost); + + for(int i=0;i>>(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..3ad3335 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 2500 #define DT 0.2 #define VISUALIZE 1 //------------------------------- diff --git a/README.md b/README.md index 70ae0d3..dd57800 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,32 @@ +Performance Analysis + +1. +blockSize fps +32 18 +64 27 +128 32 +256 32 +512 29 +1024 29 + +so set blocksize to 128-256 will be most efficient. + +2. +planetNum fps +2500 60 +5000 32 +7500 15 +10000 9 + +Obviously less particle reduce the computation + +3. +If set matrix size as 5*5, then CPU can be more efficient. Because transfer data between memories takes more time when the data set is too small. +With lager data set GPU computation can be better than CPU. + + + + Project 1 ========= From e627f06bb1c5138d38e53f0fb1b1e38bc88f8695 Mon Sep 17 00:00:00 2001 From: DiracSea3921 Date: Sun, 21 Sep 2014 17:35:25 -0400 Subject: [PATCH 2/2] Performence Anlysis Update --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index dd57800..5466ac0 100644 --- a/README.md +++ b/README.md @@ -2,21 +2,21 @@ Performance Analysis 1. blockSize fps -32 18 -64 27 -128 32 -256 32 -512 29 -1024 29 +{32, 18} +{64, 27} +{128, 32} +{256, 32} +{512, 29} +{1024, 29} so set blocksize to 128-256 will be most efficient. 2. planetNum fps -2500 60 -5000 32 -7500 15 -10000 9 +{2500, 60} +{5000, 32} +{7500, 15} +{10000, 9} Obviously less particle reduce the computation