7
Jak przekazać tablicę do funkcji w OpenCL? Mam błędzie”..argument typu "_global pływaka *" nie jest zgodny z parametrem typu "pływak *" zgodnie C [n] = FindIndexFromArray (A, 3);Przekazywanie parametru tablica do funkcji w 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 edytowany źródło Kod:..
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?
}
Ciągle otrzymuję kilka ostrzeżeń, ale jest to komunikat o błędzie: 'Typy operacji są niekompatybilne (" float "i" _global float * "' w tym wierszu 'if (myArray [i] == Key)'. Myślałem, że zadeklarowałem myArray i Key jako typ __global. Jak to naprawić? –
Czy możesz pokazać edytowany kod źródłowy? – ardiyu07
Edytowałem moje pytanie, aby pokazać mój edytowany kod źródłowy. –