Ho installato il runtime CUDA e la versione 7.0 dei driver sulla mia workstation (Ubuntu 14.04, 2x Intel XEON e5 + 4x Tesla k20m). Ho usato il seguente programma per verificare se la mia installazione funziona:Perché il mio programma "Hello world" richiede quasi 10 anni?
#include <stdio.h>
__global__ void helloFromGPU()
{
printf("Hello World from GPU!\n");
}
int main(int argc, char **argv)
{
printf("Hello World from CPU!\n");
helloFromGPU<<<1, 1>>>();
printf("Hello World from CPU! Again!\n");
cudaDeviceSynchronize();
printf("Hello World from CPU! Yet again!\n");
return 0;
}
ottengo l'uscita corretta, ma c'è voluto un importo enourmus di tempo:
$ nvcc hello.cu -O2
$ time ./hello > /dev/null
real 0m8.897s
user 0m0.004s
sys 0m1.017s`
Se rimuovo tutto il codice dispositivo l'esecuzione complessiva richiede 0.001 s. Quindi perché il mio programma semplice impiega quasi 10 secondi?
quale tempo si ottiene se si esegue 'ciao' su una GPU? per esempio. 'CUDA_VISIBLE_DEVICES = 0 volta./Ciao'? –
Penso che cudaDevicesynchronize() stia prendendo tempo –
questo non modifica il tempo impiegato. È circa 9 secondi – chris