關於cuda拷貝的速度測試

因爲沒有使用profiler,僅僅經過簡單的傳輸函數測試,以下測試了10000個點,1000000個點,100000000個點的速度:數組

均按時鐘週期來計時,經過MAX調整數據函數

int main(){ clock_t start,finish; int *d_data,*h_data; h_data = (int *)calloc(MAX, sizeof(int)); memset(h_data,0,MAX*sizeof(int)); cudaMalloc((void **) &d_data,MAX*sizeof(int)); start = clock(); cudaMemcpy(d_data,h_data,MAX*sizeof(int),cudaMemcpyHostToDevice); cudaMemcpy(h_data,d_data,MAX*sizeof(int),cudaMemcpyDeviceToHost); finish = clock(); cudaFree(d_data); free(h_data); cout<<"time is "<<finish-start<<endl; getchar(); return 0; }

 

測試結果測試

測試結果 10,000個節點 1,000,000個節點 100,000,000個節點
第一次測試 0 7 822
第二次測試 0 8 715
第三次測試 1 7 696

測試圖表以下:spa

 

 

因此在小批量數組的狀況下,徹底能夠在cpu中完成數據操做,而後device上面作簡單的加和或者乘積運算。code

相關文章
相關標籤/搜索