Je télécharge mon code OpenCL et Cuda sur hgpu.org parce que je n'ai pas de carte graphique sur mon ordinateur portable. Lorsque je télécharge mon code, j'obtiens l'erreur suivante:
make: Warning: File `main.cu' has modification time 381 s in the future
make: warning: Clock skew detected. Your build may be incomplete.
Je sais que le décalage d'horloge est dû à la différence entre l'heure de l'horloge de ma machine et celle du serveur, j'ai donc synchronisé mon heure avec celle du serveur. Le code OpenCL et C++ fonctionne bien maintenant, mais le code Cuda me donne toujours cette erreur.
Ma question est donc:
Y a-t-il une autre raison à l'erreur d'horloge en plus de la synchronisation de l'heure? Et s'il y a alors comment le résoudre?
Code Cuda:
__global__
void test()
{
}
int main()
{
dim3 gridblock(1,1,1);
dim3 threadblock(1,1,1);
test<<<gridblock,threadblock>>>();
return 0;
}
Remarque: je peux également fournir le fichier make.
Je vais répondre à ma propre question.
J'ai ajouté les lignes de code suivantes à mon Makefile et il a résolu le problème de "décalage d'horloge":
clean:
find . -type f | xargs touch
rm -rf $(OBJS)
Tapez la commande suivante:
find . -exec touch \{\} \;
(le ou les premiers arguments à rechercher spécifient le ou les répertoires à rechercher)
Voir cet article: Compling C++ sur une machine Linux distante - avertissement de "décalage d'horloge détecté" .
Je suggère de copier uniquement le code source (pas d'exécutables), puis d'exécuter touch *
pour définir les dernières heures modifiées sur l'heure actuelle du serveur hgpu.org. Cela obligera malheureusement tout à être reconstruit.
Par curiosité, le temps de modification de main.cu est-il encore de 381 secondes dans le futur après la synchronisation de l'heure de votre PC?
Accédez simplement au répertoire où se trouve le fichier problématique, tapez touch *
sans guillemets dans la console, et vous devriez être bon.
L'une des raisons peut être une date/heure incorrecte de votre PC.
Dans Ubuntu PC pour vérifier la date et l'heure en utilisant:
date
Exemple, Une des façons de mettre à jour la date et l'heure est:
date -s "23 MAR 2017 17:06:00"
s'il vous plaît essayez de faire
make clean
(au lieu de make
), puis
make
encore.