示例#1
0
bool useRayTracing(void)
    {
    int nbMeasure = 5;
    int maxDimension = 5000;
    Chronos init;
    Chronos core;
    for (int d = 2000; d < maxDimension; d += 500)
	{
	for (int nbSphere = 100; nbSphere < 1000; nbSphere += 200)
	    {
	    for (int numThreads = 1; numThreads < 6; numThreads++)
		{
		for (int i = 0; i < nbMeasure; i++)
		    {
		    cout << d << ",";
		    cout << nbSphere << ",";
		    cout << numThreads << ",";
		    init.start();
		    RayTracingImageCudaMOO rayTracing(d, d, 0, 0.005, nbSphere, numThreads);
		    cout << init.stop() << ",";

		    core.start();
		    rayTracing.fillImageGL();
		    cout << core.stop() << endl;
		    }
		}
	    }
	}

    return true;
    }
示例#2
0
void useProduitScalaire(void)
    {
    int n = 8192;

    Chronos chronoCuda;

    chronoCuda.start();

    ProduitScalaire *produitScalaire = new ProduitScalaire(n);
    produitScalaire->launchProduitScalaire();

    double secondesCuda = chronoCuda.stop();

    Chronos chronoCPU;

    chronoCPU.start();

    float resultatSequentiel = produitScalaireSequentielleCuda(n);

    double secondesCPU = chronoCPU.stop();

    cout << "Resultat produit scalaire cuda= " << produitScalaire->getResultat() << " temps d'execution= " << secondesCuda << endl;
    cout << "Resultat produit scalaire sequentiel= " << resultatSequentiel << " temps d'execution= " << secondesCPU << endl;

    delete produitScalaire;
    }
示例#3
0
void useMonteCarlo(void)
    {
    int n = 8192;
    float a = -1.0;
    float b = 1.0;
    float m = 8.5;

    Chronos chronoCudaMonteCarlo;

    chronoCudaMonteCarlo.start();

    MonteCarlo *monteCarlo = new MonteCarlo(a, b, m, n);
    monteCarlo->run();

    double secondesCudaMonteCarlo = chronoCudaMonteCarlo.stop();

    Chronos chronoMonteCarloSequentiel;

    float resultatSequentiel = monteCarloSequentielleCuda(n * 10000);

    double secondesMonteCarloSequentiel = chronoMonteCarloSequentiel.stop();

    cout << "Resultat monte carlo cuda= " << monteCarlo->getResultat() << " temps d'excecution = " << secondesCudaMonteCarlo << endl;
    cout << "Resultat monte carlo sequentielle= " << resultatSequentiel << " temps d'excecution = " << secondesMonteCarloSequentiel << endl;

    delete monteCarlo;
    }
示例#4
0
static void useHistogramme(void)
    {
    Chronos chronoHistogramme;

    chronoHistogramme.start();

    Histogramme *histogramme = new Histogramme();
    histogramme->run();

    double secondesHistogramme = chronoHistogramme.stop();

    histogramme->printTabFrequence();
    cout << "Temps d'execution= " << secondesHistogramme << endl;

    delete histogramme;
    }
示例#5
0
int mainCore(void)
    {
    bool isOk = true;
    Chronos chrono;
    chrono.start();

    //isOk &= useHello();

    //isOk &= useRippling ();
    //isOk &= useMandelbrot();
    //isOk &= useJulia ();
    //isOk &= useHeater();
    //isOk &= useRayTracing();
    isOk &= demoAll();

    cout << "\n-------------------------------------------------" << endl;
    cout << "End Main : isOk = " << isOk << endl;

    return isOk ? EXIT_SUCCESS : EXIT_FAILURE;
    }