Ho usato atomicMax()
per trovare il valore massimo nel kernel CUDA:Non possiamo usare le operazioni atomiche per variabili in virgola mobile in CUDA?
__global__ void global_max(float* values, float* gl_max)
{
int i=threadIdx.x + blockDim.x * blockIdx.x;
float val=values[i];
atomicMax(gl_max, val);
}
Si sta gettando il seguente errore:
error: no instance of overloaded function "atomicMax" matches the argument list
I tipi di argomenti sono: (float *, float)
.
Per avere un'implementazione per una versione float atomicMin, è sufficiente sostituire fmaxf con fminf. – Madhatter