Wie übergebe ich Array in eine Funktion in OpenCL? Ich habe Fehler“..argument vom Typ "_global float *" ist inkompatibel mit Parameter vom Typ "float *" in Zeile c [n] = FindIndexFromArray (a, 3);Übergeben Array zu Funktionsparameter in OpenCL
float FindIndexFromArray(float myArray[], float Key)
{
// simple looping to find the index
for (int i=0;i<sizeof(myArray);i++)
if (myArray[i]==Key)
return i;
}
kernel void ProcessArray(
global read_only float* myArray,
global read_only float* Key,
global write_only float* c)
{
int index = get_global_id(0);
c[index] = FindIndexFromArray(myArray, Key); // How do I pass myArray parameter?
}
My bearbeitet Quelle Code:..
float FindIndexFromArray(__global read_only float* myArray[], __global read_only float* Key)
{
// simple looping to find the index
for (int i=0;i<sizeof(myArray);i++)
if (myArray[i]==Key)
return i;
}
kernel void ProcessArray(
__global read_only float* myArray,
__global read_only float* Key,
__global write_only float* c)
{
int index = get_global_id(0);
c[index] = FindIndexFromArray(myArray, Key); // How do I pass myArray parameter?
}
Ich bekomme immer noch mehrere Warnungen, aber das ist die Fehlermeldung: 'Operandentypen sind inkompatibel (" float "und" __global float * "' in dieser Zeile 'if (myArray [i] == Key)'. Ich dachte, ich habe myArray und Key als __global Typ deklariert. Wie behebe ich das? –
können Sie Ihren bearbeiteten Quellcode anzeigen? – ardiyu07
Ich habe meine Frage bearbeitet, um meinen bearbeiteten Quellcode anzuzeigen. –