HTML

Az élet kódjai

Csináld maga. Senki nem csinálja meg helyetted.

Friss topikok

CUDA (2. rész)

2011.01.13. 15:37 Travis.CG

Nyilván mindenki túl van a teljes dokumentáció átolvasásán, a példaprogramok végignézésén és talán már 5-6 programot is írtak hiba nélkül. Én nem tartozom közéjük. A példáprogramokat megnéztem. Különösen sok időt töltöttem el egy füst animációt bemutató programnál.

A dokumentációban leírtakat nem akarom megismételni. Nézzünk néhány teljesítmény mutatót. A CUDA magok sebességéről is elég sok tesztet lehet látni, ezért inkább a memória használatot mutatnám be.

A tesztprogramunk a következő:

 #include <stdio.h> #define SIZE 3000

int main(int argc, char **argv){
   float *gpustuff;
   cudaError_t error;
   int i;

   printf("Memoria foglalas GPU\n");

   for(i = 0; i < SIZE * 6; i++){

      error = cudaMalloc(&gpustuff, SIZE * sizeof(float));
      if(error != cudaSuccess){
         printf("Hiba %s\n", cudaGetErrorString(error));
         return(-1);
      }

      error = cudaFree(gpustuff);

      if(error != cudaSuccess){
         printf("Hiba %s\n", cudaGetErrorString(error));
         return(-1);
      }

   }

   printf("Minden rendben\n");
   return(0);
}

A teszt program egy Intel Celeron D 320-on 1 GB ram(kéretik nem hangosan felnevetni) Nvidia Quadro 600. Mivel tartottam attól, hogy a CUDA környezet inicializálása sok időt vesz igénybe, ami torzíthatja a mérést, ezért a programot többször futtattam a for ciklus méretének változtatásával. A CPU verziót nem közlöm, azt mindenki írja meg maga :-) A táblázat első oszlopa azt mutatja, hányszor futott le a for ciklus. A második oszlop a Linuxos time paranccsal mennyi időt mértem. A harmadik oszlop a CPU verzió ideje, szintén time paranccsal.

3000 1.159 0.005
6000 2.090 0.004
9000 3.215 0.004
12000 4.032 0.005
15000 6.793 0.005
18000 6.819 0.004

Ugyan ez a teszt egy másik gépen (AMD Athlon X2 4400, 4GB ram, Nvidia Geforce 8500) a következő eredményt adta:

3000 0.970 0.003
6000 1.875 0.003
9000 2.770 0.003
12000 3.688 0.002
15000 4.588 0.004
18000 5.506 0.004

Tehát a memória foglalás rendkívül költséges művelet.

Szólj hozzá!

Címkék: programozás

A bejegyzés trackback címe:

https://cybernetic.blog.hu/api/trackback/id/tr542581331

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása