Wie kann ich eine benutzerdefinierte Atomfunktion mit mehreren Variablen implementieren?
Ich möchte diese atomare Funktion in CUDA implementieren:
__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
}
Ich glaube nicht, dass ich das mit einer der Atomfunktionen machen kann. Ich muss ein paar globale Speicherloks für ein paar Anweisungen sperren. Kann ich dies möglicherweise mit PTXAS-Code (Assembly-Code) implementieren?