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
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.
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.
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.