यह प्रोग्राम ठीक लगता है लेकिन मुझे अभी भी एक एरो, कुछ सुझाव मिल रहा है?क्यूडा संकलित करने में त्रुटि - अपेक्षित प्राथमिक अभिव्यक्ति
कार्यक्रम:
#include "dot.h"
#include <cuda.h>
#include <cuda_runtime.h>
#include <stdio.h>
int main(int argc, char** argv)
{
int *a, *b, *c;
int *dev_a, *dev_b, *dev_c;
int size = N * sizeof(int);
cudaMalloc((void**)&dev_a, size);
cudaMalloc((void**)&dev_b, size);
cudaMalloc((void**)&dev_c, sizeof(int));
a = (int *)malloc (size);
b = (int *)malloc (size);
c = (int *)malloc (sizeof(int));
random_ints(a, N);
random_ints(b, N);
cudaMemcpy(dev_a, a, size, cudaMemcpyHostToDevice);
cudaMemcpy(dev_b, b, size, cudaMemcpyHostToDevice);
int res = N/THREADS_PER_BLOCK;
dot<<< res, THREADS_PER_BLOCK >>> (dev_a, dev_b, dev_c);
//helloWorld<<< dimGrid, dimBlock >>>(d_str);
cudaMemcpy (c, dev_c, sizeof(int), cudaMemcpyDeviceToHost);
free(a); free(b); free(c);
cudaFree(dev_a);
cudaFree(dev_b);
cudaFree(dev_c);
return 0;
}
त्रुटि:
DotProductCuda.cpp:27: error: expected primary-expression before
'<'
token
DotProductCuda.cpp:27: error: expected primary-expression before'>'
token
, लेकिन अब मैं हो रही है 'DotProductCuda.cu (26): त्रुटि: एक मेजबान समारोह कॉल कुछ विचार configured' नहीं किया जा सकता? – Custodio
हां, आपने कर्नेल को एनवीसीसी में डॉट घोषित नहीं किया है, इसलिए यह इसे एक निश्चित रूप से परिभाषित होस्ट फ़ंक्शन के रूप में पेश कर रहा है। – talonmies
मैंने पाया। मैं __global__ विधि के रूप में डॉट घोषित नहीं कर रहा हूं। कूडा फ़ंक्शंस '__global__ शून्य डॉट ....' जैसा कुछ है – Custodio