Jak mogę zaimplementować niestandardową funkcję atomową obejmującą kilka zmiennych?

Chciałbym zaimplementować tę funkcję atomową w 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
}

Nie wierzę, że mogę to zrobić z jakąkolwiek funkcją atomową. Muszę zablokować kilka locus globalnej pamięci, aby uzyskać instrukcje dla kilku. Czy mogę to zaimplementować za pomocą kodu PTXAS (Assembly)?

questionAnswers(2)

yourAnswerToTheQuestion