2017-10-18 5 views
0

Je suis en train de compiler un sous-programme en FORTRAN $ selon la routine seq Je reçois le message suivant d'erreurerreur du compilateur PGI OpenACC "pgf90_mzero8" est définie

/scratch/tmp/pgaccKU0jSWcDesiI.gpu(93): erreur: identifier "pgf90_mzero8" est définie

une erreur détectée dans la compilation des "/scratch/tmp/pgnvdgV0jsxZLyFWv.nv0"

PGI version du compilateur 17,4

texte cas

sous-programme xx (Ndime, pgaus, aa) ! $ Routine selon seq
entier ne implicite (4) :: Ndime, pgaus réel (8) :: yy (Ndime, Ndime, pgaus)

yy = 0.0

sous-programme de fin xx

Répondre

1

Ceci est un problème connu. Je suppose que dans votre code, vous mettez à zéro un tableau en utilisant la syntaxe du tableau, quelque chose comme "arr = 0.0d0". Le compilateur frontal reconnaît cet idiome et le remplace par une routine d'exécution optimisée. Cela arrive très tôt dans la compilation, bien avant que le compilateur ne sache que cette section de code sera compilée sur le périphérique. Malheureusement, nous n'avons pas encore porté cette routine d'exécution sur l'appareil et donc l'erreur.

Le plus simple consiste à compiler avec le drapeau "-Mnoidiom" pour désactiver cette optimisation.

+0

Merci Mat Je suis arrivé à la même conclusion grâce à un petit test. –