web-dev-qa-db-ja.com

エラーを解決する方法:「クロックスキューが検出されました」?

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ファイルも提供できます。

17
zindarod

私は自分の質問に答えます。

Makefileに次のコード行を追加し、「クロックスキュー」の問題を修正しました。

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

次のコマンドを入力します。

find . -exec touch \{\} \;

(検索する最初の引数は、検索するディレクトリを指定します)

12
Muneeb Zulfiqar

この投稿を参照してください: リモートLinuxマシンでのC++のコンパイル-「クロックスキューが検出されました」警告

ソースコードのみをコピーし(実行可能ファイルはコピーしない)、touch *最終変更時刻を現在のhgpu.orgサーバー時刻に設定します。これにより、残念ながらすべてが再構築されます。

好奇心から、PCの時刻を同期した後、main.cuの変更時間は今後381秒のままですか?

5
chippies

問題のあるファイルがあるディレクトリに移動し、touch *コンソールで引用符なしで、あなたは良いはずです。

4
Nerox

理由の1つは、PCの日付/時刻が不適切である可能性があります。

Ubuntu PCで以下を使用して日付と時刻を確認します。

date

例、日付と時刻を更新する方法の1つは次のとおりです。

date -s "23 MAR 2017 17:06:00"
3
Nitesh Shetty

やってみてください

make clean

makeの代わりに)、その後

make

再び。

0
Sean