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?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage