I just started working on my own n-body simulation, and I wanted to compare it’s performance to the n-body SDK demo. I got the first few data points down (using powers of 2 sizes):
Note: These numbers are from my 8800GT with 512MB memory. Number of Bodies,Iterations,Compute Time (ms),Interactions Per Second (in Billions),GFLOP/s 1024,100,39.849,2.631,52.628 1024,200,83.801,2.503,50.051 1024,300,120.952,2.601,52.016 1024,400,165.941,2.528,50.552 2048,100,75.599,5.548,110.961 2048,200,151.737,5.528,110.568 2048,300,224.951,5.594,111.872 2048,400,302.937,5.538,110.764 4096,100,278.180,6.031,120.621 4096,200,560.314,5.989,119.770 4096,300,843.045,5.970,119.904 4096,400,1121.440,5.984,119.683 8192,100,823.988,8.144,162.888 8192,200,1641.121,8.178,163.568 8192,300,2459.290,8.186,163.727 8192,400,3280.464,8.183,163.657 16384,100,2709.589,9.907,198.137 16384,200,5402.960,9.937,198.732 16384,300,8110.443,9.929,198.585 16384,400,10812.151,9.931,198.618 32768,100,10779.012,9.961,199.228 32768,200,21559.355,9.961,199.216 32768,300,32348.813,9.958,199.156 32768,400,43112.066,9.962,199.247 65536,100,40979.711,10.481,209.614 65536,200,81941.430,10.483,209.660 65536,300,122912.563,10.483,209.660 65536,400,163883.922,10.483,209.659 131072,100,159203.453,10.791,215.823 262144,100,636327.813,10.799,215.988
However, when I went to run the simulation on the next size (n = 262144), the program immediately crashed, I got a Vista notification saying the video driver had crashed and restarted, and the following error in the console:
C:\ProgramData\NVIDIA Corporation\NVIDIA CUDA SDK\bin\win64\Release>nbody -benchmark -n=262144 Run "nbody -benchmark -n=<numBodies>" to measure perfomance. cutilCheckMsg cudaThreadSynchronize error: Kernel execution failed in file <bodysystemcuda.cu>, line 155 : unknown error.
Any ideas on what the problem is here? I was planning to benchmark the next few powers-of-two sizes (n = 524288, 1048576, 2097152) so I have an idea about what I should expect from my own code.
I’m running on Vista64 if that matters…