2013-10-22 41 views

回答

3

引述CUDA C編程指南:

clock_t clock(); 
long long int clock64(); 

當在設備代碼執行,返回是 遞增每個時鐘週期每多處理器計數器的值。在 內核的開始和結尾採樣這個計數器,取出兩個採樣的差值,並記錄每個線程的結果 爲每個線程提供了一個測量設備所採用的時鐘週期數爲 完全執行該線程,但不是執行線程指令花費的實際上 時鐘週期數。前者數字大於後者,因爲 線程是時間片。

此計時幾乎適用於Matlab的tictoc。在CUDA SDK中有一個時鐘示例。基本上,它是這樣的

__global__ void max(..., int* time) 
{ 
    int i = threadIdx.x + blockIdx.x * blockDim.x; 

    clock_t start = clock(); 
    //device function call 
    clock_t stop = clock(); 
    ... 
    time[i] = (int)(stop - start); 
} 
+0

我需要爲每個設備功能添加clock()嗎? –

+0

@ChaparalaAbhilash我用一個簡單的用法示例編輯了我的帖子。 – JackOLantern

相關問題