Fehler beim Kompilieren von Cuda - erwarteter primärer Ausdruck

8

Dieses Programm scheint in Ordnung zu sein, aber ich bekomme immer noch einen Fehler, einen Vorschlag?

Programm:

%Vor%

der Fehler:

  

DotProductCuda.cpp: 27: Fehler: erwarteter primärer Ausdruck vor '<' Token
  DotProductCuda.cpp: 27: Fehler: erwarteter primärer Ausdruck vor '>' token

    
Custodio 13.05.2011, 00:36
quelle

4 Antworten

12

Die Syntax <<< >>> zum Aufrufen eines Kernels ist nicht Standard C oder C ++. Diese Aufrufe müssen in einer vom NVCC-Compiler kompilierten Datei enthalten sein. Diese Dateien werden normalerweise mit der Erweiterung .cu benannt. Andere API-Aufrufe an CUDA wie cudaMalloc können in regulären .c- oder .cpp-Dateien enthalten sein.

    
Steve Fallows 13.05.2011, 00:43
quelle
4

Es scheint, dass der Compiler die & lt; & lt;, & gt; & gt; & gt; Syntax. Ich habe keine Erfahrung mit CUDA, aber ich denke, dass Sie diese Datei mit einem speziellen Compiler und nicht einem gewöhnlichen C-Compiler kompilieren müssen.

    
Christian Rau 13.05.2011 00:44
quelle
3

nvcc verwendet die Dateierweiterung, um zu bestimmen, wie der Inhalt der Datei verarbeitet wird. Wenn Sie eine CUDA-Syntax in der Datei haben, muss diese die Erweiterung .cu haben, sonst wird nvcc die Datei einfach an den Host-Compiler übergeben, was zu dem von Ihnen beobachteten Syntaxfehler führt.

    
talonmies 13.05.2011 04:26
quelle
-3

Vielleicht benutzen Sie eine Host-Funktion (printf zum Beispiel) im Kernel?

    
amanda 10.04.2012 08:38
quelle

Tags und Links