如何解决错误:“检测到时钟偏移”?

20

因为我的笔记本电脑上没有独立显卡,所以我将我的OpenCL和CUDA代码上传到hgpu.org。但是当我上传代码时,出现了以下错误:

make: Warning: File `main.cu' has modification time 381 s in the future
make: warning:  Clock skew detected.  Your build may be incomplete.

我知道时钟偏差是由于我的机器时间和服务器时间的差异所致,因此我将我的时间与服务器同步。OpenCL和C++代码现在运行良好,但Cuda代码仍然给出了这个错误。

所以我的问题是:

除了时间同步之外,是否还有其他导致时钟偏差错误的原因?如果有,我该如何解决?

Cuda 代码:

__global__
void test()
{
}

int main()
{
    dim3 gridblock(1,1,1);
    dim3 threadblock(1,1,1);

    test<<<gridblock,threadblock>>>();
    return 0;
}

注意:我也可以提供Makefile文件。

4个回答

9

只需进入有问题文件所在的目录,在控制台中键入touch *(不带引号),您就可以解决问题了。


4
更新该目录中所有文件的时间戳?这不是有点危险,特别是如果在错误的目录中意外执行? - user2629998

6

可能的原因之一是您电脑的日期/时间设置不正确。

在Ubuntu电脑上,可以使用以下命令检查日期和时间:

date

例如,更新日期和时间的一种方法是:

date -s "23 MAR 2017 17:06:00"

3
符合情况,校准系统时间,问题解决。:) - yurenchen

3

我将回答自己的问题。

我在我的Makefile中添加了以下代码,并解决了“时钟偏移”问题:

clean:  
    find . -type f | xargs touch
    rm -rf $(OBJS)

19
这只是治疗症状而非根本原因,无法完全“修复”问题。如果有人遇到同样的问题,请不要采用此方法! - RolKau
2
@RolKau,你认为问题出在哪里? - zindarod

2

请尝试执行以下操作:

make clean

(而不是 make), 然后

make

再次出现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接