From e16f09398ee44d6295027d17a63288560080af78 Mon Sep 17 00:00:00 2001 From: RTCassidy1 Date: Sun, 21 Sep 2014 18:28:33 -0400 Subject: [PATCH 1/2] Got N body simulation working and Cuda Math --- .../CIS565_PROJ_1/CIS565_PROJ_1.vcxproj | 12 +- Part1/PROJ_WIN/src/kernel.cu.deps | 739 +++++++++--------- Part1/src/kernel.cu | 61 +- Part1/src/main.cpp | 2 +- Part3/cusamatrixmath.sln | 20 + Part3/cusamatrixmath/cudaMat4.h | 25 + Part3/cusamatrixmath/cusamatrixmath.vcxproj | 74 ++ .../cusamatrixmath.vcxproj.filters | 27 + Part3/cusamatrixmath/glslUtility.h | 21 + Part3/cusamatrixmath/kernel.h | 18 + Part3/cusamatrixmath/matrix_math.cu | 119 +++ Part3/cusamatrixmath/matrix_math.h | 43 + Part3/cusamatrixmath/utilities.h | 49 ++ 13 files changed, 828 insertions(+), 382 deletions(-) create mode 100644 Part3/cusamatrixmath.sln create mode 100644 Part3/cusamatrixmath/cudaMat4.h create mode 100644 Part3/cusamatrixmath/cusamatrixmath.vcxproj create mode 100644 Part3/cusamatrixmath/cusamatrixmath.vcxproj.filters create mode 100644 Part3/cusamatrixmath/glslUtility.h create mode 100644 Part3/cusamatrixmath/kernel.h create mode 100644 Part3/cusamatrixmath/matrix_math.cu create mode 100644 Part3/cusamatrixmath/matrix_math.h create mode 100644 Part3/cusamatrixmath/utilities.h 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..74521aa 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 @@ - + @@ -46,12 +46,12 @@ Level3 Disabled - $(SolutionDir)/shared/glew/include/;$(SolutionDir)/shared/freeglut/include/;%(AdditionalIncludeDirectories) + C:\Users\Robert Cassidy\Documents\Visual Studio 2010\Projects\Project-1\Part1\PROJ_WIN\shared\freeglut\include\GL;C:\Users\Robert Cassidy\Documents\Visual Studio 2010\Projects\Project-1\Part1\PROJ_WIN\shared\glew\include\GL;$(SolutionDir)/shared/glew/include/;$(SolutionDir)/shared/freeglut/include/;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true - $(SolutionDir)/shared/glew/lib;$(SolutionDir)/shared/freeglut/lib;%(AdditionalLibraryDirectories) + C:\Users\Robert Cassidy\Documents\Visual Studio 2010\Projects\Project-1\Part1\PROJ_WIN\shared\freeglut\lib;C:\Users\Robert Cassidy\Documents\Visual Studio 2010\Projects\Project-1\Part1\PROJ_WIN\shared\glew\lib;$(SolutionDir)/shared/glew/lib;$(SolutionDir)/shared/freeglut/lib;%(AdditionalLibraryDirectories) opengl32.lib;glut32.lib;glew32.lib;freeglut.lib;cudart.lib;%(AdditionalDependencies) Console mainCRTStartup @@ -62,7 +62,7 @@ true true true - compute_10,sm_10;compute_20,sm_20;compute_30,sm_30 + compute_20,sm_20;compute_30,sm_30 @@ -95,7 +95,7 @@ Document - compute_10,sm_10;compute_20,sm_20 + compute_20,sm_20 @@ -114,6 +114,6 @@ - + \ No newline at end of file diff --git a/Part1/PROJ_WIN/src/kernel.cu.deps b/Part1/PROJ_WIN/src/kernel.cu.deps index 926dd55..a15c180 100644 --- a/Part1/PROJ_WIN/src/kernel.cu.deps +++ b/Part1/PROJ_WIN/src/kernel.cu.deps @@ -1,87 +1,87 @@ -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\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\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\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\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\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\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 @@ -92,159 +92,159 @@ 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\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\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\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\cuda.h +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm/glm.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\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 @@ -259,107 +259,107 @@ 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:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core/setup.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\./core/_detail.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\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 -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:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\./core/_vectorize.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\./core/type.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_half.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_half.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\_detail.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_float.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_half.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\setup.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_int.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\setup.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\_detail.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_gentype.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_size.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_vec1.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_vec.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_gentype.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_float.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_int.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_size.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\_swizzle.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\_swizzle_func.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_vec1.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_vec2.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_vec.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_float.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_int.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_size.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\_swizzle.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_vec2.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_vec3.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_vec.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_float.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_int.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_size.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\_swizzle.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_vec3.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_vec4.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_vec.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_float.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_int.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_size.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\_swizzle.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_vec4.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat2x2.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_gentype.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat2x2.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat2x3.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat2x3.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat2x4.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat2x4.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat3x2.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat3x2.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat3x3.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat3x3.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat3x4.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat3x4.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat4x2.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat4x2.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat4x3.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat4x3.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat4x4.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\type_mat4x4.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\./core/func_trigonometric.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\func_trigonometric.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\./core/func_exponential.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\func_exponential.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\./core/func_common.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\_fixes.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\func_common.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\./core/func_packing.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\func_packing.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\./core/func_geometric.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\func_geometric.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\./core/func_matrix.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\func_matrix.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\./core/func_vector_relational.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\_detail.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\func_vector_relational.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\./core/func_integer.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\func_integer.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\./core/func_noise.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core\func_noise.inl +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\./core/_swizzle.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\utilities.h +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm/glm.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\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 @@ -514,55 +514,56 @@ 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:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\cudaMat4.h +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm/glm.hpp +c:\users\robert cassidy\documents\visual studio 2010\projects\project-1\part1\src\glm\core/_fixes.hpp +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include\cuda_runtime.h +c:\users\robert cassidy\documents\visual studio 2010\projects\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\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\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..507aee7 100644 --- a/Part1/src/kernel.cu +++ b/Part1/src/kernel.cu @@ -9,7 +9,7 @@ dim3 threadsPerBlock(blockSize); int numObjects; -const float planetMass = 3e8; +const __device__ float planetMass = 3e8; const __device__ float starMass = 5e10; const float scene_scale = 2e2; //size of the height map in simulation space @@ -87,21 +87,64 @@ __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) { - return glm::vec3(0.0f); + glm::vec3 results(0.0f); + glm::vec4 r(0.0f); + float distR; + float denom; + for(int i = 0; i < N ; i++){ + r.x = their_pos[i].x - my_pos.x; + r.y = their_pos[i].y - my_pos.y; + r.z = their_pos[i].z - my_pos.z; + distR = r.x * r.x + r.y * r.y + r.z * r.z; + //denominator = 1 / (dist^2)^2/3 + if(distR < .25){ //to avoid planets shooting off into oblivion when they get near each other. + continue; + } + denom = 1.0f / sqrt(distR * distR * distR); + results.x += G * planetMass * denom * r.x; + results.y += G * planetMass * denom * r.y; + results.z += G * planetMass * denom * r.z; + } + //Planet Mass too + r.x = 0 - my_pos.x; + r.y = 0 - my_pos.y; + r.z = 0 - my_pos.z; + distR = r.x * r.x + r.y * r.y + r.z * r.z; + //denominator = 1 / (dist^2 + EPSILON)^3/2 + if(distR > .25){ //to avoid planets shooting off into oblivion when they get near each other. + denom = 1.0f / sqrt(distR * distR * distR); + results.x += G * starMass * denom * r.x; + results.y += G * starMass * denom * r.y; + results.z += G * starMass * denom * r.z; + } + return results; } // 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 = threadIdx.x + (blockIdx.x * blockDim.x); + acc[index] = accelerate(N,pos[index],pos); + //acc[index] = glm::vec3(1.0f); + return; } // TODO : update velocity and position using a simple Euler integration scheme __global__ void updateS(int N, float dt, glm::vec4 * pos, glm::vec3 * vel, glm::vec3 * acc) { - // FILL IN HERE + int index = threadIdx.x + (blockIdx.x * blockDim.x); + vel[index].x = vel[index].x + dt * acc[index].x; + vel[index].y = vel[index].y + dt * acc[index].y; + vel[index].z = vel[index].z + dt * acc[index].z; + + pos[index].x = pos[index].x + dt * vel[index].x; + pos[index].y = pos[index].y + dt * vel[index].y; + pos[index].z = pos[index].z + dt * vel[index].z; + return; + } // Update the vertex buffer object @@ -137,7 +180,8 @@ __global__ void sendToPBO(int N, glm::vec4 * pos, float4 * pbo, int width, int h float c_scale_h = height / s_scale; glm::vec3 color(0.05, 0.15, 0.3); - glm::vec3 acc = accelerate(N, glm::vec4((x-w2)/c_scale_w,(y-h2)/c_scale_h,0,1), pos); + //glm::vec3 acc = accelerate(N, glm::vec4((x-w2)/c_scale_w,(y-h2)/c_scale_h,0,1), pos); + glm::vec3 acc(1.0f); //Changed this to speed it up since not being used in homework if(x>>(numObjects, dt, dev_pos, dev_vel, dev_acc); + updateS<<>>(numObjects, dt, dev_pos, dev_vel, dev_acc); + + return; } void cudaUpdateVBO(float * vbodptr, int width, int height) diff --git a/Part1/src/main.cpp b/Part1/src/main.cpp index ea86207..db7d01e 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 6000 #define DT 0.2 #define VISUALIZE 1 //------------------------------- diff --git a/Part3/cusamatrixmath.sln b/Part3/cusamatrixmath.sln new file mode 100644 index 0000000..10d3c82 --- /dev/null +++ b/Part3/cusamatrixmath.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cusamatrixmath", "cusamatrixmath\cusamatrixmath.vcxproj", "{2A8A854C-1E6A-44C5-B4B6-E66CCCC6E99D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2A8A854C-1E6A-44C5-B4B6-E66CCCC6E99D}.Debug|Win32.ActiveCfg = Debug|Win32 + {2A8A854C-1E6A-44C5-B4B6-E66CCCC6E99D}.Debug|Win32.Build.0 = Debug|Win32 + {2A8A854C-1E6A-44C5-B4B6-E66CCCC6E99D}.Release|Win32.ActiveCfg = Release|Win32 + {2A8A854C-1E6A-44C5-B4B6-E66CCCC6E99D}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Part3/cusamatrixmath/cudaMat4.h b/Part3/cusamatrixmath/cudaMat4.h new file mode 100644 index 0000000..5aae161 --- /dev/null +++ b/Part3/cusamatrixmath/cudaMat4.h @@ -0,0 +1,25 @@ +// CIS565 CUDA Raytracer: A parallel raytracer for Patrick Cozzi's CIS565: GPU Computing at the University of Pennsylvania +// Written by Yining Karl Li, Copyright (c) 2012 University of Pennsylvania +// This file includes code from: +// Yining Karl Li's TAKUA Render, a massively parallel pathtracing renderer: http://www.yiningkarlli.com + +#ifndef CUDAMAT4_H +#define CUDAMAT4_H + +#include "glm/glm.hpp" +#include + +struct cudaMat3{ + glm::vec3 x; + glm::vec3 y; + glm::vec3 z; +}; + +struct cudaMat4{ + glm::vec4 x; + glm::vec4 y; + glm::vec4 z; + glm::vec4 w; +}; + +#endif \ No newline at end of file diff --git a/Part3/cusamatrixmath/cusamatrixmath.vcxproj b/Part3/cusamatrixmath/cusamatrixmath.vcxproj new file mode 100644 index 0000000..832bced --- /dev/null +++ b/Part3/cusamatrixmath/cusamatrixmath.vcxproj @@ -0,0 +1,74 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + {2A8A854C-1E6A-44C5-B4B6-E66CCCC6E99D} + cusamatrixmath + + + + Application + true + MultiByte + + + Application + false + true + MultiByte + + + + + + + + + + + + + + + + Level3 + Disabled + + + true + cudart.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + + + true + true + true + + + + + + + \ No newline at end of file diff --git a/Part3/cusamatrixmath/cusamatrixmath.vcxproj.filters b/Part3/cusamatrixmath/cusamatrixmath.vcxproj.filters new file mode 100644 index 0000000..1503434 --- /dev/null +++ b/Part3/cusamatrixmath/cusamatrixmath.vcxproj.filters @@ -0,0 +1,27 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + + + Source Files + + + \ No newline at end of file diff --git a/Part3/cusamatrixmath/glslUtility.h b/Part3/cusamatrixmath/glslUtility.h new file mode 100644 index 0000000..abe2c49 --- /dev/null +++ b/Part3/cusamatrixmath/glslUtility.h @@ -0,0 +1,21 @@ +// GLSL Utility: A utility class for loading GLSL shaders, for Patrick Cozzi's CIS565: GPU Computing at the University of Pennsylvania +// Written by Varun Sampath and Patrick Cozzi, Copyright (c) 2012 University of Pennsylvania + +#ifndef GLSLUTILITY_H_ +#define GLSLUTILITY_H_ + +#ifdef __APPLE__ + #include +#else + #include +#endif + +namespace glslUtility +{ + +GLuint createProgram(const char *vertexShaderPath, const char *fragmentShaderPath, const char *attributeLocations[], GLuint numberOfLocations); +GLuint createProgram(const char *vertexShaderPath, const char *geometryShaderPath, const char *fragmentShaderPath, const char *attributeLocations[], GLuint numberOfLocations); + +} + +#endif diff --git a/Part3/cusamatrixmath/kernel.h b/Part3/cusamatrixmath/kernel.h new file mode 100644 index 0000000..8b6fe35 --- /dev/null +++ b/Part3/cusamatrixmath/kernel.h @@ -0,0 +1,18 @@ +#ifndef KERNEL_H +#define KERNEL_H + +#include +#include +#include +#include + +#define blockSize 128 +#define checkCUDAErrorWithLine(msg) checkCUDAError(msg, __LINE__) +#define SHARED 0 + +void checkCUDAError(const char *msg, int line); +void cudaNBodyUpdateWrapper(float dt); +void initCuda(int N); +void cudaUpdatePBO(float4 * pbodptr, int width, int height); +void cudaUpdateVBO(float * vbodptr, int width, int height); +#endif diff --git a/Part3/cusamatrixmath/matrix_math.cu b/Part3/cusamatrixmath/matrix_math.cu new file mode 100644 index 0000000..963dfe7 --- /dev/null +++ b/Part3/cusamatrixmath/matrix_math.cu @@ -0,0 +1,119 @@ +#include "matrix_math.h" +#define ROWS 5 +#define COLS 5 +int main (int argc, char** argv){ + float *a, *b, *result; + a = (float*)malloc( (ROWS * COLS) * sizeof(float)); + b = (float*)malloc( (ROWS * COLS) * sizeof(float)); + result = (float*)malloc( (ROWS * COLS) * sizeof(float)); + // initialize matrices + float x = 0.0; + for(int i = 0; i < ROWS; i++){ + for(int j = 0; j < COLS; j++){ + a[(COLS * i) + j] = x; + b[(COLS * i) + j] = x; + result[(COLS * i) + j] = 0.0; + x = x + 1.0; + } + } + + float* dev_a; + float* dev_b; + float* dev_result; + cudaMalloc( (void**)&dev_a, 25 * sizeof(float) ); + cudaMalloc( (void**)&dev_b, 25 * sizeof(float) ); + cudaMalloc( (void**)&dev_result, 25 * sizeof(float) ); + + //add + cudaMemcpy( dev_a, a, 25 * sizeof(float), cudaMemcpyHostToDevice ); + cudaMemcpy( dev_b, b, 25 * sizeof(float), cudaMemcpyHostToDevice ); + mat_add<<>>(dev_a, dev_b, dev_result, 5); + cudaMemcpy( result, dev_result, 25 * sizeof(float), cudaMemcpyDeviceToHost ); + print_matrix(result,5); + + //subtract + cudaMemcpy( dev_a, a, 25 * sizeof(float), cudaMemcpyHostToDevice ); + cudaMemcpy( dev_b, b, 25 * sizeof(float), cudaMemcpyHostToDevice ); + mat_sub<<>>(dev_a, dev_b, dev_result, 5); + cudaMemcpy( result, dev_result, 25 * sizeof(float), cudaMemcpyDeviceToHost ); + print_matrix(result,5); + + //multiply + cudaMemcpy( dev_a, a, 25 * sizeof(float), cudaMemcpyHostToDevice ); + cudaMemcpy( dev_b, b, 25 * sizeof(float), cudaMemcpyHostToDevice ); + mat_mul<<>>(dev_a, dev_b, dev_result, 5); + cudaMemcpy( result, dev_result, 25 * sizeof(float), cudaMemcpyDeviceToHost ); + print_matrix(result,5); + + //sequential functions + seq_mat_add( a,b,result,5); + print_matrix(result,5); + seq_mat_sub( a,b,result,5); + print_matrix(result,5); + seq_mat_mul( a,b,result,5); + print_matrix(result,5); + + free(a); + free(b); + free(result); + cudaFree(dev_a); + cudaFree(dev_b); + cudaFree(dev_result); + cin.get(); + return 0; +} + +__global__ void mat_add( float *a, float *b, float *result, int arraySize){ + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + result[index] = a[index] + b[index]; +} + +__global__ void mat_sub( float *a, float *b, float *result, int arraySize){ + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + result[index] = a[index] - b[index]; +} + +__global__ void mat_mul( float *a, float *b, float *result, int arraySize){ + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + result[index ] = 0; + + for(int i = 0; i < arraySize; i++){ + result[index] += a[(i * arraySize) + (index % arraySize)] * b[index - (index % arraySize) + i]; + } +} + +void seq_mat_add( float *a, float *b, float *result, int arraySize){ + for(int i = 0; i < arraySize; i++){ + for (int j = 0; j < arraySize; j++){ + result[(i * arraySize) + j] = a[(i * arraySize) + j] + b[(i * arraySize) + j]; + } + } +} + +void seq_mat_sub( float *a, float *b, float *result, int arraySize){ + for(int i = 0; i < arraySize; i++){ + for (int j = 0; j < arraySize; j++){ + result[(i * arraySize) + j] = a[(i * arraySize) + j] - b[(i * arraySize) + j]; + } + } +} + +void seq_mat_mul( float *a, float *b, float *result, int arraySize){ + for(int i = 0; i < arraySize; i++){ + for (int j = 0; j < arraySize; j++){ + result[(i * arraySize) + j] = 0; + for (int k = 0; k < arraySize; k++){ + result[(i * arraySize) + j] += a[(i * arraySize) +k] * b[(k * arraySize) + j]; + } + } + } +} + +void print_matrix(float *mat, int arraySize){ + for(int i = 0; i < arraySize; i++){ + for(int j = 0; j < arraySize; j++){ + std::cout << mat[(COLS * i) + j] << ","; + } + std::cout << "\n"; + } +} \ No newline at end of file diff --git a/Part3/cusamatrixmath/matrix_math.h b/Part3/cusamatrixmath/matrix_math.h new file mode 100644 index 0000000..8fd450d --- /dev/null +++ b/Part3/cusamatrixmath/matrix_math.h @@ -0,0 +1,43 @@ +#ifndef MAIN_H +#define MAIN_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "glslUtility.h" + + +using namespace std; + + +//------------------------------- +//----------CUDA STUFF----------- +//------------------------------- + +int width=1000; int height=1000; + +//------------------------------- +//-------------MAIN-------------- +//------------------------------- + +int main(int argc, char** argv); + +//------------------------------- +//----------function declarations---------- +//------------------------------- + +__global__ void mat_add( float *a, float *b, float *result, int arraySize); +__global__ void mat_sub( float *a, float *b, float *result, int arraySize); +__global__ void mat_mul( float *a, float *b, float *result, int arraySize); +void seq_mat_add( float *a, float *b, float *result, int arraySize); +void seq_mat_sub( float *a, float *b, float *result, int arraySize); +void seq_mat_mul( float *a, float *b, float *result, int arraySize); +void print_matrix(float *mat, int arraySize); + +#endif diff --git a/Part3/cusamatrixmath/utilities.h b/Part3/cusamatrixmath/utilities.h new file mode 100644 index 0000000..5afa3d9 --- /dev/null +++ b/Part3/cusamatrixmath/utilities.h @@ -0,0 +1,49 @@ +// UTILITYCORE- A Utility Library by Yining Karl Li +// This file is part of UTILITYCORE, Coyright (c) 2012 Yining Karl Li +// +// File: utilities.h +// Header for utilities.cpp + +#ifndef UTILITIES_H +#define UTILITIES_H + +#include "glm/glm.hpp" +#include +#include +#include +#include +#include +#include +#include +#include "cudaMat4.h" + +#define PI 3.1415926535897932384626422832795028841971 +#define TWO_PI 6.2831853071795864769252867665590057683943 +#define SQRT_OF_ONE_THIRD 0.5773502691896257645091487805019574556476 +#define E 2.7182818284590452353602874713526624977572 +#define G 6.67384e-11 +#define EPSILON .000000001 +#define ZERO_ABSORPTION_EPSILON 0.00001 + +namespace utilityCore { + extern float clamp(float f, float min, float max); + extern bool replaceString(std::string& str, const std::string& from, const std::string& to); + extern glm::vec3 clampRGB(glm::vec3 color); + extern bool epsilonCheck(float a, float b); + extern std::vector tokenizeString(std::string str); + extern cudaMat4 glmMat4ToCudaMat4(glm::mat4 a); + extern glm::mat4 cudaMat4ToGlmMat4(cudaMat4 a); + extern glm::mat4 buildTransformationMatrix(glm::vec3 translation, glm::vec3 rotation, glm::vec3 scale); + extern void printCudaMat4(cudaMat4 m); + extern std::string convertIntToString(int number); + extern std::istream& safeGetline(std::istream& is, std::string& t); //Thanks to http://stackoverflow.com/a/6089413 + + //----------------------------- + //-------GLM Printers---------- + //----------------------------- + extern void printMat4(glm::mat4); + extern void printVec4(glm::vec4); + extern void printVec3(glm::vec3); +} + +#endif From 576f9e29971ea7f134eb65ac3c0d48df4e2f9f55 Mon Sep 17 00:00:00 2001 From: RTCassidy1 Date: Sun, 21 Sep 2014 18:55:00 -0400 Subject: [PATCH 2/2] Added writeup to git --- Part1/PROJ_NIX/makefile | 4 ++-- ...342\200\223 Part 4 Performance Analysis.pdf" | Bin 0 -> 28591 bytes 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 "ROBERT CASSIDY \342\200\223 HW1 \342\200\223 Part 4 Performance Analysis.pdf" diff --git a/Part1/PROJ_NIX/makefile b/Part1/PROJ_NIX/makefile index b162afa..f65c3b2 100644 --- a/Part1/PROJ_NIX/makefile +++ b/Part1/PROJ_NIX/makefile @@ -4,7 +4,7 @@ NVCC = nvcc -m64 CC = gcc -m64 CPPC = g++ -m64 -CUDA_FLAGS = -I/usr/local/cuda/samples/common/inc -I/usr/local/cuda/include +CUDA_FLAGS = -I/Developer/NVIDIA/CUDA-6.5/extras/CUPTI/include/GL -I/usr/local/cuda/samples/common/inc -I/usr/local/cuda/include LFLAGS = -lglut -lGL -lGLEW @@ -19,7 +19,7 @@ glslUtility.o: ../src/glslUtility.cpp utilities.o: ../src/utilities.cpp $(CPPC) $(CUDA_FLAGS) ../src/utilities.cpp -c -main.o: ../src/main.cpp ../src/glslUtility.h ../src/kernel.h ../src/utilities.h ../src/main.h +main.o: ../src/main.cpp ../src/glslUtility.h ../src/kernel.h ../src/utilities.h ../src/main.h /Developer/NVIDIA/CUDA-6.5/extras/CUPTI/include/GL/gl.h $(CPPC) $(CUDA_FLAGS) ../src/main.cpp -c 565simulator: main.o kernel.o glslUtility.o utilities.o diff --git "a/ROBERT CASSIDY \342\200\223 HW1 \342\200\223 Part 4 Performance Analysis.pdf" "b/ROBERT CASSIDY \342\200\223 HW1 \342\200\223 Part 4 Performance Analysis.pdf" new file mode 100644 index 0000000000000000000000000000000000000000..5ebb0f9451dfbb1da93d502a6179ee1eab097a50 GIT binary patch literal 28591 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೟?gy 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

ZEc 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 literal 0 HcmV?d00001