Como posso implementar uma função atômica personalizada envolvendo várias variáveis?
Eu gostaria de implementar essa função atômica no CUDA:
__device__ float lowest; // global var
__device__ int lowIdx; // global var
float realNum; // thread reg var
int index; // thread reg var
if(realNum < lowest) {
lowest= realNum; // the new lowest
lowIdx= index; // update the 'low' index
}
Eu não acredito que eu possa fazer isso com qualquer uma das funções atômicas. Eu preciso bloquear alguns locais de memória global para algumas instruções. Posso implementar isso com o código PTXAS (assembly)?