Exemple #1
0
/*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;
}
Exemple #2
0
/* 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");
       }
    }
    
}
Exemple #3
0
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");
       }
    }
}