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..f1ebeee 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/src/kernel.cu.deps b/Part1/PROJ_WIN/src/kernel.cu.deps
index 926dd55..3d62653 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.0\include\cuda_runtime.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\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.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\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.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\channel_descriptor.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\cuda_runtime_api.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\cuda_device_runtime_api.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\cuda_runtime_api.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\common_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\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.0\include\math_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\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.0\include\cuda_surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\channel_descriptor.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\cuda_texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\channel_descriptor.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\sm_11_atomic_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\sm_12_atomic_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\sm_13_double_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\sm_20_atomic_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\sm_32_atomic_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\sm_35_atomic_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\sm_32_atomic_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\sm_20_intrinsics.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\sm_30_intrinsics.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\sm_32_intrinsics.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\sm_35_intrinsics.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\sm_32_intrinsics.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\cuda_surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_fetch_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\cuda_texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_indirect_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_indirect_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\vector_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include\device_launch_parameters.h
+c:\program files\nvidia gpu computing toolkit\cuda\v6.0\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.0\include\cuda.h
+c:\users\dave\documents\github\project-1\part1\src\glm/glm.hpp
+c:\users\dave\documents\github\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\dave\documents\github\project-1\part1\src\glm\core/setup.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\./core/_detail.hpp
+c:\users\dave\documents\github\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\dave\documents\github\project-1\part1\src\glm\./core/_vectorize.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\./core/type.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_half.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_half.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\core\_detail.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_float.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_half.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\setup.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_int.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\setup.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\_detail.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_gentype.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_size.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_vec1.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_vec.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_gentype.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_float.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_int.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_size.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\_swizzle.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\_swizzle_func.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_vec1.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_vec2.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_vec.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_float.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_int.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_size.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\_swizzle.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_vec2.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_vec3.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_vec.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_float.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_int.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_size.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\_swizzle.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_vec3.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_vec4.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_vec.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_float.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_int.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_size.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\_swizzle.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_vec4.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat2x2.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_gentype.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat2x2.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat2x3.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat2x3.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat2x4.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat2x4.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat3x2.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat3x2.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat3x3.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat3x3.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat3x4.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat3x4.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat4x2.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat4x2.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat4x3.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat4x3.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat4x4.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\type_mat4x4.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\./core/func_trigonometric.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\func_trigonometric.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\./core/func_exponential.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\func_exponential.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\./core/func_common.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\_fixes.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\func_common.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\./core/func_packing.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\func_packing.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\./core/func_geometric.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\func_geometric.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\./core/func_matrix.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\func_matrix.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\./core/func_vector_relational.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\_detail.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\func_vector_relational.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\./core/func_integer.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\func_integer.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\./core/func_noise.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core\func_noise.inl
+c:\users\dave\documents\github\project-1\part1\src\glm\./core/_swizzle.hpp
+c:\users\dave\documents\github\project-1\part1\src\utilities.h
+c:\users\dave\documents\github\project-1\part1\src\glm/glm.hpp
+c:\users\dave\documents\github\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\dave\documents\github\project-1\part1\src\cudaMat4.h
+c:\users\dave\documents\github\project-1\part1\src\glm/glm.hpp
+c:\users\dave\documents\github\project-1\part1\src\glm\core/_fixes.hpp
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\cuda_runtime.h
+c:\users\dave\documents\github\project-1\part1\src\kernel.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/config.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/config/config.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/config/simple_defines.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/config/compiler.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\cuda.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/config/host_system.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/config/device_system.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/config/host_device.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\host_defines.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/config/debug.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/config/compiler_fence.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/config/forceinline.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/config/hd_warning_disable.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/config/global_workarounds.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/cstdint.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\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.0\include\thrust/random/detail/random_core_access.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/detail/discard_block_engine.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/linear_congruential_engine.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/detail/linear_congruential_engine_discard.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/detail/mod.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/detail/linear_congruential_engine.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/linear_feedback_shift_engine.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/detail/linear_feedback_shift_engine_wordmask.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/detail/linear_feedback_shift_engine.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/subtract_with_carry_engine.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/detail/subtract_with_carry_engine.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/xor_combine_engine.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/type_traits.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/type_traits/has_trivial_assign.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/detail/xor_combine_engine_max.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/mpl/math.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/detail/xor_combine_engine.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/uniform_int_distribution.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/pair.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/pair.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/swap.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/detail/integer_traits.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/detail/uniform_int_distribution.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/uniform_real_distribution.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/detail/uniform_real_distribution.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/normal_distribution.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/detail/normal_distribution_base.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\thrust/random/detail/normal_distribution.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\math_constants.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include\cuda.h
diff --git a/Part1/src/kernel.cu b/Part1/src/kernel.cu
index ee9b9e5..598e095 100644
--- a/Part1/src/kernel.cu
+++ b/Part1/src/kernel.cu
@@ -83,25 +83,61 @@ __global__ void generateCircularVelArray(int time, int N, glm::vec3 * arr, glm::
}
}
-// TODO: Core force calc kernel global memory
+// Core force calc kernel global memory
// 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);
+ // Get the index for this body
+ int index = threadIdx.x + (blockIdx.x * blockDim.x);
+
+ // Initialize the output vector
+ glm::vec3 F = glm::vec3(0.0f, 0.0f, 0.0f);
+
+ // Loop through and add contributions from each other body
+ for (size_t i = 0; i < N; i++) {
+ // Skip the current body since it doesn't apply a force to itself
+ if (i == index) {
+ continue;
+ }
+
+ glm::vec4 diff = their_pos[i] - my_pos;
+ glm::vec3 r = glm::vec3(diff);
+ float mag = G * their_pos[i].w / (glm::length(r) * glm::length(r));
+ F += mag * r / glm::length(r);
+ }
+
+ // Add the contribution from the star
+ glm::vec3 r = glm::vec3(my_pos);
+ float mag = G * starMass / (glm::length(r) * glm::length(r));
+ F -= mag * r / glm::length(r);
+
+ return F;
}
-// TODO : update the acceleration of each body
-__global__ void updateF(int N, float dt, glm::vec4 * pos, glm::vec3 * vel, glm::vec3 * acc)
+// update the acceleration of each body
+__global__ void updateF(int N, glm::vec4 * pos, glm::vec3 * acc)
{
- // FILL IN HERE
+ // Get the index for this body
+ int index = threadIdx.x + (blockIdx.x * blockDim.x);
+
+ // Calculate the acceleration on the body
+ acc[index] = accelerate(N, pos[index], pos);
}
-// TODO : update velocity and position using a simple Euler integration scheme
+// 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
+ // Get the index for this body
+ int index = threadIdx.x + (blockIdx.x * blockDim.x);
+
+ // Update the velocity through euler integration
+ vel[index] += dt * acc[index];
+
+ // Update the position
+ glm::vec4 v(vel[index], 0.0);
+ pos[index] += dt * v;
}
// Update the vertex buffer object
@@ -176,10 +212,39 @@ void initCuda(int N)
cudaThreadSynchronize();
}
-// TODO : Using the functions you wrote above, write a function that calls the CUDA kernels to update a single sim step
+// Call the CUDA kernels updateF and updateS to update a single sim step
void cudaNBodyUpdateWrapper(float dt)
{
- // FILL IN HERE
+ dim3 fullBlocksPerGrid((int)ceil(float(numObjects)/float(blockSize)));
+
+ // Add events for profiling
+ cudaEvent_t beginEvent;
+ cudaEvent_t endEvent;
+ cudaEventCreate( &beginEvent );
+ cudaEventCreate( &endEvent );
+
+ // Compute accelerations from current positions
+ cudaEventRecord(beginEvent, 0);
+ updateF<<>>(numObjects, dev_pos, dev_acc);
+ cudaEventRecord(endEvent, 0);
+ cudaEventSynchronize(endEvent);
+ float timeValue;
+ cudaEventElapsedTime(&timeValue, beginEvent, endEvent);
+ fprintf(stdout, "updateF kernel time: %f.\n", timeValue);
+
+ // Wait for all accelerations to be updated
+ cudaThreadSynchronize();
+
+ // Update all positions and velocities from integrating the new acceleration
+ cudaEventRecord(beginEvent, 0);
+ updateS<<>>(numObjects, dt, dev_pos, dev_vel, dev_acc);
+ cudaEventRecord(endEvent, 0);
+ cudaEventSynchronize(endEvent);
+ cudaEventElapsedTime(&timeValue, beginEvent, endEvent);
+ fprintf(stdout, "updateS kernel time: %f.\n", timeValue);
+
+ // Wait for all positions to be updated
+ cudaThreadSynchronize();
}
void cudaUpdateVBO(float * vbodptr, int width, int height)
diff --git a/Part1/src/main.cpp b/Part1/src/main.cpp
index ea86207..53ba4a3 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 1000
#define DT 0.2
#define VISUALIZE 1
//-------------------------------
diff --git a/Part2/Part2.sln b/Part2/Part2.sln
new file mode 100644
index 0000000..73e210f
--- /dev/null
+++ b/Part2/Part2.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Part2", "Part2\Part2.vcxproj", "{21083425-7EE2-4DEA-AAAD-4F8266BD2B06}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {21083425-7EE2-4DEA-AAAD-4F8266BD2B06}.Debug|Win32.ActiveCfg = Debug|Win32
+ {21083425-7EE2-4DEA-AAAD-4F8266BD2B06}.Debug|Win32.Build.0 = Debug|Win32
+ {21083425-7EE2-4DEA-AAAD-4F8266BD2B06}.Release|Win32.ActiveCfg = Release|Win32
+ {21083425-7EE2-4DEA-AAAD-4F8266BD2B06}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Part2/Part2/Part2.vcxproj b/Part2/Part2/Part2.vcxproj
new file mode 100644
index 0000000..ae9e39f
--- /dev/null
+++ b/Part2/Part2/Part2.vcxproj
@@ -0,0 +1,75 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {21083425-7EE2-4DEA-AAAD-4F8266BD2B06}
+ Part2
+
+
+
+ Application
+ true
+ MultiByte
+
+
+ Application
+ false
+ true
+ MultiByte
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Level3
+ Disabled
+
+
+ true
+ cudart.lib;%(AdditionalDependencies)
+
+
+
+
+ Level3
+ MaxSpeed
+ true
+ true
+
+
+ true
+ true
+ true
+ cudart.lib;%(AdditionalDependencies)
+
+
+ %(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Part2/Part2/Part2.vcxproj.filters b/Part2/Part2/Part2.vcxproj.filters
new file mode 100644
index 0000000..f07abd3
--- /dev/null
+++ b/Part2/Part2/Part2.vcxproj.filters
@@ -0,0 +1,22 @@
+
+
+
+
+ {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
+
+
+
\ No newline at end of file
diff --git a/Part2/Part2/matrix_math.cu b/Part2/Part2/matrix_math.cu
new file mode 100644
index 0000000..ae8a7e2
--- /dev/null
+++ b/Part2/Part2/matrix_math.cu
@@ -0,0 +1,209 @@
+#include
+#include
+#include
+
+float * mat_1d;
+float * mat_2d;
+float * mat_3d;
+
+float * mat_1;
+float * mat_2;
+float * mat_3;
+
+const int N = 5;
+
+// initialize function
+void init() {
+ int size = N*N;
+
+ // Allocate CPU Memory
+ mat_1 = (float*) malloc(size*sizeof(float));
+ mat_2 = (float*) malloc(size*sizeof(float));
+ mat_3 = (float*) malloc(size*sizeof(float));
+
+ // Allocate GPU Memory
+ cudaMalloc((void**)&mat_1d, size*sizeof(float));
+ cudaMalloc((void**)&mat_2d, size*sizeof(float));
+ cudaMalloc((void**)&mat_3d, size*sizeof(float));
+
+ // Initialize CPU Memory
+ for (size_t i = 0; i < size; i++) {
+ mat_1[i] = 3.2*(i/5) - 1.2*(i%5) + 7.5;
+ mat_2[i] = 1.6*(i/5) + 5.5*(i%5) - 2.2;
+ mat_3[i] = 0;
+ }
+
+ // Initialize GPU Memory
+ cudaMemcpy(mat_1d, mat_1, size*sizeof(float), cudaMemcpyHostToDevice);
+ cudaMemcpy(mat_2d, mat_2, size*sizeof(float), cudaMemcpyHostToDevice);
+ cudaMemcpy(mat_3d, mat_3, size*sizeof(float), cudaMemcpyHostToDevice);
+}
+
+void cleanUp() {
+ free(mat_1);
+ free(mat_2);
+ free(mat_3);
+
+ cudaFree(mat_1d);
+ cudaFree(mat_2d);
+ cudaFree(mat_3d);
+}
+
+void printResults(float* m) {
+ for (size_t i = 0; i < N; i++) {
+ fprintf(stdout, "[%f, %f, %f, %f, %f] \n", m[i*N], m[i*N+1], m[i*N+2], m[i*N+3], m[i*N+4]);
+ }
+ fprintf(stdout, "\n");
+}
+
+void printResultsGPU(float* md) {
+ float* temp = (float*) malloc(N*N*sizeof(float));
+
+ cudaMemcpy(temp, md, N*N*sizeof(float), cudaMemcpyDeviceToHost);
+
+ printResults(temp);
+
+ free(temp);
+}
+
+__global__ void mat_add(float* m1, float* m2, float* m3) {
+ int index = (threadIdx.x * blockDim.x) + threadIdx.y;
+
+ m3[index] = m1[index] + m2[index];
+}
+
+__global__ void mat_sub(float* m1, float* m2, float* m3) {
+ int index = (threadIdx.x * blockDim.x) + threadIdx.y;
+
+ m3[index] = m1[index] - m2[index];
+}
+
+__global__ void mat_mult(float* m1, float* m2, float* m3) {
+ int index = (threadIdx.x * blockDim.x) + threadIdx.y;
+
+ // Initialize the result value
+ float value = 0.0f;
+
+ // Determine the row and column number of the current element
+ int row = threadIdx.x;
+ int col = threadIdx.y;
+
+ // Loop through and compute the dot product needed for this element
+ for (size_t i = 0; i < N; i++) {
+ value += m1[row*N + i] * m2[i*N + col];
+ }
+
+ m3[index] = value;
+}
+
+void mat_add_cpu(float* m1, float* m2, float* m3) {
+ for (size_t i = 0; i < N; i++) {
+ for (size_t j = 0; j < N; j++) {
+ m3[N*i+j] = m1[N*i+j] + m2[N*i+j];
+ }
+ }
+}
+
+void mat_sub_cpu(float* m1, float* m2, float* m3) {
+ for (size_t i = 0; i < N; i++) {
+ for (size_t j = 0; j < N; j++) {
+ m3[N*i+j] = m1[N*i+j] - m2[N*i+j];
+ }
+ }
+}
+
+void mat_mult_cpu(float* m1, float* m2, float* m3) {
+ for (size_t i = 0; i < N; i++) {
+ for (size_t j = 0; j < N; j++) {
+ float sum = 0;
+ for (size_t k = 0; k < N; k++) {
+ float a = m1[N*i + k];
+ float b = m2[k*N + j];
+ sum += a * b;
+ }
+ m3[N*i+j] = sum;
+ }
+ }
+}
+
+int main(int argc, char** argv) {
+ init();
+
+ dim3 dimBlock(N,N);
+
+ // Add events for profiling
+ cudaEvent_t beginEvent;
+ cudaEvent_t endEvent;
+ cudaEventCreate( &beginEvent );
+ cudaEventCreate( &endEvent );
+ float timeValue;
+
+ //fprintf(stdout, "GPU: \n");
+
+ // Do matrix addition on the GPU and see the result
+ cudaEventRecord(beginEvent, 0);
+ mat_add<<<1,dimBlock>>>(mat_1d, mat_2d, mat_3d);
+ cudaThreadSynchronize();
+ cudaEventRecord(endEvent, 0);
+ cudaEventSynchronize(endEvent);
+ cudaEventElapsedTime(&timeValue, beginEvent, endEvent);
+ fprintf(stdout, "GPU mat_add kernel time: %f.\n", timeValue);
+ printResultsGPU(mat_3d);
+
+ // Do matrix subtraction on the GPU and see the result
+ cudaEventRecord(beginEvent, 0);
+ mat_sub<<<1,dimBlock>>>(mat_1d, mat_2d, mat_3d);
+ cudaThreadSynchronize();
+ cudaEventRecord(endEvent, 0);
+ cudaEventSynchronize(endEvent);
+ cudaEventElapsedTime(&timeValue, beginEvent, endEvent);
+ fprintf(stdout, "GPU mat_sub kernel time: %f.\n", timeValue);
+ printResultsGPU(mat_3d);
+
+ // Do matrix multiplication on the GPU and see the result
+ cudaEventRecord(beginEvent, 0);
+ mat_mult<<<1,dimBlock>>>(mat_1d, mat_2d, mat_3d);
+ cudaThreadSynchronize();
+ cudaEventRecord(endEvent, 0);
+ cudaEventSynchronize(endEvent);
+ cudaEventElapsedTime(&timeValue, beginEvent, endEvent);
+ fprintf(stdout, "GPU mat_mult kernel time: %f.\n", timeValue);
+ printResultsGPU(mat_3d);
+
+ //fprintf(stdout, "CPU: \n");
+
+ // Do matrix addition on the CPU and see the result
+ cudaEventRecord(beginEvent, 0);
+ mat_add_cpu(mat_1, mat_2, mat_3);
+ cudaEventRecord(endEvent, 0);
+ cudaEventSynchronize(endEvent);
+ cudaEventElapsedTime(&timeValue, beginEvent, endEvent);
+ fprintf(stdout, "CPU mat_add kernel time: %f.\n", timeValue);
+ printResults(mat_3);
+
+ // Do matrix subtraction on the CPU and see the result
+ cudaEventRecord(beginEvent, 0);
+ mat_sub_cpu(mat_1, mat_2, mat_3);
+ cudaEventRecord(endEvent, 0);
+ cudaEventSynchronize(endEvent);
+ cudaEventElapsedTime(&timeValue, beginEvent, endEvent);
+ fprintf(stdout, "CPU mat_sub kernel time: %f.\n", timeValue);
+ printResults(mat_3);
+
+ // Do matrix multiplication on the CPU and see the result
+ cudaEventRecord(beginEvent, 0);
+ mat_mult_cpu(mat_1, mat_2, mat_3);
+ cudaEventRecord(endEvent, 0);
+ cudaEventSynchronize(endEvent);
+ cudaEventElapsedTime(&timeValue, beginEvent, endEvent);
+ fprintf(stdout, "CPU mat_mult kernel time: %f.\n", timeValue);
+ printResults(mat_3);
+
+ cleanUp();
+
+ while (true) {
+
+ }
+
+ return 0;
+}
diff --git a/README.md b/README.md
index 70ae0d3..674b237 100644
--- a/README.md
+++ b/README.md
@@ -1,120 +1,52 @@
-Project 1
-=========
-
-# Project 1 : Introduction to CUDA
-
-## NOTE :
-This project (and all other projects in this course) requires a NVIDIA graphics
-card with CUDA capabilityi! Any card with compute capability 2.0 and up will
-work. This means any card from the GeForce 400 and 500 series and afterwards
-will work. If you do not have a machine with these specs, feel free to use
-computers in the SIG Lab. All computers in SIG lab and Moore 100 C have CUDA
-capable cards and should already have the CUDA SDK installed.
-
-## PART 1 : INSTALL NSIGHT
-To help with benchmarking and performance analysis, we will be using NVIDIA's
-profiling and debugging tool named NSight. Download and install it from the
-following link for whichever IDE you will be using:
-http://www.nvidia.com/object/nsight.html.
-
-NOTE : If you are using Linux / Mac, most of the screenshots and class usage of
-NSight will be in Visual Studio. You are free to use to the Eclipse version
-NSight during these in class labs, but we will not be able to help you as much.
-
-## PART 2 : NBODY SIMULATION
-To get you used to using CUDA kernels, we will be writing a simple 2D nbody
-simulator. The following source files are included in the project:
-
-* main.cpp : sets up graphics stuff for visualization
-* kernel.cu : this contains the CUDA kernel calls
-
-All the code that you will need to modify is in kernel.cu and is marked clearly
-by TODOs.
-
-## PART 3 : MATRIX MATH
-In this portion we will walk you through setting up a project that writes some
-simple matrix math functions. Please put this portion in a folder marked Part2
-in your repository.
-
-### Step 1 : Create your project.
-Using the instructions on the Google forum, please set up a new Visual Studio project that
-compiles using CUDA. For uniformity, please write your main function and all
-your code in a file named matrix_math.cu.
-
-### Step 2 : Setting up CUDA memory.
-As we discussed in class, there is host memory and device memory. Host memory
-is the memory that exists on the CPU, whereas device memory is memory on the
-GPU.
-
-In order to create/reserve memory on the GPU, we need to explicitly do so
-using cudaMalloc. By calling cudaMalloc, we are calling malloc on the GPU to
-reserve a portion of its memory. Like malloc, cudaMalloc simply mallocs a
-portion of memory and returns a pointer. This memory is only accessible on the
-device unless we explicitly copy memory from the GPU to the CPU. The reverse is
-also true.
-
-We can copy memory to and from the GPU using the function cudaMemcpy. Like the
-POSIX C memcpy, you will need to specify the size of memory you are copying.
-The last argument is used to specify the direction of the copy (from GPU to CPU
-or the other way around).
-
-Please initialize 2 5 x 5 matrices represented as an array of floats on the CPU
-and the GPU where each of the entry is equal to its position (i.e. A_00 = 0,
-A_01 = 1, A_44 = 24).
-
-### Step 3 : Creating CUDA kernels.
-In the previous part, we explicitly divided the CUDA kernels from the rest of
-the file for stylistic purposes. Since there will be far less code in this
-project, we will write the global and device functions in the same file as the
-main function.
-
-Given a matrix A and matrix B (both represented as arrays of floats), please
-write the following functions :
-* mat_add : A + B
-* mat_sub : A - B
-* mat_mult : A * B
-
-You may assume for all matrices that the dimensions of A and B are the same and
-that they are square.
-
-Use the 2 5 x 5 matrices to test your code either by printing directly to the
-console or writing an assert.
-
-THINGS TO REMEMBER :
-* global and device functions only have access to memory that is explicitly on
- the device, meaning you MUST copy memory from the CPU to the GPU if you would
- like to use it there
-* The triple triangle braces "<<<" begin and end the global function call. This
- provides parameters with which CUDA uses to set up tile size, block size and
- threads for each warp.
-* Do not fret if Intellisense does not understand CUDA keywords (if they have
- red squiggly lines underneath CUDA keywords). There is a way to integrate
- CUDA syntax highlighting into Visual Studio, but it is not the default.
-
-### Step 4 : Write a serial version.
-For comparison, write a single-threaded CPU version of mat_add, mat_sub and
-mat_mult. We will not introduce timing elements in this project, but please
-keep them in mind as the upcoming lab will introduce more on this topic.
-
-## PART 4 : PERFORMANCE ANALYSIS
-Since this is the first project, we will guide you with some example
-questions. In future projects, please answer at least these questions, as
-they go through basic performance analysis. Please go above and beyond the
-questions we suggest and explore how different aspects of your code impact
-performance as a whole.
-
-We have provided a frame counter as a metric, but feel free to add cudaTimers,
-etc. to do more fine-grained benchmarking of various aspects.
-
-NOTE : Performance should be measured in comparison to a baseline. Be sure to
-describe the changes you make between experiments and how you are benchmarking.
-
-* How does changing the tile and block sizes change performance? Why?
-* How does changing the number of planets change performance? Why?
-* Without running experiments, how would you expect the serial and GPU verions
- of matrix_math to compare? Why?
-
-## SUBMISSION
-Please commit your changes to your forked version of the repository and open a
-pull request. Please write your performance analysis in your README.md.
-Remember to email Harmony (harmoli+CIS565@seas.upenn.edu) your grade and why.
+Performance Analysis:
+-----------------------------------------------------------
+
+N-Body
+
+- Impact of tile/block sizes:
+ For constant N-Bodies = 1000
+ Block Size updateF (ms) updateS (ms)
+ 32 0.55 0.0055
+ 64 0.55 0.0055
+ 128 0.55 0.0055
+ 256 0.55 0.0058
+ 512 0.67 0.0068
+ 1024 0.68 0.0089
+Changing the block size makes very little impact, though it looks like too many threads per block starts to run into issues with running out of local memory, leading to performance falling off a cliff at 512 threads per block. There would be more of an impact on the lower side if there were use of shared memory in the code that were impacted with fewer warps that could share.
+
+- Number of Planets:
+ For constant Block Size = 128
+ N-Bodies updateF (ms) updateS (ms)
+ 500 0.27 0.0055
+ 1000 0.55 0.0055
+ 2000 1.10 0.0059
+ 3000 1.68 0.0065
+ 4000 2.33 0.0076
+ 5000 2.88 0.0076
+The updateF step clearly is O(n), which is good since N-body is usually O(n^2). The parallel implementation got rid of the outer loop, but not the inner loop. The updateS step should be O(1) since all bodies are integrated in parallel, but there is a performance cliff that I am unsure about... perhaps local memory?
+
+Matrix Math
+
+- My implementation lacks optimization using shared memory that was discussed and shown in class.
+
+- For small matrices, I would expect the GPU performance to lag behind the CPU implementation since CPU optimizations like Out of Order execution will help to speed it up and loading memory from the CPU to GPU will take time. It likely will take at least 100+ elements in the matrix before it becomes worth parallelizing.
+
+- 5x5 GPU/CPU Comparison
+CPU Performance
+ Mat Add -> 0.0014 ms
+ Mat Sub -> 0.0015 ms
+ Mat Mult -> 0.0013 ms
+GPU Performance
+ Mat Add -> 0.037 ms
+ Mat Sub -> 0.038 ms
+ Mat Mult -> 0.053 ms
+
+- 12x12 GPU/CPU Comparison
+CPU Performance
+ Mat Add -> 0.0016 ms
+ Mat Sub -> 0.0014 ms
+ Mat Mult -> 0.0014 ms
+GPU Performance
+ Mat Add -> 0.082 ms
+ Mat Sub -> 0.035 ms
+ Mat Mult -> 0.055 ms
\ No newline at end of file