Ich habe eine Art von Filterkern, etwa wie folgt:OpenCL: Welche Art von Speicher zu verwenden?
__kernel void filterKernel (__global float4 *filter, __global float4* in_array, __global float4* out_array)
{
...
out_array[tid] = in_array[tid] * filter[fid];
...
}
Kernel filterKernel heißt mehrmals (etwa 1000-mal).
Variable Filter ist ein Array von Schwimmern, dass nie ändert es Werte (bleibt gleich für alle Arbeitsgruppen und für alle Kernel-Anrufe).
In_array enthält 32768 Schwimmer.
Was ist die beste Erklärung dieser Variablen Filter? __Konstante? __lokal? Vielleicht ein "const" hier und dort platzieren? Was hilft dem Compiler am meisten? Was macht den Code am schnellsten?
Wurde Ihre Frage beantwortet? Wenn ja, dann akzeptiere bitte eine Antwort. – koan