/*START DEFINITION*/ int cudaInit(SimulationParameters *simParams, RulesParameters *applyingRules,InfoCache *cache, int numberOfDesires) { unsigned long int i; Vector acc,vel; abortSimulation=FALSE; nDesires=numberOfDesires; dt=1/(double)(simParams->fps); simulationProgress = 0; // initializing cache files and rules settings memcpy(&cacheFileOption,cache,sizeof(InfoCache)); memcpy(&simParameters,simParams,sizeof(SimulationParameters)); // init values for simulation // check cuda device presence, on false exit if (GPUInit(simParameters,applyingRules,numberOfDesires)== NO_CUDA_DEVICE) return NO_CUDA_DEVICE; // preparing the boids set //ndes=nDesires; boidSet=(Boid *)malloc(sizeof(Boid)*simParams->numberOfBoids); if(boidSet!=NULL) { // initializing boids starting position and starting velocity (only when no external boids passed to the simulation dll) randomVector(&acc, simParams->maxAcceleration, 0, 0); randomVector(&vel, simParams->maxVelocity, 0, 0); for(i=0; i<simParams->numberOfBoids; i++) cudaBoidInitialization(&boidSet[i],i+1, 20, 10, 5, &vel, &acc); } else printf("impossibile allocare memoria"); return OKCUDA; }
/* Begin Funtion Definitions */ int main (int argc, const char * argv[]) { cl_int error; GPUInit(&context, &queue, &is_nvidia, &program, "remap_kern.cl"); cHash_kernel = clCreateKernel(program, "cellHash_kern", &error); remap1_kernel = clCreateKernel(program, "remap1_kern", &error); printf(" REMAP\n\n"); if (is_nvidia) printf("size, Brute Force, CPU kD Tree, CPU Hash1, CPU Hash2, NVIDIA Hash1\n"); else printf("size, Brute Force, CPU kD Tree, CPU Hash1, CPU Hash2, ATI Hash1\n"); for( int levmx = 1; levmx < 10; levmx++) { printf("\nlevmx is %d\n\n",levmx); for( int i = 1024; i < 50000000; i *= 2) { printf("%d, ", i); remaps(i, i, 1.0, (double)levmx, 0.0); printf("\n"); } } }
int main (int argc, const char * argv[]) { cl_int error; GPUInit(&context, &queue, &is_nvidia, &program, "neigh2d_kern.cl"); init_kernel = clCreateKernel(program, "init_kern", &error); hash_setup_kernel = clCreateKernel(program, "hash_setup_kern", &error); calc_neighbor2d_kernel = clCreateKernel(program, "calc_neighbor2d_kern", &error); printf("\n 2D Neighbors Performance Results\n\n"); printf("Size, \tncells \tBrute \tkDtree \tHash CPU, \tHash GPU\n"); for (uint levmx = 0; levmx < 6; levmx++ ){ printf("\nMax levels is %d\n",levmx); for( uint i = 16; i <= 1024; i*=2 ) { if (levmx > 3 && i > 512) continue; printf("%d, ", i); neighbors2d(i, levmx); printf("\n"); } } }