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

时间:2013-08-14 15:17:45

标签: makefile clock

我正在将我的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 Code:

__global__
void test()
{
}

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

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

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

7 个答案:

答案 0 :(得分:13)

输入以下命令:

find . -exec touch \{\} \;

(要查找的第一个参数指定要搜索的目录)

答案 1 :(得分:5)

请参阅此帖:Compling C++ on remote Linux machine - “clock skew detected” warning

我建议只复制源代码(没有可执行文件),然后运行touch *将最后修改的时间设置为当前的hgpu.org服务器时间。不幸的是,这会迫使一切都重建。

出于好奇,在同步PC时间之后,main.cu的修改时间仍然是381秒吗?

答案 2 :(得分:4)

只需转到令人不安的文件所在的目录,在控制台中输入touch *不带引号,你应该很好。

答案 3 :(得分:4)

我将回答我自己的问题。

我在Makefile中添加了以下代码行,并修复了&#34;时钟偏差&#34;问题:

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

答案 4 :(得分:2)

其中一个原因可能是您的电脑的日期/时间不正确。

在Ubuntu PC中使用以下方法检查日期和时间:

date

示例,更新日期和时间的方法之一是:

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

答案 5 :(得分:0)

请尝试

make clean

(而不是make),然后

make

试。

答案 6 :(得分:-3)

Makefile : Clock skew detected “可能的解决方案是触摸源树中的每个文件以更新时间戳: 转到子树的根目录: 找 。 -exec touch {} \; 然后进行清理并重试编译。