CUDAの初回呼び出しオーバーヘッド

CUDAは初めてkernelコールを行ったときだけ特別に時間がかかる。
(初期化とかやってるの?)それがどのくらいか計測した。


t3 = gettimeofday_sec();
setMatrixOnGPU(*a);
t4 = gettimeofday_sec();
printf("SET1 : time = %f\n", t4 - t3);
sleep(3);
t3 = gettimeofday_sec();
setMatrixOnGPU(*b);
t4 = gettimeofday_sec();
結果

no error
SET1 : time = 3.144686
no error
SET2 : time = 0.051475
よって2.6秒くらいかな??