我正在處理一個代碼,我必須對一塊數據執行向量 - 矩陣乘法,將結果複製回CPU,然後開始乘其他塊。我使用cublas庫執行向量到矩陣乘法(以下代碼)。測量準確的GPU計算時間
clock_t a,b;
a = clock();
for(int i=0;i<n;i++)
{
cublasSgemv(handle,CUBLAS_OP_T,m,k,&alpha, dev_b1+((i+1)*m), m, dev_b1+(i*m),1, &beta,out,1);
out+=(n-(i+1));
cudaMemcpy(b3,dev_b3, sizeof(float)*(cor_size), cudaMemcpyDeviceToHost);
}
b = clock();
cout<<"Running time is: "<<(double)(b-a)/clocks_per_sec;
我必須測量這個循環的運行時間。我讀了一些關於CudaEvent的內容,但在我的情況下,我想測量整個循環的時間而不是內核,所以我使用了時鐘函數。我想知道這是一個正確的方法來衡量這段代碼的時間或有更準確的方法來做到這一點? 我知道,爲了測量已用時間,我們必須多次重複運行代碼,並取所有運行時間的平均值,所以另一個問題是,是否應該重複運行代碼的重複次數?
由於