【发布时间】:2013-02-13 03:06:05
【问题描述】:
我有一个简单的内核,我正在使用clock() 计时。
我在How to measure the inner kernel time in NVIDIA CUDA?了解了这个功能
所以我用过
clock_t start = clock();(同样停止)计时。在编译时,我收到以下错误:
tex1.cu(14): 错误:明显调用的括号前的表达式必须具有(指向-)函数类型`
我是否缺少头文件或编译器选项?
另外,我尝试使用 CUDA 计时器 (cudaEvent_t start, stop;),但我得到的经过时间是 0 毫秒。我创建开始和停止,记录开始,做一些 CUDA 的东西,同步,记录停止,事件同步和测量经过的时间。这部分编译得很好,但让我经过的时间为零。
这是一个简单的内核,我用来测试我对纹理内存的理解。 内核:
__global__ void magic(float *mean, int *clock){
int i, tid = threadIdx.x + blockIdx.x * blockDim.x;
float t, sum=0.0;
clock_t start = clock();
if ( tid < dimy )
{
for(i=0;i<dimx; i++){
t = tex2D( input, i, tid );
sum = sum + t*t;
}
clock_t stop = clock();
clock[tid] = (int)(stop-start);
}
}
【问题讨论】:
-
您是否包含
<time.h>或<ctime>+using...?您还有其他名为clock或start的变量/函数吗? -
我没有任何名为clock 或start 的变量。我只包含了
<time.h> -
你能发布一个简短的内核代码版本吗?
-
当然。请参阅编辑
-
你确实有一个名为clock的变量——第二个内核参数!
标签: cuda